verilog - 零延迟环路

标签 verilog simulation

当我们运行设计时,我们遇到了“零延迟循环”问题。 “零延迟循环”和

是什么意思
  1. 为何会出现此问题。
  2. 造成零延迟环路的原因有哪些。

模拟器正在持续运行,但尚未完成。

最佳答案

  1. 为什么会出现零延迟环路?

    由于竞争条件或不明确的编码风格,可能会生成零延迟循环,从而导致模拟挂起或无限的模拟时间

  2. 造成零延迟环路的原因是什么?

    常见循环行为的一个示例如下:

    always @ (x)
    begin
      y = 1'b0;
      ...
      case (x)
        ...
        1'b1: y = 1'b1;
        ...
      endcase
    end
    
    always @ (y)
    begin
      x = 1'b0;
      ...
      case (y)
        ...
        1'b1: x = 1'b1;
        ...
      endcase
    end
    

这里,当xy都设置为1时,可能会出现循环,这会导致新的事件和触发案例语句称为零延迟循环,因为同时触发事件,以避免使用#0延迟强制事件在时间步结束时发生,但不推荐这种类型的编码风格

  • 调试此问题
  • 据我了解,vcs 有一个名为 +vcs+loopreport 的开关,它将生成零延迟循环的详细报告并生成一个文本文件,从中您可以有效地消除或调试这些循环

    关于verilog - 零延迟环路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892097/

    相关文章:

    verilog - 是否允许模块标识符与 Verilog 中的模块类型相同?

    python - Ant 模拟: it's better to create a Process/Thread for each Ant or something else?

    simulation - Drake中如何使钟摆因重力而摆动

    verilog - systemverilog 中的重复运算符

    测试 Verilog 模块

    java - AnyLogic:提高网络模型的计算性能

    python - 可以在没有屏幕的情况下运行 Pymunk 模拟(就像没有实际看到它一样)?

    java - map 生成 - 雨、风和天气

    VHDL-2008外部名称: reference verilog net?

    Verilog 将每位展开 n 次