Support overlong within sequences as never-matching (#8177)

Signed-off-by: Artur Bieniek <[email protected]>
This commit is contained in:
Artur Bieniek
2026-08-20 15:20:54 -04:00
committed by GitHub
parent 227e432695
commit f7c087468d
5 changed files with 8 additions and 46 deletions
+1 -6
View File
@@ -1087,12 +1087,7 @@ class SvaNfaBuilder final {
nodep->v3warn(E_UNSUPPORTED, "Unsupported: within with ranged cycle-delay operand");
return BuildResult::failWithError();
}
if (innerLen > outerLen) {
nodep->v3error("'within' inner sequence " + std::to_string(innerLen)
+ " cycles exceeds outer sequence " + std::to_string(outerLen)
+ " cycles (IEEE 1800-2023 16.9.10)");
return BuildResult::failWithError();
}
if (innerLen > outerLen) return buildNeverMatchIntersect(nodep, entryVtxp, isTopLevelStep);
FileLine* const flp = nodep->fileline();
const int slack = outerLen - innerLen;
AstNodeExpr* innerOrp = nullptr;