Merge pull request #4130 from jix/hierarchy-defer-notop

hierarchy: Without a known top module, derive all deferred modules
This commit is contained in:
Miodrag Milanović 2024-02-06 12:08:01 +01:00 committed by GitHub
commit 269c50f90e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View File

@ -1006,6 +1006,18 @@ struct HierarchyPass : public Pass {
if (mod->get_bool_attribute(ID::top))
top_mod = mod;
if (top_mod == nullptr)
{
std::vector<IdString> abstract_ids;
for (auto module : design->modules())
if (module->name.begins_with("$abstract"))
abstract_ids.push_back(module->name);
for (auto abstract_id : abstract_ids)
design->module(abstract_id)->derive(design, {});
for (auto abstract_id : abstract_ids)
design->remove(design->module(abstract_id));
}
if (top_mod == nullptr && auto_top_mode) {
log_header(design, "Finding top of design hierarchy..\n");
dict<Module*, int> db;

View File

@ -1,5 +1,5 @@
read_verilog -sv param_no_default.sv
hierarchy
hierarchy -top top
proc
flatten
opt -full