LogicStructure class
Collects a group of Logic signals into one entity which can be manipulated in a similar way as an individual Logic.
 Implemented types
 Implementers
Constructors

LogicStructure(Iterable<
Logic> elements, {String? name}) 
Creates a new LogicStructure with
elements
as elements.
Properties
 arrayIndex → int?

If this is a part of a LogicArray, the index within that array.
Othwerise, returns
null
.no setteroverride  bit → LogicValue

The current active value of this signal if it has width 1, as
a LogicValue.
no setteroverride

changed
→ Stream<
LogicValueChanged> 
A Stream of
LogicValueChanged
events which triggers at most once per Simulator tick, iff the value of the Logic has changed.latefinal 
dstConnections
→ Iterable<
Logic> 
An Iterable of all
Logic
s that are being directly driven bythis
.no setteroverride 
elements
→ List<
Logic> 
All elements of this structure.
latefinal

glitch
→ SynchronousEmitter<
LogicValueChanged> 
A stream of
LogicValueChanged
events for every time the signal transitions at any time during a Simulator tick.latefinal  hashCode → int

The hash code for this object.
no setterinherited
 isArrayMember → bool

True if this is a member of a LogicArray.
no setteroverride
 isInOut → bool

Returns true iff this signal is an inOut of its parent Module.
latefinal
 isInput → bool

Returns true iff this signal is an input of its parent Module.
latefinal
 isNet → bool

Indicates whether this signal behaves like a LogicNet, allowing multiple
drivers.
no setteroverride
 isOutput → bool

Returns true iff this signal is an output of its parent Module.
latefinal
 isPort → bool

Returns true iff this signal is an input, output, or inOut of its parent
Module.
latefinal

leafElements
→ List<
Logic> 
A list of all leaflevel elements at the deepest hierarchy of this
structure provided in index order.
latefinal
 name → String

The name of this signal.
final
 naming → Naming

Controls the naming (and renaming) preferences of this signal in generated
outputs.
no setteroverride

negedge
→ Stream<
LogicValueChanged> 
A Stream of
LogicValueChanged
events which triggers at most once per Simulator tick, iff the value of the Logic has changed from1
to0
.no setteroverride 
nextChanged
→ Future<
LogicValueChanged> 
Triggers at most once, the next time that this Logic changes
value at the end of a Simulator tick.
no setteroverride

nextNegedge
→ Future<
LogicValueChanged> 
Triggers at most once, the next time that this Logic changes
value at the end of a Simulator tick from
1
to0
.no setteroverride 
nextPosedge
→ Future<
LogicValueChanged> 
Triggers at most once, the next time that this Logic changes
value at the end of a Simulator tick from
0
to1
.no setteroverride  packed → Logic

Packs all elements into one flattened bus.
latefinal
 parentModule ↔ Module?

The Module that this Logic exists within.
getter/setter pairoverride
 parentStructure → LogicStructure?

If this is a part of a LogicStructure, the structure which this is
a part of. Otherwise,
null
.no setteroverride 
posedge
→ Stream<
LogicValueChanged> 
A Stream of
LogicValueChanged
events which triggers at most once per Simulator tick, iff the value of the Logic has changed from0
to1
.no setteroverride  previousValue → LogicValue?

The value of this signal before the most recent Simulator.tick had
completed. It will be
null
before the first tick after this signal is created.no setteroverride  reversed → Logic

Returns a version of this Logic with the bit order reversed.
latefinal
 runtimeType → Type

A representation of the runtime type of the object.
no setterinherited
 srcConnection → Logic?

A LogicStructure never has a direct source driving it, only its
elements do, so always returns
null
.no setteroverride 
srcConnections
→ Iterable<
Logic> 
All
Logic
s drivingthis
, if any.no setteroverride  structureName → String

Returns the name relative to the parentStructuredefined hierarchy, if
one exists. Otherwise, this is the same as name.
no setteroverride
 value → LogicValue

The current active value of this signal.
no setteroverride
 valueBigInt → BigInt

The current valid active value of this signal as a BigInt.
no setteroverride
 valueInt → int

The current valid active value of this signal as an int.
no setteroverride
 width → int

The number of bits in this signal.
latefinal
Methods

abs(
) → Logic 
Calculates the absolute value of a signal, assuming that the
number is a two's complement.
override

and(
) → Logic 
Unary AND.
override

assignSubset(
List< Logic> updatedSubset, {int start = 0}) → void 
Performs an assignment operation on a portion this signal to be driven by
updatedSubset
. Each index ofupdatedSubset
will be assigned to drive the corresponding index, plusstart
, of this signal.override 
clone(
{String? name}) → LogicStructure 
Creates a new LogicStructure with the same structure as
this
. 
decr(
{Logic s(Logic p1)?, dynamic val = 1}) → Conditional 
Decrements each element of elements using Logic.decr.
override

