Support non-overlapped property implications correctly (#8268)

Signed-off-by: Artur Bieniek <[email protected]>
This commit is contained in:
Artur Bieniek
2026-09-07 13:50:13 -04:00
committed by GitHub
parent 9c6126b834
commit cd2475fbd4
2 changed files with 27 additions and 2 deletions
+2 -2
View File
@@ -1760,7 +1760,7 @@ public:
bool sameNode(const AstNode* /*samep*/) const override { return true; }
};
class AstImplication final : public AstNodeExpr {
// Implication |-> |=> (IEEE 1800-2023 16.12.6) and followed-by #-# #=#
// Implication |-> |=> (IEEE 1800-2023 16.12.7) and followed-by #-# #=#
// (IEEE 1800-2023 16.12.9). Antecedent-miss is vacuous-pass for implication
// and non-vacuous-fail for followed-by, hence the separate flag.
// @astgen op1 := lhsp : AstNodeExpr
@@ -1788,7 +1788,7 @@ public:
string emitSimpleOperator() override { V3ERROR_NA_RETURN(""); }
bool cleanOut() const override { V3ERROR_NA_RETURN(""); }
int instrCount() const override { return widthInstrs(); }
bool isMultiCycleSva() const override { return m_isFollowedBy; }
bool isMultiCycleSva() const override { return m_isFollowedBy || !m_isOverlapped; }
bool isOverlapped() const { return m_isOverlapped; }
bool isFollowedBy() const { return m_isFollowedBy; }
};