1
0
mirror of https://github.com/aolofsson/oh.git synced 2025-01-30 02:32:53 +08:00
oh/common/hdl/oh_abs.v
2016-02-25 15:00:33 -05:00

25 lines
459 B
Verilog

module oh_abs (/*AUTOARG*/
// Outputs
out, overflow,
// Inputs
in
);
parameter DW = 4;
//inputs
input [DW-1:0] in; //input operand
//outputs
output [DW-1:0] out; //out = abs(in) (signed two's complement)
output overflow; //high for max negative #
assign out[DW-1:0] = in[DW-1] ? ~in[DW-1:0] + 1'b1 :
in[DW-1:0];
assign overflow = in[DW-1] & ~(|in[DW-2:0]);
endmodule // oh_abs