3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-03-23 04:49:15 +00:00
yosys/passes
Sabina Sokol 841a29496d opt_expr: Respect keep attribute for double-inverter folding
The double-inverter optimization in opt_expr folds consecutive NOT gates
without checking if the cell has the keep attribute. This causes ring
oscillator PUFs and other intentional feedback loops to be broken even
when explicitly marked for preservation.

This patch adds a has_keep_attr() check before folding double inverters,
consistent with how opt_clean handles the keep attribute.

Fixes: Ring oscillator cells marked with (* keep *) being optimized away

Signed-off-by: Sabina Sokol <Sabina.Sokol@gtri.gatech.edu>
2026-03-10 13:39:06 -04:00
..
cmds Update opt_lut_ins and stat for analogdevices and remove ecp5 2026-03-06 09:10:36 +01:00
equiv Merge pull request #5512 from YosysHQ/emil/turbo-celltypes 2026-03-04 14:47:57 +00:00
fsm fsm_detect: add adff detection 2025-11-06 23:29:47 +02:00
hierarchy hierarchy.cc: Tidying 2025-10-15 09:42:47 +13:00
memory memory_libmap: Add -force-params 2026-02-20 10:57:00 +00:00
opt opt_expr: Respect keep attribute for double-inverter folding 2026-03-10 13:39:06 -04:00
pmgen Remove .c_str() from log_cmd_error() and log_file_error() parameters 2025-09-16 22:59:08 +00:00
proc proc_clean: Removing an empty full_case is doing something 2026-01-07 13:10:32 +13:00
sat yosys: use newcelltypes for yosys_celltypes users 2026-03-04 12:39:44 +01:00
techmap Merge pull request #5512 from YosysHQ/emil/turbo-celltypes 2026-03-04 14:47:57 +00:00
tests test_cell.cc: Generate .aag for all compatible cells 2025-12-02 14:03:36 +13:00