mirror of
https://github.com/YosysHQ/yosys
synced 2026-07-17 04:35:44 +00:00
The round-robin detector fed sigmap(wire) signals straight into ConstEval::set() while sweeping test vectors. On real designs a candidate bus can have bits tied to constants, repeated bits, or a req/start pair that alias to the same net after sigmap. ConstEval::set() asserts (current_val[i].wire != NULL || current_val[i] == value[i]) when asked to re-pin such a bit to a conflicting value, crashing the pass (consteval.h:83) on designs like veer/picorv32/murax/raygentop under formal synthesis. Add clean_set_signals() and reject any fingerprint candidate whose set-signals contain constant bits, repeated bits, or overlap each other, in both the priority-encoder and round-robin paths. Skipping an unclean candidate only forgoes a possible rewrite; it never produces an incorrect one. Clean candidates (the intended patterns) are unaffected. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| cmds | ||
| equiv | ||
| fsm | ||
| hierarchy | ||
| memory | ||
| opt | ||
| pmgen | ||
| proc | ||
| sat | ||
| silimate | ||
| techmap | ||
| tests | ||
| CMakeLists.txt | ||