Support parameterized virtual interaces (#4047) (#4743)

This commit is contained in:
Ryszard Rozak
2023-12-06 08:02:04 -05:00
committed by GitHub
parent ca5a7d7656
commit eb2cfe1d19
5 changed files with 195 additions and 0 deletions
+14
View File
@@ -3754,6 +3754,20 @@ class LinkDotResolveVisitor final : public VNVisitor {
iterateChildren(nodep);
}
void visit(AstIfaceRefDType* nodep) override {
if (nodep->paramsp()) {
// If there is no parameters, there is no need to visit this node.
AstIface* const ifacep = nodep->ifacep();
UASSERT_OBJ(ifacep, nodep, "Port parameters of AstIfaceRefDType without ifacep()");
if (ifacep->dead()) return;
checkNoDot(nodep);
m_usedPins.clear();
VL_RESTORER(m_pinSymp);
m_pinSymp = m_statep->getNodeSym(ifacep);
iterate(nodep->paramsp());
}
}
void visit(AstAttrOf* nodep) override { iterateChildren(nodep); }
void visit(AstNode* nodep) override {