在Verilog中我有一个错误,我无法过去。这是代码的第一位,然后最后一位未知的verilog错误'期待'endmodule''
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)附近的Verilog HDL语法错误文本“case”;期望“endmodule” 错误(10170):Decoder.v(14)附近的文本“6”处的Verilog HDL语法错误;期待“endmodule”
它也做到这一点,在每个月底声明,默认和ENDCASE
我不知道为什么它这样做,我是相当新的VERILOG。
在此先感谢
尽管解码器理论上不应该使用寄存器。它真的很重要,但它们是否是寄存器? –
@AlexMousavi仅仅因为你使用'reg'数据类型并不一定意味着它被合成到一个寄存器。只要解码器中没有“保留状态”,合成就会创建合适的组合逻辑。你可以阅读这个更多的信息http://www.asic-world.com/tidbits/wire_reg.html – Tim
非常感谢,它的工作。 –