系统Verilog中的while循环的额外迭代

时间:2019-02-05 17:44:08

标签: while-loop iteration verilog system-verilog

我正在尝试使用系统Verilog中的while循环创建斜坡输出,并且遇到了循环的额外迭代。

有人可以帮助我了解原因吗?

real a,b,step;
b = #delay final_value;
while (a<b)
  begin
     #delay_per_step a = a + step;
  end

final_value 是步长的整数倍)

此while循环结束时 a 的最终输出为 final_value + step

由于变量是实数且精确的小数位数未知而发生这种情况吗?

1 个答案:

答案 0 :(得分:2)

这很可能是由于舍入错误。您可以通过在循环中显示ab的值来验证。

您可以减去公差值以使其适合您

while ( a < b - tolerance )