我正在教自己verilog并尝试在翻牌时写作模型。我在指定部分遇到了ck-> q延迟弧的以下建模,但无法理解它究竟是什么。
(posedge CK => (Q : 1'b1))=(0, 0);
任何人都能解释一下它的工作原理吗?是D=1, CK->Q
考虑这些延迟时的情况吗?
如果是这样我们需要
(posedge CK => (Q : 1'b0))=(0, 0);
然后关于引脚D上的X传播
答案 0 :(得分:1)
Verliog可用于模拟许多级别。简单的行为模型, RTL (可综合)模拟数据和控制的传输或逻辑门级的门级(ANDs ORs,人字拖)。通常只有Gate级别必须知道这些延迟。
在RTL中建模翻转行为的典型方法是:
always @(posedge clk) begin
q <= d;
end
答案 1 :(得分:1)
您指的是边缘敏感路径。根据{{3}}第30.4.3节,&#34;它用于模拟输入到输出延迟的时序,这只发生在源信号出现指定边沿时#34;。
示例中的数据源表达式(D = 1&#39; b1)是一个任意表达式,用作对路径目标的数据流的描述。此任意数据路径描述不会影响通过模型的数据或事件的实际传播;数据路径源上的事件如何传播到目标取决于模块的内部逻辑。
在您的情况下,(posedge CK => (Q : 1'b1))=(0, 0)
或(posedge CK => (Q : 1'b0))=(0, 0)
均表示在CK的上升沿,模块路径(也称为延迟弧)从CK延伸到Q,其上升和下降时间为0。