TimingControl class
#include <slang/ast/TimingControl.h>
The base class for SystemVerilog timing controls (delay, event, etc).
Derived classes
- class BlockEventListControl final
- Represents a list of block events (used within coverage events).
- class CycleDelayControl final
- Represents a cycle-based delay control.
- class Delay3Control final
- Represents multiple delays associated with a single gate primitive.
- class DelayControl final
- Represents a delay time control.
- class EventListControl final
- Represents a list of timing controls to wait on.
- class ImplicitEventControl final
- Represents an implicit event control (i.e. the @* construct).
- class InvalidTimingControl final
- Represents an invalid timing control.
- class OneStepDelayControl final
- Represents the built-in
1stepdelay. - class RepeatedEventControl final
- Represents a
repeatevent control. - class SignalEventControl final
- Represents a signal event control.
Public static functions
-
static TimingControl& bind(const syntax::
TimingControlSyntax& syntax, const ASTContext& context) - Binds a timing control from the given syntax node.
-
static TimingControl& bind(const syntax::
PropertyExprSyntax& syntax, const ASTContext& context) - Binds a timing control from the given syntax node.
-
static TimingControl& bind(const syntax::
SequenceExprSyntax& syntax, const ASTContext& context) - Binds a timing control from the given syntax node.
Public functions
- bool bad() const
- Indicates whether the timing control is invalid.
-
template<typename T>T& as()
- Casts this timing control to the given concrete derived type.
-
template<typename T>const T& as() const
- Casts this timing control to the given concrete derived type.
-
template<typename T>T* as_if()
- Tries to cast this timing control to the given concrete derived type.
-
template<typename T>const T* as_if() const
- Tries to cast this timing control to the given concrete derived type.
-
template<typename TVisitor, typename... Args>decltype(auto) visit(TVisitor& visitor, Args && ... args) const
- Visits this timing control's concrete derived type via the provided visitor object.
Public variables
- TimingControlKind kind
- The kind of timing control; indicates the type of derived class.
-
const syntax::
SyntaxNode* syntax - The syntax used to create the timing control, if any.
- SourceRange sourceRange
- The source range of this timing control, if it originated from source code.
Function documentation
template<typename T>
T& slang:: ast:: TimingControl:: as()
Casts this timing control to the given concrete derived type.
Asserts that the type is appropriate given this timing control's kind.
template<typename T>
const T& slang:: ast:: TimingControl:: as() const
Casts this timing control to the given concrete derived type.
Asserts that the type is appropriate given this timing control's kind.
template<typename T>
T* slang:: ast:: TimingControl:: as_if()
Tries to cast this timing control to the given concrete derived type.
If the type is not appropriate given this timing control's kind, returns nullptr.
template<typename T>
const T* slang:: ast:: TimingControl:: as_if() const
Tries to cast this timing control to the given concrete derived type.
If the type is not appropriate given this timing control's kind, returns nullptr.