Verilog仿真中testbench的激励问题
在编写testbench进行功能仿真中,我们一般使用initial语句块与always语句块产生激励信号,从而测试设计。然而initial模块与always模块实现的激励时序有所不同,见下例子。
设计文件
testbench1
波形1
testbench2
波形2
可以看到,不同的激励方式,即使输入激励的波形一样,但输出却截然不同。在这个例子中,testbench1的rd从0变化到1时,clk的上升沿处采到的是rd=1,所以马上输出dout=1,而testbench2的clk的上升沿处采到的是rd=0,所以下个clk的上升沿才输出dout=1。为了使结果相同,可在testbench1中的rd=1适当延迟。
更多的,testbench1中的rd=1改为rd<=1,波形仍然与波形1相同。