1
組み合わせ割り当てに問題があります。なぜ私は常に私の出力変数を設定する組み合わせの構造を使用することはできません私は理解していない。私が割り当てを使用するとき、私は割り当てエラーを取得しません。Verilog:代入の左側には可変データ型が必要です
は、私はいつも割り当てると思った@(*)の両方の手段は、あなたがwire
への手続きの割り当てを行うことはできません(組み合わせの割り当て)
module control_unit(input wire [31:0] instruction
,output wire RegDst
,output wire ALUSrc
,output wire RegWrite
,output wire MemRead
,output wire MemWrite
,output wire MemToReg
,output wire Branch
);
wire [5:0] opcode;
assign opcode = instruction[31:26];
[email protected](*) begin
case(opcode)
6'b000000: begin // r-type
RegDst = 1'b1;
ALUSrc = 1'b0;
RegWrite = 1'b1;
MemRead = 1'b0;
MemWrite = 1'b0;
MemToReg = 1'b0;
Branch = 1'b0;
end
.
.
.
default: begin
RegDst = 1'b0;
ALUSrc = 1'b0;
RegWrite = 1'b0;
MemRead = 1'b0;
MemWrite = 1'b0;
MemToReg = 1'b0;
Branch = 1'b0;
end
endcase
end // end always_comb
endmodule
私は電線とregの違いについて少し混乱しています。私の理解から、情報を格納するためにレジスタが使用されている間、入力と出力ポートを接続するためにワイヤが使用されていますか?なぜ出力はregである必要がありますか? – Sugihara
@Jack:出力は、たとえばalwaysブロックのような手続き的な代入を行うときにregでなければなりません。 – toolic
それはセマンティクスのためですか?それともハードウェアの理由はありますか? – Sugihara