Verilog 零延迟环路

Verilog 零延迟环路,verilog,simulation,Verilog,Simulation,当我们运行设计时,我们遇到了“零延迟循环”问题。 “零延迟环路”的含义是什么 为什么会出现这个问题 零延迟环路的原因是什么 模拟器持续运行,但尚未完成 为什么会发生零延迟循环? 由于竞争条件或模糊编码方式,可能产生零延迟环路,导致仿真挂起或仿真时间无限长 零延迟环路的原因是什么? 常见循环行为的一个示例如下: always @ (x) begin y = 1'b0; ... case (x) ... 1'b1: y = 1'b1; ... endcase

当我们运行设计时,我们遇到了“零延迟循环”问题。 “零延迟环路”的含义是什么

  • 为什么会出现这个问题
  • 零延迟环路的原因是什么
  • 模拟器持续运行,但尚未完成

  • 为什么会发生零延迟循环?

    由于竞争条件或模糊编码方式,可能产生零延迟环路,导致仿真挂起或仿真时间无限长

  • 零延迟环路的原因是什么?

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

    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
    
  • 在这种情况下,当
    x
    y
    都设置为1时,可能会出现循环,这会由于同时触发事件而导致称为零延迟循环的新事件和触发案例语句,以避免使用#0延迟,强制事件在时间步结束时发生,但不建议使用这种类型的编码样式

  • 调试此问题

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

    您知道生成的文件名吗?