slang::analysis::AnalyzedAssertion class

Represents an analyzed assertion (or procedural checker).

Constructors, destructors, conversion operators

AnalyzedAssertion(AnalysisContext& context, const AnalyzedProcedure& procedure, const ast::ConcurrentAssertionStatement& stmt)
Constructs a new AnalyzedAssertion object.
AnalyzedAssertion(AnalysisContext& context, const AnalyzedProcedure& procedure, const ast::AssertionInstanceExpression& expr)
Constructs a new AnalyzedAssertion object.
AnalyzedAssertion(AnalysisContext& context, const ast::TimingControl* contextualClock, const ast::Symbol& parentSymbol, const ast::AssertionInstanceExpression& expr)
Constructs a new AnalyzedAssertion object.

Public functions

const ast::AssertionExpr& getRoot() const
Gets the root of the assertion expression tree.
const ast::TimingControl* getSemanticLeadingClock() const
Gets the semantic leading clock of the assertion.
const ast::TimingControl* getClock(const ast::AssertionExpr& expr) const
Gets the clock that applies to the given sub-expression of this assertion.

Public variables

not_null<const ast::Symbol*> containingSymbol
The symbol that contains this assertion.
const AnalyzedProcedure* procedure
The procedure that contains this assertion, if any.
std::variant<const ast::ConcurrentAssertionStatement*, const ast::AssertionInstanceExpression*> astNode
The AST node that describes the assertion.
bool bad
Set to true if there was an error analyzing the assertion.

Function documentation

const ast::TimingControl* slang::analysis::AnalyzedAssertion::getClock(const ast::AssertionExpr& expr) const

Gets the clock that applies to the given sub-expression of this assertion.