modelsim 仿真时出现无限迭代(iteration reach limitation)的原因及其解决办法
modelsim 仿真时出现无限迭代(iteration reach limitation)
出现这种故障的原因: 一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signal_A又通过组合逻辑产生signal_B,signal_B又通过组合逻辑产生signal_C,signal_C又通过组合逻辑产生signal_A(这样就形成了组合逻辑的无限循环),就会导致这个故障出现。类似:
always(*)
begin
signal_A=~signal_A;
end
出现这种故障的定位及解决办法: 在modelsim提示Error的时刻,查看相关的信号波形,关注在这一时刻跳变的各个信号,问题就出现在当前时刻跳变的信号上。然后锁定相关信号后,再回到代码中查看代码debug!
so easy! ohyeah!!