我正在研究RiSC16 CPU的非常简单的verilog实现,我遇到了使用Quartus II网络版进行编译的问题。我的代码如下:
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
我现在很失落。有谁之前经历过这个吗?某处有语法错误吗?
答案 0 :(得分:4)
由于j
被声明为1位,因此它的唯一值是0和1;它不能达到200,for
循环将是无限的。声明为:
reg [7:0] j; // 0 to 255
或
integer j;