An AXI subordinate containing memory-mapped registers. More...
#include <AxiSubordinateToReg.h>
Public Types | |
typedef axi::axi4< axiCfg > | axi4_ |
Public Member Functions | |
SC_CTOR (AxiSubordinateToCSReg) | |
Public Attributes | |
sc_in< bool > | clk |
sc_in< bool > | reset_bar |
axi4_::read::template subordinate | if_axi_rd |
axi4_::write::template subordinate | if_axi_wr |
sc_in< NVUINTW(numAddrBitsToInspect)> | baseAddr |
sc_out< NVUINTW(axi4_::DATA_WIDTH)> | regOut [numControlReg] |
sc_in< NVUINTW(axi4_::DATA_WIDTH)> | regIn [numStatusReg] |
Static Public Attributes | |
static const int | kDebugLevel = 5 |
static const int | numReg = numControlReg + numStatusReg |
static const int | controlRegAddrWidth = nvhls::log2_ceil<numControlReg>::val |
static const int | statusRegAddrWidth = nvhls::log2_ceil<numStatusReg>::val |
static const int | bytesPerReg = axi4_::DATA_WIDTH >> 3 |
static const int | axiAddrBitsPerReg = nvhls::log2_ceil<bytesPerReg>::val |
Protected Member Functions | |
void | run () |
An AXI subordinate containing memory-mapped registers.
axiCfg | A valid AXI config. |
numControlReg | The number of control (local writable state) registers in the subordinate. Each register has a width equivalent to the AXI data width. |
numStatusReg | The number of status (external read-only state) registers in the subordinate. Each register has a width equivalent to the AXI data width. |
numAddrBitsToInspect | The number of address bits to inspect when determining which subordinate to direct traffic to. If this is less than the full address width, the routing determination will be made based on the number of address LSBs specified. (Default: axiCfg::addrWidth) |
This module sets the stall mode to flush by default to mitigate possible RTL bugs that can occur in the default stall mode. If you are confident that this class of bugs will not occur in your use case, you can change the stall mode via TCL directive:
This may reduce area/power.
Definition at line 261 of file AxiSubordinateToReg.h.
typedef axi::axi4<axiCfg> AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::axi4_ |
Definition at line 265 of file AxiSubordinateToReg.h.
|
inline |
Definition at line 286 of file AxiSubordinateToReg.h.
|
inlineprotected |
Definition at line 298 of file AxiSubordinateToReg.h.
|
static |
Definition at line 263 of file AxiSubordinateToReg.h.
sc_in<bool> AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::clk |
Definition at line 267 of file AxiSubordinateToReg.h.
sc_in<bool> AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::reset_bar |
Definition at line 268 of file AxiSubordinateToReg.h.
axi4_::read::template subordinate AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::if_axi_rd |
Definition at line 270 of file AxiSubordinateToReg.h.
axi4_::write::template subordinate AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::if_axi_wr |
Definition at line 271 of file AxiSubordinateToReg.h.
|
static |
Definition at line 273 of file AxiSubordinateToReg.h.
|
static |
Definition at line 274 of file AxiSubordinateToReg.h.
|
static |
Definition at line 275 of file AxiSubordinateToReg.h.
|
static |
Definition at line 276 of file AxiSubordinateToReg.h.
|
static |
Definition at line 277 of file AxiSubordinateToReg.h.
sc_in<NVUINTW(numAddrBitsToInspect)> AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::baseAddr |
Definition at line 279 of file AxiSubordinateToReg.h.
sc_out<NVUINTW(axi4_::DATA_WIDTH)> AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::regOut[numControlReg] |
Definition at line 282 of file AxiSubordinateToReg.h.
sc_in<NVUINTW(axi4_::DATA_WIDTH)> AxiSubordinateToCSReg< axiCfg, numControlReg, numStatusReg, numAddrBitsToInspect >::regIn[numStatusReg] |
Definition at line 283 of file AxiSubordinateToReg.h.