Report interface ports connected to wrong interface, bug1294.

This commit is contained in:
Todd Strader
2018-04-04 21:03:43 -04:00
committed by Wilson Snyder
parent c7c99d8553
commit 9219ddaece
4 changed files with 66 additions and 0 deletions
+8
View File
@@ -652,6 +652,14 @@ void ParamVisitor::visitCell(AstCell* nodep) {
longname += "_" + paramSmallName(srcModp, pinp->modVarp()) + paramValueNumber(pinIrefp);
any_overrides = true;
ifaceRefRefs.push_back(make_pair(portIrefp,pinIrefp));
if (portIrefp->ifacep() != pinIrefp->ifacep()
// Might be different only due to param cloning, so check names too
&& portIrefp->ifaceName() != pinIrefp->ifaceName()) {
pinp->v3error("Port '"<<pinp->prettyName()<<"' expects '"
<<AstNode::prettyName(portIrefp->ifaceName())
<<"' interface but pin connects '"
<<AstNode::prettyName(pinIrefp->ifaceName())<<"' interface");
}
}
}
}