mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 00:55:32 +00:00
opt_expr: improve simplification of comparisons with large constants.
The idea behind this simplification is that a N-bit signal X being compared with an M-bit constant where M>N and the constant has Nth or higher bit set, it either always succeeds or always fails. However, the existing implementation only worked with one-hot signals for some reason. It also printed incorrect messages. This commit adjusts the simplification to have as much power as possible, and fixes other bugs.
This commit is contained in:
parent
4fd458290c
commit
bf8db55ef3
2 changed files with 65 additions and 70 deletions
|
@ -19,4 +19,22 @@ module top(...);
|
|||
output o3_2 = 4'b0100 <= a;
|
||||
output o3_3 = a < 4'b0100;
|
||||
output o3_4 = a >= 4'b0100;
|
||||
|
||||
output o4_1 = 5'b10000 > a;
|
||||
output o4_2 = 5'b10000 >= a;
|
||||
output o4_3 = 5'b10000 < a;
|
||||
output o4_4 = 5'b10000 <= a;
|
||||
output o4_5 = a < 5'b10000;
|
||||
output o4_6 = a <= 5'b10000;
|
||||
output o4_7 = a > 5'b10000;
|
||||
output o4_8 = a >= 5'b10000;
|
||||
|
||||
output o5_1 = 5'b10100 > a;
|
||||
output o5_2 = 5'b10100 >= a;
|
||||
output o5_3 = 5'b10100 < a;
|
||||
output o5_4 = 5'b10100 <= a;
|
||||
output o5_5 = a < 5'b10100;
|
||||
output o5_6 = a <= 5'b10100;
|
||||
output o5_7 = a > 5'b10100;
|
||||
output o5_8 = a >= 5'b10100;
|
||||
endmodule
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue