gpt4 book ai didi

verilog - 未知的 verilog 错误 'expecting "endmodule"'

转载 作者:行者123 更新时间:2023-12-01 19:41:26 26 4
gpt4 key购买 nike

在 verilog 中,我遇到一个无法克服的错误。这是代码的第一位,然后是最后一位

 module Decoder(op,funct,aluop,mwr,mreg,mrd,alusrc,regdst,regwr,btype);
input[5:0] op,funct;
output[2:0] aluop;
output[1:0] btype;
output mwr,mreg,mrd,alusrc,regdst,regwr;
wire aluop,mwr,mreg,mrd,alusrc,regdst,regwr,btype;
case(op)
6'b000000: begin
case(funct)
6'b001010:
assign aluop = 3'b010;
6'b001100:
assign aluop = 3'b111;
6'b010001:
assign aluop = 3'b011;
default:
assign aluop = 3'b000;
endcase
assign btype = 2'b00;
assign mwr = 1'b0;
assign mreg = 1'b0;
assign mrd = 1'b0;
assign alusrc = 1'b0;
assign regdst = 1'b1;
assign regwr = 1'b1;
end

...

  default: begin
assign aluop = 3'b000;
assign mwr = 0;
assign mreg = 0;
assign mrd = 0;
assign alusrc = 0;
assign btype = 2'b00;
assign regdst = 0;
assign regwr = 0;
end
endcase

endmodule

它一直给我以下错误

错误 (10170):Decoder.v(7) 文本“case”附近的 Verilog HDL 语法错误;期待“结束模块”错误 (10170):Decoder.v(14) 文本“6”附近的 Verilog HDL 语法错误;期待“endmodule”

它还在每个结束语句以及默认值和 endcase 处执行此操作

我不知道为什么要这样做,我对 verilog 还很陌生。

提前致谢

最佳答案

我相信您只能在 always block 内使用 case 语句或 if/else。我不确定为什么您的错误消息没有说一些更有帮助的内容,但这可能就是问题所在。

尝试重写您的代码,如下所示:

//change wire types to reg type

always @*
begin
case (op)
6'b000000: begin
aluop = 3'b000
end
...
endcase
end

关于verilog - 未知的 verilog 错误 'expecting "endmodule"',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10443368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com