mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 09:05:32 +00:00
verilog: use derived module info to elaborate cell connections
- Attempt to lookup a derived module if it potentially contains a port connection with elaboration ambiguities - Mark the cell if module has not yet been derived - This can be extended to implement automatic hierarchical port connections in a future change
This commit is contained in:
parent
bd16d01c0e
commit
e833c6a418
15 changed files with 397 additions and 42 deletions
|
@ -558,6 +558,10 @@ bool expand_module(RTLIL::Design *design, RTLIL::Module *module, bool flag_check
|
|||
return did_something;
|
||||
}
|
||||
|
||||
// Now that modules have been derived, we may want to reprocess this
|
||||
// module given the additional available context.
|
||||
if (module->reprocess_if_necessary(design))
|
||||
return true;
|
||||
|
||||
for (auto &it : array_cells)
|
||||
{
|
||||
|
|
|
@ -377,10 +377,12 @@ struct TechmapWorker
|
|||
if (c->attributes.count(ID::src))
|
||||
c->add_strpool_attribute(ID::src, extra_src_attrs);
|
||||
|
||||
if (techmap_replace_cell)
|
||||
if (techmap_replace_cell) {
|
||||
for (auto attr : cell->attributes)
|
||||
if (!c->attributes.count(attr.first))
|
||||
c->attributes[attr.first] = attr.second;
|
||||
c->attributes.erase(ID::reprocess_after);
|
||||
}
|
||||
}
|
||||
|
||||
for (auto &it : tpl->connections()) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue