导致Isim 仿真时出现卡死的原因肯定很多,一般是代码书写不规范,导致出现无限循环。这里我介绍一种我遇到的问题。
变量定义
reg [5:0]fir_coe_index1;
always块中的语句
for(fir_coe_index1 = 0; fir_coe_index1 <= 63; fir_coe_index1 = fir_coe_index1 + 1)
fir_coe[fir_coe_index1] <= 0;
仿真时,Isim有时候卡死,有时候显示为出错,仿真结束,最后将变量定义部分改成
reg [7:0]fir_coe_index1;
这样整个仿真就可以正确运行了。分析原因应该是当fir_coe_index1位宽为6时,取值范围为0~63,for循环中的条件fir_coe_index1 <= 63一直满足,导致展开时出现错误。