OR门的5个行为模型之间的差异

时间:2015-05-21 13:35:35

标签: delay verilog

我想为OR门设计5个行为模型。这些型号有什么区别?每个模型都实现了哪些延迟(惯性延迟和传输延迟)以及原因是什么?

模型1:LHS阻止

#4 O = (A | B);

模型2:LHS非阻塞

#4 O <= (A | B);

模型3:RHS阻止

O = #4 (A | B);

模型4:RHS非阻塞

O <= #4 (A | B);

模型5:连续分配

assign #4 O = (A | B);

1 个答案:

答案 0 :(得分:2)

Clifford E. Cummings有一篇非常好的论文“Correct Methods For Adding Delays To Verilog Behavioral Models”,你可以在这里找到一些关于在Verilog中使用不同延迟模型的提示:

  • 阻止分配延迟模型:

      

    建模指南:不要在LHS上设置延迟   阻止模型组合逻辑的赋值。这个   是一种糟糕的编码风格   测试平台指南:在LHS上设置延迟   因此,阻止测试平台中的分配是合理的   延迟只是用于时空连续输入   刺激事件。

  • RHS阻塞延迟:

      

    建模指南:不要在RHS上设置延迟   阻止模型组合逻辑的赋值。这个   是一种糟糕的编码风格    Testbench指南:不要在RHS上设置延迟   阻止测试平台中的分配   一般准则:延迟任何RHS   阻止分配既困惑又编码不好   样式。应避免使用Verilog编码实践。

  • 非阻塞分配延迟模型:

      

    建模指南:不要在LHS上设置延迟   模块组合逻辑的非阻塞分配。   这是一种糟糕的编码风格   测试平台指南:非阻塞分配较少   有效模拟而不是阻止任务;因此,   一般来说,在非阻塞的LHS上放置延迟   建模或测试平台生成的分配是   气馁。

  • RHS非阻塞延迟:

      

    推荐应用:使用此编码样式   模型行为延迟线逻辑   建模指南:在RHS上设置延迟   仅在尝试建模时进行非阻塞分配   传输输出传播行为。这种编码风格   将准确地模拟延迟线和组合逻辑   纯粹的运输延误;然而,这种编码风格   通常会导致模拟速度变慢    Testbench指南:这种编码风格经常用于   当必须在未来安排刺激时的测试平台   时钟边沿或设定延迟后,同时不阻塞   在后者中分配后续刺激事件   程序性阻碍。

  • 连续分配延迟模型:

      

    RHS延迟模型在连续分配时是非法的


前面提到的模型遵循延迟模型:

  • 为连续分配添加延迟可以准确地使用惯性延迟对组合逻辑进行建模。
  • 在非阻塞分配的右侧(RHS)添加延迟将使用传输准确地对组合逻辑进行建模 延迟。