divAssign(
dynamic val, {Logic s(Logic p1)?}) → Conditional 
Divideassigns each element of elements using Logic.divAssign.
override

eq(
dynamic other) → Logic 
Logical equality.
override

getRange(
int startIndex, [int? endIndex]) → Logic 
Returns a subset Logic. It is inclusive of
startIndex
, exclusive ofendIndex
.override 
gets(
Logic other) → void 
Connects this Logic directly to be driven by
other
.override 
gt(
dynamic other) → Logic 
Greaterthan.
override

gte(
dynamic other) → Logic 
Greaterthanorequalto.
override

hasValidValue(
) → bool 
Returns
true
iff the value of this signal is valid (nox
orz
).override 
incr(
{Logic s(Logic p1)?, dynamic val = 1}) → Conditional 
Increments each element of elements using Logic.incr.
override

inject(
dynamic val, {bool fill = false}) → void 
Injects a value onto this signal in the current Simulator tick.
override

isFloating(
) → bool 
Returns
true
iff all bits of the current value are floating (z
).override 
isIn(
List list) → Logic 
Returns
1
(of width=1) if the Logic calling this function is inlist
. Else0
(of width=1) if not present.override 
lt(
dynamic other) → Logic 
Lessthan.
override

lte(
dynamic other) → Logic 
Lessthanorequalto.
override

makeUnassignable(
) → void 
Makes it so that this signal cannot be assigned by any full (
<=
) or conditional (<
) assignment.override 
mulAssign(
dynamic val, {Logic s(Logic p1)?}) → Conditional 
Multiplyassigns each element of elements using Logic.mulAssign.
override

neq(
dynamic other) → Logic 
Logical inequality.
override

noSuchMethod(
Invocation invocation) → dynamic 
Invoked when a nonexistent method or property is accessed.
inherited

or(
) → Logic 
Unary OR.
override

pow(
dynamic exponent) → Logic 
Power operation
override

put(
dynamic val, {bool fill = false}) → void 
Puts a value
val
onto this signal, which may or may not be picked up for changed in this Simulator tick.override 
replicate(
int multiplier) → Logic 
Returns a replicated signal using ReplicationOp with new
width = this.width *
multiplier
The inputmultiplier
cannot be negative or 0; an exception will be thrown, otherwise.override 
selectFrom(
List< Logic> busList, {Logic? defaultValue}) → Logic 
Performs a Logic
index
based selection on an List of Logic namedbusList
.override 
setAllParentModule(
Module? newParentModule) → void  Performs a recursive call of setting parentModule on all of elements and their elements for any subLogicStructures.

signExtend(
int newWidth) → Logic 
Returns a new Logic width width
newWidth
where new bits added are sign bits as the most significant bits. The sign is determined using two's complement, so it takes the most significant bit of the original signal and extends with that.override 
slice(
int endIndex, int startIndex) → Logic 
Accesses a subset of this signal from
startIndex
toendIndex
, both inclusive.override 
toString(
) → String 
A string representation of this object.
inherited

withSet(
int startIndex, Logic update) → Logic 
Returns a copy of this Logic with the bits starting from
startIndex
up untilstartIndex
+update
.width
set toupdate
instead of their original value.override 
xor(
) → Logic 
Unary XOR.
override

zeroExtend(
int newWidth) → Logic 
Returns a new Logic with width
newWidth
where new bits added are zeros as the most significant bits.override
Operators

operator %(
dynamic other) → Logic 
Modulo operation.
override

operator &(
Logic other) → Logic 
Logical bitwise AND.
override

operator *(
dynamic other) → Logic 
Multiplication.
override

operator +(
dynamic other) → Logic 
Addition.
override

operator (
dynamic other) → Logic 
Subtraction.
override

operator /(
dynamic other) → Logic 
Division.
override

operator <(
dynamic other) → Conditional 
Conditional assignment operator.
override

operator <<(
dynamic other) → Logic 
Logical leftshift.
override

operator <=(
Logic other) → void 
Connects this Logic directly to another Logic.
override

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

operator >(
dynamic other) → Logic 
Greaterthan.
override

operator >=(
dynamic other) → Logic 
Greaterthanorequalto.
override

operator >>(
dynamic other) → Logic 
Arithmetic rightshift.
override

operator >>>(
dynamic other) → Logic 
Logical rightshift.
override

operator [](
dynamic index) → Logic 
Accesses the
index
th bit of this signal.override 
operator ^(
Logic other) → Logic 
Logical bitwise XOR.
override

operator (
Logic other) → Logic 
Logical bitwise OR.
override

operator ~(
) → Logic 
Logical bitwise NOT.
override