-
验证平台的编写:
-
interface
- 不用管DUT的功能是什么,只需要知道接口是什么,方向,以及这些接口的规格;
- 开头interface <接口名>(<这里一般将时钟信号单独声明>);
- 将所有的端口变量声明为logic型,位也一起声明;
- clocking cb @(<敏感边沿,一般为posedge><时钟信号>);
- 可选(声明clock skew):default input #1unit output #1unit;
- 将端口信号分出方向(该输入与输出和DUT的端口方向相反);
- endclocking
- modport <简名> (input <端口变量名> , output <端口变量名>);
- endinterface
- 不用管DUT的功能是什么,只需要知道接口是什么,方向,以及这些接口的规格;
-
testcase
- 用program进行声明
- program automatic <测试案例名>(<接口名>.<modport简名> <实例化名>);
- initial begin
- 仿真内容,调用函数;
- end
- task与function定义;
- endprogram
- 用program进行声明
-
test_top
- module DUT_test_top;
- 定义仿真时间:例:parameter simulation_sycle = 100;
- 定义系统时间:例:bit systemclock;
- 接口与top模块相连接:例:<接口名> top例化名(systemclock);
- 测试案例与top相连: 例:<测试模块名> <测试模块例化名>(top例化名);
- DUT与接口相连: 例:<DUT名> <DUT例化名>(.<DUT信号名>(<top例化名>.)<接口信号名>);
- initial begin
- 定义仿真周期;
- end
- endmodule
- module DUT_test_top;
svtb编写
最新推荐文章于 2023-11-16 17:49:06 发布