错误 (10170): Verilog HDL 语法错误在文本 CRC_configurable.v(62) 附近: "integer" ;期待"end"



我正在使用Quartus Prime Lite Edition,并且有一个case语句:

S2: begin
dat[WID_DAT-1 :1] <= dat[WID_DAT-2 :0];
dat[0] <= 0;
crc[0] <= crc_temp[0];
integer i;
for (i = 1; i < WID_CRC; i = i+1) begin
crc[i] <= crc_temp[i] ^ crc[i-1];
end

if(count != 0) begin
r_ns <= S2;
count <= count -1;
end

else begin
r_ns <= S_DONE;
done <= 1;
end
end

当我启动Anlysis&细化:

错误(10170(:附近CRC_configable.v(62(处的Verilog HDL语法错误文本:";整数";;期望";结束";。

为什么会这样,我应该如何避免?

您不能在begin/end块的中间声明integer。您可以将integer声明行移到always块之外(在它之前(。

integer i;
always ... 
...
S2: begin
dat[WID_DAT-1 :1] <= dat[WID_DAT-2 :0];
dat[0] <= 0;
crc[0] <= crc_temp[0];
for (i = 1; i < WID_CRC; i = i+1) begin
crc[i] <= crc_temp[i] ^ crc[i-1];
end

或者,如果您为开始块指定了一个名称,您应该能够在begin行之后立即声明integer

最新更新