Fix --hierarchical with order-based pin connections (#3583).

This commit is contained in:
Wilson Snyder
2022-08-29 22:49:19 -04:00
parent 9d9d647c1f
commit c335aad25f
4 changed files with 59 additions and 9 deletions
+10 -9
View File
@@ -156,15 +156,16 @@ class VariableOrder final {
auto& attributes = m_attributes(varp);
// Stratum
const int sigbytes = varp->dtypeSkipRefp()->widthAlignBytes();
attributes.stratum = (varp->isUsedClock() && varp->widthMin() == 1) ? 0
: VN_IS(varp->dtypeSkipRefp(), UnpackArrayDType) ? 8
: (varp->basicp() && varp->basicp()->isOpaque()) ? 7
: (varp->isScBv() || varp->isScBigUint()) ? 6
: (sigbytes == 8) ? 5
: (sigbytes == 4) ? 4
: (sigbytes == 2) ? 2
: (sigbytes == 1) ? 1
: 9;
attributes.stratum = (v3Global.opt.hierChild() && varp->isPrimaryIO()) ? 0
: (varp->isUsedClock() && varp->widthMin() == 1) ? 1
: VN_IS(varp->dtypeSkipRefp(), UnpackArrayDType) ? 9
: (varp->basicp() && varp->basicp()->isOpaque()) ? 8
: (varp->isScBv() || varp->isScBigUint()) ? 7
: (sigbytes == 8) ? 6
: (sigbytes == 4) ? 5
: (sigbytes == 2) ? 3
: (sigbytes == 1) ? 2
: 10;
// Anonymous structure ok
attributes.anonOk = EmitCBaseVisitor::isAnonOk(varp);
}