AddrmapNode
AddrmapNode
is a template class that represents an addrmap
component in SystemRDL.
AddrmapNode
can contain RegNodes
, MemNodes
, RegFileNodes
and other AddrmapNodes
, but an AddrmapNode
can only be contained within another AddrmapNode
or can be a top AddrmapNode
.
AddrmapNode
AddrmapNode
template has the following declarations:
AddrmapNode
with PARENT_TYPE
The following template is a general AddrmapNode
which expect to be contained within another AddrmapNode
.
In case of read
, write
requests to this node, the requests will be forwarded to the containing node, as this node does not implement memory IO operations.
This template expects 2 parameters:
BASE
is an address offset within containingAddrmapNode
.PARENT_TYPE
is a type of the parentAddrmapNode
, a specialization of theAddrmapNode
wherePARENT_TYPE==void
is provided below.
template <uint32_t BASE, typename PARENT_TYPE = void>
class AddrmapNode;
Top AddrmapNode
A special case of AddrmapNode
is an addrmap node that is not contained within another AddrmapNode
, but instead it implements the memory IO operations, and it ends the (getter, setter) call chain from lower levels of hierarchy.
It has the following declaration:
template <uint32_t BASE>
class AddrmapNode <BASE, void> : public ArchIoNode;
As you can see it is a specialization of AddrmapNode
where the PARENT_TYPE==void
.
The BASE
parameter is the same.
In addition, the top AddrmapNode
inherits an ArchIoNode
, which is a class that provides memory IO operations of the platform.
ArchIoNode
is expected to implement write32()
and read32()
methods.