sv中的各种语句总结
硬件世界与软件世界
module/endmodule,interface/endinterface可以被视为硬件世界
program/endprogram,class/endclass可以被视为软件世界。
always过程块是用来描述硬件时序电路和组合电路的正确打开方式,因此只可以在module或者interface中使用。
initial过程块可以在module、interface和program中使用。
软件的过程语句initial,function和task;
SV中约定了一种schedule,使RTL代码和验证代码在同一时刻(time slot) 操作,按照一定的顺序执行。SV中,为了区分验证和RTL事件,testbench代码都包含在program模块中,program同module的形式很类似,只是它不包含任何的层次结构,也就是说, program内部不能再包含module, interface, program。
SV语言提供了一种在多个module、interface和program之中共享parameter、data、type、task、function、class等的方法,即利用package(包)的方式来实现。如果用装修一个大房子(完整的验证环境)来看的话,我们喜欢将不同模块的类定义归整到不同的package中。这么做的好处在于将一簇相关的类组织在了单一的命名空间(namespace)下,使得分属于不同模块验证环境的类来自于不同的package,这样便可以通过package来解决类的归属问题。
浙公网安备 33010602011771号