CsrBlockConfig class

Definition for a coherent block of registers.

Blocks by definition are instantiations of registers and hence require CsrInstanceConfig objects. This class is also where the choice to instantiate any conditional registers should take place.

Annotations

Constructors

CsrBlockConfig({required String name, required int baseAddr, required List<CsrInstanceConfig> registers, int? blockSize})
Construct a new block configuration.

Properties

baseAddr int
Address off of which all register addresses are offset.
final
blockSize int?
Optional override for the number of addresses in this block's address space.
final
hashCode int
The hash code for this object.
no setter
name String
Name of the configuration.
finalinherited
registers List<CsrInstanceConfig>
Registers in this block.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

clone() CsrBlockConfig
Deep clone method.
getRegisterByAddr(int addr) CsrInstanceConfig
Accessor to the config of a particular register within the block by relative address addr.
getRegisterByName(String name) CsrInstanceConfig
Accessor to the config of a particular register within the block by name name.
maxRegWidth() int
Method to determine the maximum register size. This is important for interface data width validation.
minAddrBits() int
Method to determine the minimum number of address bits needed to address all registers in the block. This is based on the maximum register address offset.
minBlockSize() int
Returns the minimum block size (number of addresses) needed to cover all registers in this block.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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