3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-02-10 02:51:00 +00:00
yosys/passes/opt
Jannis Harder c77b7343d0 Consistent $mux undef handling
* Change simlib's $mux cell to use the ternary operator as $_MUX_
  already does
* Stop opt_expr -keepdc from changing S=x to S=0
* Change const eval of $mux and $pmux to match the updated simlib
  (fixes sim)
* The sat behavior of $mux already matches the updated simlib

The verilog frontend uses $mux for the ternary operators and this
changes all interpreations of the $mux cell (that I found) to match the
verilog simulation behavior for the ternary operator. For 'if' and
'case' expressions the frontend may also use $mux but uses $eqx if the
verilog simulation behavior is requested with the '-ifx' option.

For $pmux there is a remaining mismatch between the sat behavior and the
simlib behavior. Resolving this requires more discussion, as the $pmux
cell does not directly correspond to a specific verilog construct.
2022-10-24 12:03:01 +02:00
..
Makefile.inc Add opt_ffinv pass. 2022-05-13 23:02:30 +02:00
muxpack.cc
opt.cc opt_merge: Add -keepdc option required for formal verification 2022-04-01 21:03:20 +02:00
opt_clean.cc Add the $anyinit cell and the formalff pass 2022-08-16 13:37:30 +02:00
opt_demorgan.cc
opt_dff.cc Fitting help messages to 80 character width 2022-08-24 10:40:57 +12:00
opt_expr.cc Consistent $mux undef handling 2022-10-24 12:03:01 +02:00
opt_ffinv.cc opt_ffinv: Fix use after free. 2022-06-13 14:04:04 +02:00
opt_lut.cc
opt_lut_ins.cc
opt_mem.cc opt_mem: Remove constant-value bit lanes. 2022-05-07 23:13:16 +02:00
opt_mem_feedback.cc
opt_mem_priority.cc
opt_mem_widen.cc
opt_merge.cc opt_merge: Add -keepdc option required for formal verification 2022-04-01 21:03:20 +02:00
opt_muxtree.cc
opt_reduce.cc opt_reduce: Fix use-after-free. 2022-07-23 17:27:26 +02:00
opt_share.cc
pmux2shiftx.cc
rmports.cc
share.cc
wreduce.cc wreduce: Keep more x-bits with -keepdc 2022-08-16 13:37:30 +02:00