2 つの入力 [32:0] ポート in1、in2 と出力 reg [32:0] out を宣言しました。
always ブロックでは、コードは次のようになります。
現在は add で問題なく動作しますが、in1=0 かつ in2=-1 の場合、out は常に 0xffffffff ではなく 0x0000ffff です。
整数 [32:0] 型を宣言しようとしましたが、適切に行っているとは思いません。
(コメントから転記:)
module adder(out, in1, in2, sub);
output reg[31:0] out;
input [31:0] in1, in2;
input [4:0] sub;
always @(*) begin
case (sub)
`ALU_ADD: begin out=alutemp1+alutemp2; //out=in1+in2;
$display("in1 %x and in2 %x and out %x\n",in1,in2,out);
end
end
アドバイスをください、ありがとう