mirror of
https://github.com/YosysHQ/yosys
synced 2026-07-15 03:35:40 +00:00
Prove the three pattern detectors work on unseen inputs, not just the RTL
they were derived from. Because detection is functional (ConstEval
fingerprinting over the reachable input space), correctness is established
per case with equiv_opt -assert (full) or a SAT miter clamped to the
reachable range (non-power-of-two), and detection is confirmed with a
w:*tag* probe.
opt_priokey:
D1-D3 spelling variants (explicit shift-or set, compound derived guard,
accumulator also exported) -- all fire and prove equivalent.
E1-E2 parameter sweep P=2..8, S=4..32.
E3 non-power-of-two S=12 reachable-range equivalence via SAT miter.
E4 same shape under -strict declines to rewrite (formal-flow safety).
F1-F2 near-miss negatives (clear accumulator, multi-hot set) -> no rewrite.
opt_prienc (round-robin):
RR4-RR5 DEPTH sweep 8/32, full sequential equivalence.
RR6 non-power-of-two DEPTH=7 reachable-range equivalence (SAT miter).
RR7 an entirely different spelling (upward wrap-scan, first-hit) of the
same arbiter -- fires and proves equivalent.
RR8 fixed-priority (no rotating pointer) negative.
opt_first_fit_alloc (coalesce):
H1 inline same-category compare (no precomputed matrix) spelling.
H2 different slot/field shape (N=8, NB=8, W=3).
All new cases pass locally; they avoid brittle exact cell-count asserts so
they are robust to upstream optimization drift.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
||
|---|---|---|
| .. | ||
| aiger | ||
| alumacc | ||
| arch | ||
| arith_tree | ||
| asicworld | ||
| bind | ||
| blif | ||
| bram | ||
| bugpoint | ||
| check_mem | ||
| cxxrtl | ||
| errors | ||
| fmt | ||
| fsm | ||
| functional | ||
| hana | ||
| liberty | ||
| lut | ||
| memfile | ||
| memlib | ||
| memories | ||
| opt | ||
| opt_share | ||
| peepopt | ||
| proc | ||
| pyosys | ||
| realmath | ||
| rpc | ||
| rtlil | ||
| sat | ||
| sdc | ||
| select | ||
| share | ||
| silimate | ||
| sim | ||
| simple | ||
| simple_abc9 | ||
| smv | ||
| sva | ||
| svinterfaces | ||
| svtypes | ||
| techmap | ||
| tools | ||
| unit | ||
| various | ||
| verific | ||
| verilog | ||
| vloghtb | ||
| write_verilog | ||
| xprop | ||
| .gitignore | ||
| common.mk | ||
| gen_tests_makefile.py | ||
| Makefile | ||
| pass-fuzzing.md | ||