SlicePortReference class
A PortReference that provides access to sliced or indexed portions of a port.
This class handles complex port access patterns including bit-level slicing and multi-dimensional array indexing. It supports various access patterns while ensuring type safety and proper connection semantics.
- Inheritance
-
- Object
- PortReference
- SlicePortReference
- Implementers
- Annotations
Constructors
-
SlicePortReference.new(BridgeModule module, String portName, {List<
int> ? dimensionAccess, int? sliceUpperIndex, int? sliceLowerIndex}) - Creates a slice port reference with the specified parameters.
- SlicePortReference.fromString(BridgeModule module, String portAccessString)
-
Creates a slice port reference from a port access string.
factory
Properties
-
dimensionAccess
↔ List<
int> ? -
Array dimension and/or bit indices for multi-dimensional array access.
latefinal
- direction → PortDirection
-
The direction of the port (input, output, or inOut).
latefinalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasSlicing → bool
-
Whether this reference includes slicing.
no setter
- module → BridgeModule
-
The BridgeModule that this reference belongs to.
finalinherited
- port → Logic
-
The actual Logic port that this reference points to.
latefinalinherited
- portName → String
-
The name of the port that this reference points to.
finalinherited
- portSubset → dynamic
-
The port subset that this reference represents.
latefinal
- portSubsetLogic → Logic
-
A Logic representation of the port subset.
latefinalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sliceLowerIndex ↔ int?
-
The lower bound of the slice (inclusive).
latefinal
- sliceUpperIndex ↔ int?
-
The upper bound of the slice (inclusive).
latefinal
-
subsetDimensions
→ List<
int> ? -
The array dimensions of the port subset, if applicable.
no setter
- subsetElementWidth → int
-
The bit width of the port subset this reference represents.
no setter
- width → int
-
The bit width of this port reference.
latefinalinherited
Methods
-
drivesLogic(
Logic other) → void -
Drives a Logic signal with this port's value.
override
-
gets(
PortReference other) → void -
Connects this port to be driven by
other
.inherited -
getsLogic(
Logic other) → void -
Connects this port to be driven by a Logic signal.
override
-
getUpdatedSliceIndices(
int endIndex, int startIndex) → (int, int) - Computes new slice indices when creating a sub-slice of this reference.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
punchDownTo(
BridgeModule subModule, {String? newPortName}) → PortReference -
Creates a matching port in a submodule and connects them.
inherited
-
punchUpTo(
BridgeModule parentModule, {String? newPortName}) → PortReference -
Creates a matching port in the parent module and connects them.
inherited
-
replicateTo(
BridgeModule newModule, PortDirection direction, {String? newPortName}) → PortReference -
Creates a new port in the specified module with the given direction.
override
-
slice(
int endIndex, int startIndex) → PortReference -
Creates a slice of this port from
endIndex
down tostartIndex
.override -
tieOff(
[dynamic value = 0]) → void -
Ties this port to a constant
value
.inherited -
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
int index) → PortReference -
Gets a single bit of this port at the specified
index
.inherited