slang::analysis::SensitivityList struct

Describes the effective sensitivity list for a SystemVerilog procedure.

The sensitivity list represents the set of signals that, when they change, cause the procedure to re-evaluate.

Public types

enum class Kind { None, Explicit, Implicit, Dynamic }
The kind of sensitivity list.

Public variables

Kind kind
The kind of this sensitivity list.
const ast::TimingControl* timingControl
For Kind::Explicit: the timing control containing the explicit sensitivity.
SmallVector<ReadRange, 2> reads
The set of (symbol, bitRange) entries forming the sensitivity list.

Enum documentation

enum class slang::analysis::SensitivityList::Kind

The kind of sensitivity list.

Enumerators
None

No event-based sensitivity: the procedure runs unconditionally (e.g.

initial, final) or has no event timing control.

Explicit

Explicit sensitivity list specified in source (e.g.

always_ff @(posedge clk) or always @(a or b)).

Implicit

Implicit sensitivity list derived from the signals read by the procedure (e.g.

always_comb, always_latch, or always @*). Locally-declared symbols are excluded.

Dynamic

Procedures that contain multiple event controls, or event controls not at the start of the block (such as inside complicated flow control, fork join blocks, etc).