翻牌的verilog表示

时间:2014-03-24 11:48:54

标签: verilog

我正在教自己verilog并尝试在翻牌时写作模型。我在指定部分遇到了ck-> q延迟弧的以下建模,但无法理解它究竟是什么。

(posedge CK => (Q : 1'b1))=(0, 0);

任何人都能解释一下它的工作原理吗?是D=1, CK->Q考虑这些延迟时的情况吗? 如果是这样我们需要 (posedge CK => (Q : 1'b0))=(0, 0);

然后关于引脚D上的X传播

2 个答案:

答案 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。