module compressor_3_2 | |
( | |
src1, | |
src2, | |
src3, | |
result_sum, | |
result_carry | |
); | |
parameter WIDTH = 8; | |
input logic [WIDTH-1:0] src1; | |
input logic [WIDTH-1:0] src2; | |
input logic [WIDTH-1:0] src3; | |
output logic [WIDTH-1:0] result_sum; | |
output logic [WIDTH-1:0] result_carry; | |
logic [WIDTH-1:0] xor_src1to2; | |
genvar i; | |
assign xor_src1to2 = src1^src2; | |
assign result_sum = xor_src1to2^src3; | |
generate | |
for(i=0;i<WIDTH;i++) begin: GET_RESULT | |
assign result_carry[i] = xor_src1to2[i] ? src3[i] : src1[i]; | |
end | |
endgenerate | |
endmodule |