在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
非常感謝,它的工作。 –