3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-23 00:55:32 +00:00

wreduce: Optimize signedness when possible

This commit is contained in:
Martin Povišer 2024-12-16 12:56:44 +01:00
parent 4581f75b03
commit 08778917db
2 changed files with 73 additions and 0 deletions

22
tests/various/wreduce2.ys Normal file
View file

@ -0,0 +1,22 @@
read_verilog <<EOF
module top(a, b, y);
parameter awidth = 6;
parameter bwidth = 8;
parameter ywidth = 14;
input [awidth-1:0] a;
input [bwidth-1:0] b;
output [ywidth-1:0] y;
wire [ywidth-1:0] aext = {{(ywidth-awidth){a[awidth-1]}}, a};
wire [ywidth-1:0] bext = {{(ywidth-bwidth){b[bwidth-1]}}, b};
assign y = aext*bext;
endmodule
EOF
opt_clean
wreduce
select -assert-count 1 t:$mul
select -assert-count 1 t:$mul r:A_SIGNED=1 r:B_SIGNED=1 %i %i
select -assert-count 1 t:$mul r:A_WIDTH=6 r:B_WIDTH=8 %i %i