slang::analysis::AnalyzedProcedure class

Represents an analyzed procedure.

Note that this can include continuous assignments, which are not technically procedures but are treated as such for analysis purposes.

Constructors, destructors, conversion operators

AnalyzedProcedure(AnalysisContext& context, const ast::Symbol& symbol, const AnalyzedProcedure* parentProcedure = nullptr)
Constructs a new AnalyzedProcedure object.

Public functions

auto getInferredClock() const -> const ast::TimingControl*
Returns the inferred clocking block for the procedure, if available.
auto getAssertions() const -> std::span<const AnalyzedAssertion>
Gets the list of analyzed assertions in the procedure.
auto getDrivers() const -> std::span<const SymbolDriverListPair>
Gets all of the drivers in the procedure.
auto getCallExpressions() const -> std::span<const ast::CallExpression*const>
Gets all of the subroutine calls in the procedure.

Public variables

not_null<const ast::Symbol*> analyzedSymbol
The symbol that was analyzed.
const AnalyzedProcedure* parentProcedure
The procedure that contains this one, if any.

Function documentation

const ast::TimingControl* slang::analysis::AnalyzedProcedure::getInferredClock() const

Returns the inferred clocking block for the procedure, if available.

std::span<const AnalyzedAssertion> slang::analysis::AnalyzedProcedure::getAssertions() const

Gets the list of analyzed assertions in the procedure.

Variable documentation

const AnalyzedProcedure* slang::analysis::AnalyzedProcedure::parentProcedure

The procedure that contains this one, if any.

Only possible for procedural checker instances.