SignalOccurrence class

Signals are the fundamental data carriers in hardware. A signal can be:

  • An internal signal within an occurrence
  • A port on an occurrence interface (has direction: input/output/inout)

This is a structural model without waveform data. Path strings are computed on demand from the parent occurrence reference — call path with your desired separator.

Constructors

SignalOccurrence({required String name, required int width, String? direction, String? value, bool isComputed = false, int? portIndex, Map<String, dynamic>? logicType})
Creates a SignalOccurrence with the given properties.

Properties

address → OccurrenceAddress?
Hierarchical address for this signal. Assigned by HierarchyOccurrence.buildAddresses to enable efficient navigation. Format: ...occurrenceIndices, signalIndex
no setter
arrayDims → List<int>?
Array dimensions (e.g. [10] for 1D, [10, 2] for 2D), or null.
no setter
arrayElementWidth → int?
Element width for arrays, or null if not an array.
no setter
direction → String?
Direction of the signal if it's a port. Null for internal signals. "input", "output", or "inout" for ports.
final
hashCode → int
The hash code for this object.
no setterinherited
isArray → bool
Whether this signal is a LogicArray (has indexed elements).
no setter
isComputed → bool
Whether this signal's value is computed/derivable (e.g. constant, gate output, InlineSystemVerilog result) rather than directly tracked by the waveform service.
final
isInout → bool
Returns true if this is a bidirectional port.
no setter
isInput → bool
Returns true if this is an input port.
no setter
isOutput → bool
Returns true if this is an output port.
no setter
isPort → bool
Returns true if this signal is a port (has a direction).
no setter
isStruct → bool
Whether this signal is a LogicStructure (has named sub-fields).
no setter
logicType ↔ Map<String, dynamic>?
Type metadata from the netlist logic_type JSON field.
getter/setter pair
name → String
The name of the signal (bare name within its scope).
final
parent → HierarchyOccurrence?
Parent occurrence containing this signal. Set by HierarchyOccurrence.buildAddresses.
no setter
portIndex → int?
Stable ordering index among ports in the parent occurrence.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
structFields → List<Map<String, dynamic>>
The struct field descriptors, or empty list if not a struct.
no setter
subFieldDescriptors → List<({String expectedName, String fieldLabel, int startBit, Map<String, Object?>? subLogicType, int width})>
Returns the expected sub-field signal names derived from logicType.
no setter
typeName → String?
The struct type name (e.g. "FloatingPoint"), or null if not a struct.
no setter
value → String?
Current runtime value of the signal (if available). Typically a hex or binary string representation.
final
width → int
The bit width of the signal.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
path({String separator = hierarchyPathSeparator}) → String
Compute the full hierarchical path for this signal.
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

subFieldDescriptorsForType(Map<String, Object?> logicType, String parentName) → List<({String expectedName, String fieldLabel, int startBit, Map<String, Object?>? subLogicType, int width})>
Compute sub-field descriptors for an arbitrary logicType map.