3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-07-16 20:25:43 +00:00
yosys/passes
Akash Levy 00e48706df opt: recognize three QoR logic-depth patterns
Extend two existing opt passes and add one new pass to collapse
serial/dynamic-index structures that were leaving high logic depth:

- opt_first_fit_alloc: recognize the "coalesce-matrix" first-fit
  allocator variant (same_cat[i][k] coalescing gated on the leader's
  enable, driven from a raw input enable). Rewrite both the lane_slot
  allocation and the xbar field gather from one shared log-depth scan.

- opt_prienc: detect round-robin / rotated-priority scans (req scanned
  from idx_last downward with wraparound) and rewrite the depth-N
  idx--/req[idx] mux chain to rotate -> log-depth priority-encode ->
  unrotate.

- opt_priokey (new): recognize priority-by-key one-hot accumulators and
  replace each dynamic taken[key] read ($shiftx/$bmux) with the
  equivalent pairwise-key-compare reduction, dropping the wide dynamic
  indexing. Supports -strict for full-key-range formal validation.

Each includes self-contained tests (equiv_opt / sat -prove-asserts,
mux-bound and negative cases) in tests/opt/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 12:56:38 -07:00
..
cmds stat bugfix 2026-06-28 20:28:23 -07:00
equiv Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
fsm Migrate build system to CMake 2026-06-03 08:58:10 +00:00
hierarchy Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
memory Merge remote-tracking branch 'upstream' into merge3 2026-06-25 04:51:46 -07:00
opt opt: recognize three QoR logic-depth patterns 2026-07-06 12:56:38 -07:00
pmgen Migrate build system to CMake 2026-06-03 08:58:10 +00:00
proc End of file fix 2026-06-23 07:23:41 +02:00
sat Allow sim pass to handle 4-input gates 2026-07-06 07:41:08 -07:00
silimate Speed up opt_* using cut_region with shared_ce 2026-07-06 07:42:47 -07:00
techmap Naming improvements 2026-07-06 07:40:14 -07:00
tests End of file fix 2026-06-23 07:23:41 +02:00
CMakeLists.txt CMake: integrate silimate additions and extensions 2026-06-10 20:27:52 +03:00