语法错误。语句标签只允许在 SystemVerilog 中使用
Syntax error. Statement labels are only allowed in SystemVerilog
Modelsim:我检查了很多次,但我找不到如何修复它。
near ":": Syntax error. Statement labels are only allowed in SystemVerilog.
parameter [1:0] S1 = 2'b00, S2 = 2'b01, S3 = 2'b10;
always @(cur_state or s or Cout or cnt_zero) // Combo logic for
begin: FSM_outputs // output signals
load_R = 0; en_shift_R = 0; rr0mux = 0;
load_cnt = 0; en_cnt = 0; en_shift_A = 0;
case (cur_state)
S1: begin
load_cnt = 1; en_shift_R = 1;
if (s == 0) begin
load_R = 1; rr0mux = 0;
end
else begin
load_R = 0; en_shift_A = 1; rr0mux = 1;
end
S2: begin //the errors are located HERE S2.
Rmux = 1; en_shift_R = 1; rr0mux = 1; en_shift_A = 1;
if (Cout) load_R = 1;
else load_R = 0;
if (cnt_zero == 0) en_cnt = 1;
else en_cnt = 0;
end
S3: done = 1;
endcase
end
您在 S1
状态描述后缺少 end
关键字:
S1:
begin
load_cnt = 1; en_shift_R = 1;
if (s == 0) begin
load_R = 1; rr0mux = 0;
end
else begin
load_R = 0; en_shift_A = 1; rr0mux = 1;
end
end //missing end
这就是为什么您的 IDE 将 S2: begin
视为语句标签而您收到错误消息的原因。
Modelsim:我检查了很多次,但我找不到如何修复它。
near ":": Syntax error. Statement labels are only allowed in SystemVerilog.
parameter [1:0] S1 = 2'b00, S2 = 2'b01, S3 = 2'b10;
always @(cur_state or s or Cout or cnt_zero) // Combo logic for
begin: FSM_outputs // output signals
load_R = 0; en_shift_R = 0; rr0mux = 0;
load_cnt = 0; en_cnt = 0; en_shift_A = 0;
case (cur_state)
S1: begin
load_cnt = 1; en_shift_R = 1;
if (s == 0) begin
load_R = 1; rr0mux = 0;
end
else begin
load_R = 0; en_shift_A = 1; rr0mux = 1;
end
S2: begin //the errors are located HERE S2.
Rmux = 1; en_shift_R = 1; rr0mux = 1; en_shift_A = 1;
if (Cout) load_R = 1;
else load_R = 0;
if (cnt_zero == 0) en_cnt = 1;
else en_cnt = 0;
end
S3: done = 1;
endcase
end
您在 S1
状态描述后缺少 end
关键字:
S1:
begin
load_cnt = 1; en_shift_R = 1;
if (s == 0) begin
load_R = 1; rr0mux = 0;
end
else begin
load_R = 0; en_shift_A = 1; rr0mux = 1;
end
end //missing end
这就是为什么您的 IDE 将 S2: begin
视为语句标签而您收到错误消息的原因。