Error (10170): Verilog HDL syntax error at CRC_configurable.v(62) near text: "integer"; expecting "end"
Error (10170): Verilog HDL syntax error at CRC_configurable.v(62) near text: "integer"; expecting "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 & Elaboration 时收到错误消息:
Error (10170): Verilog HDL syntax error at CRC_configurable.v(62) near
text: "integer"; expecting "end".
为什么会这样,我该如何避免?
您不得在 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
。
我正在使用 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 & Elaboration 时收到错误消息:
Error (10170): Verilog HDL syntax error at CRC_configurable.v(62) near text: "integer"; expecting "end".
为什么会这样,我该如何避免?
您不得在 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
。