|
enum | {
DATA_WIDTH = Cfg::dataWidth
, ADDR_WIDTH = Cfg::addrWidth
, ID_WIDTH = Cfg::idWidth
, BID_WIDTH = (Cfg::useWriteResponses == 0 ? 0 : Cfg::idWidth)
,
ALEN_WIDTH
, ASIZE_WIDTH = (Cfg::useVariableBeatSize != 0 ? 3 : 0)
, LAST_WIDTH = (Cfg::useLast != 0 ? 1 : 0)
, CACHE_WIDTH = (Cfg::useCache != 0 ? Enc::ARCACHE::_WIDTH : 0)
,
BURST_WIDTH
, WSTRB_WIDTH = (Cfg::useWriteStrobes != 0 ? (DATA_WIDTH >> 3) : 0)
, RESP_WIDTH = Enc::XRESP::_WIDTH
, AUSER_WIDTH = Cfg::aUserWidth
,
WUSER_WIDTH = Cfg::wUserWidth
, BUSER_WIDTH = (Cfg::useWriteResponses == 0 ? 0 : Cfg::bUserWidth)
, RUSER_WIDTH = Cfg::rUserWidth
} |
|
typedef AXI4_Encoding | Enc |
|
typedef nvhls::UIntOrEmpty< ID_WIDTH >::T | Id |
|
typedef nvhls::UIntOrEmpty< BID_WIDTH >::T | BId |
|
typedef nvhls::UIntOrEmpty< ALEN_WIDTH >::T | BeatNum |
|
typedef nvhls::UIntOrEmpty< ASIZE_WIDTH >::T | BeatSize |
|
typedef nvhls::UIntOrEmpty< LAST_WIDTH >::T | Last |
|
typedef nvhls::UIntOrEmpty< WSTRB_WIDTH >::T | Wstrb |
|
typedef nvhls::UIntOrEmpty< CACHE_WIDTH >::T | Cache |
|
typedef nvhls::UIntOrEmpty< BURST_WIDTH >::T | Burst |
|
typedef nvhls::UIntOrEmpty< AUSER_WIDTH >::T | AUser |
|
typedef nvhls::UIntOrEmpty< WUSER_WIDTH >::T | WUser |
|
typedef nvhls::UIntOrEmpty< BUSER_WIDTH >::T | BUser |
|
typedef nvhls::UIntOrEmpty< RUSER_WIDTH >::T | RUser |
|
template<typename Cfg>
class axi::axi4< Cfg >
The base axi4 class parameterized according a valid config.
- Template Parameters
-
- Overview
- axi4 defines the AXI base class. Based on the provided Cfg, the bitwidths of the various fields of the AXI specification are defined, and classes and convenience functions can be used to instantiate AXI Connections, wire them together, and use them to implement the AXI protocol.
- Each AXI signal is defined as a UIntOrEmpty of an appropriate width, allowing for the presence of 0-width fields when they can be elided entirely.
- If useWriteResponses = 0, the B channel is not removed entirely (for implementation convenience), but is reduced to minimum width.
- All AW and AR fields are identical, and are combined into a common AddrPayload type.
Definition at line 64 of file axi4.h.