mirror of
https://github.com/YosysHQ/yosys
synced 2025-10-09 01:11:58 +00:00
abc_new: Avoid bufnorm helper cell churn
We were performing the helper passes `abc9_ops -replace_zbufs` and `abc9_ops -restore_zbufs` for every module, but those passes act on the full design (and can't be applied entirely selectively due to entering and leaving bufnorm). This lead to an explosive creation of a lot of redundant bufnorm helper cells that would have been cleaned up by `clean` but that never ran. Instead we now run each helper pass once, one before and one after iterating over the selected modules. This limits the number of bufnorm helper cells.
This commit is contained in:
parent
b8b0f80f79
commit
2c94ca85d9
3 changed files with 9 additions and 6 deletions
|
@ -125,7 +125,7 @@ struct PortarcsPass : Pass {
|
|||
|
||||
for (auto cell : m->cells())
|
||||
// Ignore all bufnorm helper cells
|
||||
if (!cell->type.in(ID($buf), ID($input_port), ID($connect))) {
|
||||
if (!cell->type.in(ID($buf), ID($input_port), ID($connect), ID($tribuf))) {
|
||||
auto tdata = tinfo.find(cell->type);
|
||||
if (tdata == tinfo.end())
|
||||
log_cmd_error("Missing timing data for module '%s'.\n", log_id(cell->type));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue