mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-06 06:03:23 +00:00
Refactor common parts of SAT-using optimizations into a helper.
This also aligns the functionality: - in all cases, the onehot attribute is used to create appropriate constraints (previously, opt_dff didn't do it at all, and share created one-hot constraints based on $pmux presence alone, which is unsound) - in all cases, shift and mul/div/pow cells are now skipped when importing the SAT problem (previously only memory_share did this) — this avoids creating clauses for hard cells that are unlikely to help with proving the UNSATness needed for optimization
This commit is contained in:
parent
d8fcf1ab25
commit
d25b9088c8
7 changed files with 224 additions and 153 deletions
|
@ -380,9 +380,11 @@ struct ModWalker
|
|||
}
|
||||
}
|
||||
|
||||
ModWalker(RTLIL::Design *design) : design(design), module(NULL)
|
||||
ModWalker(RTLIL::Design *design, RTLIL::Module *module = nullptr) : design(design), module(NULL)
|
||||
{
|
||||
ct.setup(design);
|
||||
ct.setup(design);
|
||||
if (module)
|
||||
setup(module);
|
||||
}
|
||||
|
||||
void setup(RTLIL::Module *module, CellTypes *filter_ct = NULL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue