2019-07-28 09:03:54 -05:00
|
|
|
module opt_share_test(
|
2019-08-03 05:35:46 -05:00
|
|
|
input [15:0] a,
|
|
|
|
input [15:0] b,
|
|
|
|
input [15:0] c,
|
|
|
|
input [1:0] sel,
|
|
|
|
output reg [15:0] res
|
|
|
|
);
|
2019-07-28 09:03:54 -05:00
|
|
|
|
2019-08-03 05:35:46 -05:00
|
|
|
wire [15:0] add0_res = a+b;
|
|
|
|
wire [15:0] add1_res = a+c;
|
2019-07-28 09:03:54 -05:00
|
|
|
|
2019-08-03 05:35:46 -05:00
|
|
|
always @* begin
|
|
|
|
case(sel)
|
|
|
|
0: res = add0_res[10:0];
|
|
|
|
1: res = add1_res[10:0];
|
|
|
|
2: res = a - b;
|
|
|
|
default: res = 32'bx;
|
|
|
|
endcase
|
|
|
|
end
|
2019-07-28 09:03:54 -05:00
|
|
|
|
|
|
|
endmodule
|