以前对工程进行的仿真都是用波形产生激励···(最多一次设置16位的输入·想起来好傻啊)
听说过Testbench,对于我来说还有一层神秘的面纱,今天终于看到关于这个的视频教程,就好好地学习一下·让以后的仿真能够轻松一些。
首先先摘抄一下视频中的三个步骤(深入浅出玩转FPGA-视频8):
1、对被测试设计的顶层接口进行例化(是创建对象的意思?)。
2、给被测试设计的输入接口添加激励。
3、判断被测试设计的输出响应是否满足设计要求。
最简单的testbench:
时钟产生
复位产生
其他激励产生
'timescale 1ns/1ps //ns为时间的单位,ps为时间的精度。
parameter PERIOD = 20;
initial begin
clk = 0; //初始化时钟
forever
#(PERIOD/2) clk = ~clk; //时钟频率
(或者 always begin
#(PERIOD/2) clk = 0;
#(PERIOD/2) clk = 1; //效果相同 )
end
复位:
rst_n = 0;
#100; //100ns延时
rst_n = 1; //撤销复位
以任务的形式:
task reset_task;
input[15:0] reset_time; //复位时间
begin
reset = 0;
#reset_time;
reset = 1;
end
endtask
调用
initial
begin
reset_task(100); //复位100ns,时间可更改
。。。。
end
推荐书籍:
《设计与验证Verilog HDL》
《Writing Testbench》