Verilog仿真中testbench的激励问题

Verilog仿真中testbench的激励问题

       在编写testbench进行功能仿真中,我们一般使用initial语句块与always语句块产生激励信号,从而测试设计。然而initial模块与always模块实现的激励时序有所不同,见下例子。

设计文件
Verilog仿真中testbench的激励问题_第1张图片

testbench1
Verilog仿真中testbench的激励问题_第2张图片

波形1
在这里插入图片描述

testbench2
Verilog仿真中testbench的激励问题_第3张图片

波形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相同。

你可能感兴趣的:(Verilog/VHDL)