Csr class
Logic representation of a Control and Status Register (CSR).
Semantically, a register can be created with no fields. In this case, a single implicit field is created that is read/write and the entire width of the register.
- Inheritance
-
- Object
- LogicStructure
- Csr
- Available extensions
Constructors
- Csr.new(CsrInstanceConfig config)
-
Factory constructor for Csr.
factory
Properties
- access → CsrAccess
-
Getter for the access control of the CSR.
no setter
- addr → int
-
Getter for the address of the CSR.
no setter
- arrayIndex → int?
-
If this is a part of a LogicArray, the index within that array.
Othwerise, returns
null.no setterinherited - bit → LogicValue
-
The current active value of this signal if it has width 1, as
a LogicValue.
no setterinherited
-
changed
→ Stream<
LogicValueChanged> -
A Stream of
LogicValueChangedevents which triggers at most once per Simulator tick, iff the value of the Logic has changed.latefinalinherited - config → CsrInstanceConfig
-
Configuration for the CSR.
final
-
dstConnections
→ Iterable<
Logic> -
An Iterable of all
Logics that are being directly driven bythis.no setterinherited -
elements
→ List<
Logic> -
All elements of this structure.
latefinalinherited
-
fields
→ List<
CsrFieldConfig> -
Getter for the field configuration of the CSR
no setter
-
glitch
→ SynchronousEmitter<
LogicValueChanged> -
A stream of
LogicValueChangedevents for every time the signal transitions at any time during a Simulator tick.latefinalinherited - hashCode → int
-
The hash code for this object.
no setterinherited
- hasNets → bool
-
Indicates whether this structure or any of its elements isNet.
no setterinherited
- isArrayMember → bool
-
True if this is a member of a LogicArray.
no setterinherited
- isBackdoorReadable → bool
-
Accessor to the architectural backdoor readability of the register.
no setter
- isBackdoorWritable → bool
-
Accessor to the architectural backdoor writability of the register.
no setter
- isFrontdoorReadable → bool
-
Accessor to the architectural frontdoor readability of the register.
no setter
- isFrontdoorWritable → bool
-
Accessor to the architectural frontdoor writability of the register.
no setter
- isInOut → bool
-
Returns true iff this signal is an inOut of its parent Module.
latefinalinherited
- isInput → bool
-
Returns true iff this signal is an input of its parent Module.
latefinalinherited
- isNet → bool
-
Indicates whether this signal behaves like a LogicNet, allowing multiple
drivers.
no setterinherited
- isOutput → bool
-
Returns true iff this signal is an output of its parent Module.
latefinalinherited
- isPort → bool
-
Returns true iff this signal is an input, output, or inOut of its parent
Module.
latefinalinherited
-
leafElements
→ List<
Logic> -
A list of all leaf-level elements at the deepest hierarchy of this
structure provided in index order.
latefinalinherited
- name → String
-
The name of this signal.
finalinherited
- naming → Naming
-
Controls the naming (and renaming) preferences of this signal in generated
outputs.
no setterinherited
-
negedge
→ Stream<
LogicValueChanged> -
A Stream of
LogicValueChangedevents which triggers at most once per Simulator tick, iff the value of the Logic has changed from1to0.no setterinherited -
nextChanged
→ Future<
LogicValueChanged> -
Triggers at most once, the next time that this Logic changes
value at the end of a Simulator tick.
no setterinherited
-
nextNegedge
→ Future<
LogicValueChanged> -
Triggers at most once, the next time that this Logic changes
value at the end of a Simulator tick from
1to0.no setterinherited -
nextPosedge
→ Future<
LogicValueChanged> -
Triggers at most once, the next time that this Logic changes
value at the end of a Simulator tick from
0to1.no setterinherited - packed → Logic
-
Packs all elements into one flattened Logic bus.
latefinalinherited
- parentModule → Module?
-
The Module that this Logic exists within.
no setterinherited
- parentStructure → LogicStructure?
-
If this is a part of a LogicStructure, the structure which this is
a part of. Otherwise,
null.no setterinherited -
posedge
→ Stream<
LogicValueChanged> -
A Stream of
LogicValueChangedevents which triggers at most once per Simulator tick, iff the value of the Logic has changed from0to1.no setterinherited - previousValue → LogicValue?
-
The value of this signal before the most recent Simulator.tick had
completed. It will be
nullbefore the first tick after this signal is created.no setterinherited - resetValue → int
-
Getter for the reset value of the CSR.
no setter
- reversed → Logic
-
Returns a version of this Logic with the bit order reversed.
latefinalinherited
-
rsvdIndices
→ List<
int> -
A list of indices of all of the reserved fields in the CSR.
This is necessary because the configuration does not explicitly
define reserved fields, but they must be accounted for
in certain logic involving the CSR.
final
- 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 setterinherited -
srcConnections
→ Iterable<
Logic> -
All
Logics drivingthis, if any.no setterinherited - structureName → String
-
Returns the name relative to the parentStructure-defined hierarchy, if
one exists. Otherwise, this is the same as name.
no setterinherited
- value → LogicValue
-
The current active value of this signal.
no setterinherited
- valueBigInt → BigInt
-
The current valid active value of this signal as a BigInt.
no setterinherited
- valueInt → int
-
The current valid active value of this signal as an int.
no setterinherited
- width → int
-
The number of bits in this signal.
latefinalinherited
Methods
-
abs(
) → Logic -
Calculates the absolute value of a signal, assuming that the
number is a two's complement.
inherited
-
and(
) → Logic -
Unary AND.
inherited
-
assignSubset(
List< Logic> updatedSubset, {int start = 0}) → void -
Performs an assignment operation on a portion this signal to be driven by
updatedSubset. Each index ofupdatedSubsetwill be assigned to drive the corresponding index, plusstart, of this signal.inherited -
clone(
{String? name}) → Csr -
Creates a clone of this CSR.
override
-
decr(
{Logic s(Logic p1)?, dynamic val = 1}) → Conditional -
Decrements each element of elements using Logic.decr.
inherited
-
divAssign(
dynamic val, {Logic s(Logic p1)?}) → Conditional -
Divide-assigns each element of elements using Logic.divAssign.
inherited
-
eq(
dynamic other) → Logic -
Logical equality.
inherited
-
getField(
String name) → Logic -
Accessor to the bits of a particular field
within the CSR by name
name. -
getFieldConfigByName(
String name) → CsrFieldConfig -
Accessor to the config of a particular field
within the CSR by name
name. -
getRange(
int startIndex, [int? endIndex]) → Logic -
Returns a subset Logic. It is inclusive of
startIndex, exclusive ofendIndex.inherited -
gets(
Logic other) → void -
Connects this Logic directly to be driven by
other.inherited -
getWriteData(
Logic wd) → Logic -
Given some arbitrary data
wdto write to this CSR, return the data that should actually be written based on the access control of the CSR and its fields. -
gt(
dynamic other) → Logic -
Greater-than.
inherited
-
gte(
dynamic other) → Logic -
Greater-than-or-equal-to.
inherited
-
hasValidValue(
) → bool -
Returns
trueiff the value of this signal is valid (noxorz).inherited -
incr(
{Logic s(Logic p1)?, dynamic val = 1}) → Conditional -
Increments each element of elements using Logic.incr.
inherited
-
inject(
dynamic val, {bool fill = false}) → void -
Injects a value onto this signal in the current Simulator tick.
inherited
-
isFloating(
) → bool -
Returns
trueiff all bits of the current value are floating (z).inherited -
isIn(
List list) → Logic -
Returns
1(of width=1) if the Logic calling this function is inlist. Else0(of width=1) if not present.inherited -
lt(
dynamic other) → Logic -
Less-than.
inherited
-
lte(
dynamic other) → Logic -
Less-than-or-equal-to.
inherited
-
makeUnassignable(
{String? reason}) → void -
Makes it so that this signal cannot be assigned by any full (
<=) or conditional (<) assignment.inherited -
mulAssign(
dynamic val, {Logic s(Logic p1)?}) → Conditional -
Multiply-assigns each element of elements using Logic.mulAssign.
inherited
-
named(
String name, {Naming? naming}) → LogicStructure -
Makes a clone, optionally with the specified
name, then assigns it to be driven bythis.inherited -
neq(
dynamic other) → Logic -
Logical inequality.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
or(
) → Logic -
Unary OR.
inherited
-
pow(
dynamic exponent) → Logic -
Power operation
inherited
-
put(
dynamic val, {bool fill = false}) → void -
Puts a value
valonto this signal, which may or may not be picked up for changed in this Simulator tick.inherited -
replicate(
int multiplier) → Logic -
Returns a replicated signal using ReplicationOp with new width =
this.width *
multiplierinherited -
rotateLeft(
dynamic rotateAmount, {int? maxAmount}) → Logic -
Available on Logic, provided by the RotateLogic extension
Returns a Logic rotated left byrotateAmount. -
rotateRight(
dynamic rotateAmount, {int? maxAmount}) → Logic -
Available on Logic, provided by the RotateLogic extension
Returns a Logic rotated right byrotateAmount. -
selectFrom(
List< Logic> busList, {Logic? defaultValue}) → Logic -
Performs a Logic
indexbased selection on an List of Logic namedbusList.inherited -
signExtend(
int newWidth) → Logic -
Returns a new Logic width width
newWidthwhere 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.inherited -
slice(
int endIndex, int startIndex) → Logic -
Accesses a subset of this signal from
startIndextoendIndex, both inclusive.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
waitCycles(
int numCycles, {Edge edge = Edge.pos}) → Future< void> -
Available on Logic, provided by the LogicWaiter extension
Returns a Future which completes after the specifiednumCycles, where each cycle is defined as the next occurence of the specifiededge. -
withSet(
int startIndex, Logic update) → Logic -
Returns a copy of this Logic with the bits starting from
startIndexup untilstartIndex+update.widthset toupdateinstead of their original value.inherited -
xor(
) → Logic -
Unary XOR.
inherited
-
zeroExtend(
int newWidth) → Logic -
Returns a new Logic with width
newWidthwhere new bits added are zeros as the most significant bits.inherited
Operators
-
operator %(
dynamic other) → Logic -
Modulo operation.
inherited
-
operator &(
Logic other) → Logic -
Logical bitwise AND.
inherited
-
operator *(
dynamic other) → Logic -
Multiplication.
inherited
-
operator +(
dynamic other) → Logic -
Addition.
inherited
-
operator -(
dynamic other) → Logic -
Subtraction.
inherited
-
operator /(
dynamic other) → Logic -
Division.
inherited
-
operator <(
dynamic other) → Conditional -
Conditional assignment operator.
inherited
-
operator <<(
dynamic other) → Logic -
Logical left-shift.
inherited
-
operator <=(
Logic other) → void -
Connects this Logic directly to another Logic.
inherited
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator >(
dynamic other) → Logic -
Greater-than.
inherited
-
operator >=(
dynamic other) → Logic -
Greater-than-or-equal-to.
inherited
-
operator >>(
dynamic other) → Logic -
Arithmetic right-shift.
inherited
-
operator >>>(
dynamic other) → Logic -
Logical right-shift.
inherited
-
operator [](
dynamic index) → Logic -
Accesses the
indexth bit of this signal.inherited -
operator ^(
Logic other) → Logic -
Logical bitwise XOR.
inherited
-
operator |(
Logic other) → Logic -
Logical bitwise OR.
inherited
-
operator ~(
) → Logic -
Logical bitwise NOT.
inherited