Estoy diseñando una ALU simple con and
, add
, load
para las operaciones de entrada de 16 bits. Esto es lo que tengo hasta ahora:
module ALU(overflow,out,in1,in2,select);
input[1:0] select;
output[15:0] out;
output overflow;
reg[16:0] out;
reg overflow;
always @(in1,in2,select)
case(select)
0:out <= in1 & in2; //and
1:{overflow,out} <= in1 + in2; //add
2:out <= in1;
default: out<= 16'bx;
endcase
endmodule
Estoy confundido sobre cómo lidiar con los números negativos y cómo manejar cuando mis entradas son negativas: ¿qué debo hacer?