3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-11 03:33:36 +00:00
This commit is contained in:
KrystalDelusion 2025-04-04 04:08:16 +13:00 committed by GitHub
commit b52c094f6d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 29 additions and 0 deletions

View file

@ -1066,6 +1066,17 @@ struct HierarchyPass : public Pass {
mod->attributes[ID::initial_top] = RTLIL::Const(1);
else
mod->attributes.erase(ID::initial_top);
std::vector<IdString> abstract_ids;
for (auto cell : top_mod->cells()) {
IdString abstract_id = "$abstract" + cell->type.str();
if (design->module(cell->type) == nullptr && design->module(abstract_id))
abstract_ids.push_back(abstract_id);
}
for (auto abstract_id : abstract_ids)
design->module(abstract_id)->derive(design, {});
for (auto abstract_id : abstract_ids)
design->remove(design->module(abstract_id));
}
bool did_something = true;

View file

@ -0,0 +1,18 @@
read_verilog -defer <<EOT
module bb (...);
localparam A = "abc";
input a;
output b;
endmodule
module top (...);
input a;
output b;
bb #(.A("def")) my_bb (a, b);
endmodule
EOT
logger -expect error "does not have a parameter named 'A'" 1
hierarchy -check -top top