Verilog 错误 - Quartus II - 循环必须在 X 次迭代内终止



我正在研究一个非常简单的RiSC16 CPU的verilog实现,我在尝试使用Quartus II Web Edition进行编译时遇到了问题。 我的代码如下:

reg j;
initial begin
pc = 0;
rf[0] = `ZERO;
rf[1] = `ZERO;
rf[2] = `ZERO;
rf[3] = `ZERO;
rf[4] = `ZERO;
rf[5] = `ZERO;
rf[6] = `ZERO;
rf[7] = `ZERO;
    for(j=0;j<200;j=j+1) begin // THis is line 38
        m[j] = 16'd0; 
    end
end

我收到以下错误:

Error (10106): Verilog HDL Loop error at RiSC16.v(38): loop must terminate within 10000 iterations

在这一点上,我很迷茫。 以前有人经历过吗?某处是否存在语法错误?

由于 j 声明为 1 位,因此它的唯一值是 0 和 1;它不能达到 200,并且for循环将是无限的。 将其声明为:

reg [7:0] j; // 0 to 255

或作为

integer j;

最新更新