diff options
author | Bogdan Vukobratovic <bogdan.vukobratovic@gmail.com> | 2019-07-26 11:36:48 +0200 |
---|---|---|
committer | Bogdan Vukobratovic <bogdan.vukobratovic@gmail.com> | 2019-07-26 11:36:48 +0200 |
commit | 07c4a7d4388cdacaa15512dd2f6f0f9e9fcb31f5 (patch) | |
tree | 1bee2945a214e126b3356168c9763aa16d336a98 /tests/opt/opt_share_mux_tree.v | |
parent | a02d1720a766ae1b993a9884e840f37b3d785b8f (diff) | |
download | yosys-07c4a7d4388cdacaa15512dd2f6f0f9e9fcb31f5.tar.gz yosys-07c4a7d4388cdacaa15512dd2f6f0f9e9fcb31f5.tar.bz2 yosys-07c4a7d4388cdacaa15512dd2f6f0f9e9fcb31f5.zip |
Implement opt_share
This pass identifies arithmetic operators that share an operand and whose
results are used in mutually exclusive cases controlled by a multiplexer, and
merges them together by multiplexing the other operands
Diffstat (limited to 'tests/opt/opt_share_mux_tree.v')
-rw-r--r-- | tests/opt/opt_share_mux_tree.v | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/opt/opt_share_mux_tree.v b/tests/opt/opt_share_mux_tree.v new file mode 100644 index 000000000..807ed2978 --- /dev/null +++ b/tests/opt/opt_share_mux_tree.v @@ -0,0 +1,19 @@ +module add_sub( + input [15:0] a, + input [15:0] b, + input [15:0] c, + input [1:0] sel, + output reg [15:0] res + ); + + + always @* begin + case(sel) + 0: res = a + b; + 1: res = a - b; + 2: res = a + c; + default: res = 16'bx; + endcase + end + +endmodule |