verilog触发器RTL仿真

verilog触发器RTL仿真,verilog,simulation,modelsim,register-transfer-level,event-simulation,Verilog,Simulation,Modelsim,Register Transfer Level,Event Simulation,假设我们有一个D触发器。 在RTL模拟中(此处无t_保持和t_设置),如果其数据输入和clk同时改变,输出应该是什么?clk上升前的数值还是clk上升后的数值 更难的是,, 如果数据输入和时钟连接到同一根导线。触发器的输出应该是什么?一直都是零?还是一直都是 我在ModelSim中尝试了最后一种情况,得到的结果是输出始终为1,而我希望它为0。 我希望RTL模拟中的触发器应该模拟时钟边缘之前的值。当您使用模拟时,您将看到结果,这取决于在模拟器中如何解释您使用的内容 正如您在simulation t

假设我们有一个D触发器。 在RTL模拟中(此处无t_保持和t_设置),如果其数据输入和clk同时改变,输出应该是什么?clk上升前的数值还是clk上升后的数值

更难的是,, 如果数据输入和时钟连接到同一根导线。触发器的输出应该是什么?一直都是零?还是一直都是

我在ModelSim中尝试了最后一种情况,得到的结果是输出始终为1,而我希望它为0。
我希望RTL模拟中的触发器应该模拟时钟边缘之前的值。

当您使用模拟时,您将看到结果,这取决于在模拟器中如何解释您使用的内容

正如您在simulation t_setup=0中所写,这意味着您不需要在时钟信号上升(或下降)沿之前的某个时间将信号保持在该电平(触发器应该捕捉到的),但可以与时钟上升(或下降)沿完全同时应用


因为您在触发器的输出上看到模拟的所有时间
'1'
,通常它是verilog模拟中之前的值,但它取决于调度程序。我在一个仿真器上做原型,发现仿真器总是有价值的。在这种情况下,verilog模拟掩盖了供应商提供的行为内存模型中的错误。输入数据不应该在时钟边缘发生变化。