我正在研究一个非常简单的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;