0
我已经为具有同步低电平有效复位的简单正边沿触发器d触发器创建了测试台。在测试平台中,第一种情况在“@posedge clk”中给出输入,而在第二种情况下,我基于“等待10ns”语句给出输入。当为以下简单的D触发器使用事件控制语句和等待语句时,为什么输出存在差异
在第一种情况下,触发器的输出在1个时钟周期后发生变化,而在第二种情况下,它会立即在仿真器的相同时钟周期内发生变化。
我在Quartus Simulator中模拟。
为什么?那就是我想知道的。如下面
代码: ////////////////////////////
initial
begin
//Case 1: Using Event Based statements
n_reset = 1'b0;
reset = 1'b1;
d = 1'b0;
repeat(2)@(posedge clk);
n_reset = 1'b1;
repeat(2)@(posedge clk);
d = 1'b1;
@(posedge clk);
d = 1'b0;
@(posedge clk);
d = 1'b1;
//Case 2: Using wait Statement
#50ns;
n_reset = 1'b0;
reset = 1'b1;
d = 1'b0;
#50ns;
n_reset = 1'b1;
#20ns;
d = 1'b1;
#10ns;
d = 1'b0;
#10ns;
d = 1'b1;
#50ns;
end
Waveform of D FlipFlop with the testbench
谢谢......我还有一些关于此的附加信息。额外的信息+你的回答清除了很多东西......我也深入检查了ModelSim中的列表视图中的信号..我对整个问题有着不同的角度...... –
@ Edwin Joseph:你是欢迎! –