mirror of https://github.com/YosysHQ/yosys.git
26 lines
501 B
Verilog
26 lines
501 B
Verilog
module opt_share_test(
|
|
input [15:0] a,
|
|
input [15:0] b,
|
|
input [15:0] c,
|
|
input [15:0] d,
|
|
input [2:0] sel,
|
|
output reg [31:0] res
|
|
);
|
|
|
|
wire [15:0] add0_res = a+d;
|
|
|
|
always @* begin
|
|
case(sel)
|
|
0: res = {add0_res, a};
|
|
1: res = {a - b, add0_res[7], 15'b0};
|
|
2: res = {b-a, b};
|
|
3: res = {d, b - c};
|
|
4: res = {d, b - a};
|
|
5: res = {c, d};
|
|
6: res = {a - c, b-d};
|
|
default: res = 32'bx;
|
|
endcase
|
|
end
|
|
|
|
endmodule
|