MatchLib
Classes | Public Types | Public Member Functions | List of all members
axi::axi4< Cfg > Class Template Reference

The base axi4 class parameterized according a valid config. More...

#include <axi4.h>

Classes

struct  AddrPayload
 A struct composed of the signals associated with AXI read and write requests. More...
 
class  read
 The AXI read class. More...
 
struct  ReadPayload
 A struct composed of the signals associated with an AXI read response. More...
 
struct  WRespPayload
 A struct composed of the signals associated with an AXI write response. More...
 
class  write
 The AXI write class. More...
 
struct  WritePayload
 A struct composed of the signals associated with AXI write data. More...
 

Public Types

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
 

Public Member Functions

typedef NVUINTW (ADDR_WIDTH) Addr
 
typedef NVUINTW (DATA_WIDTH) Data
 
typedef NVUINTW (RESP_WIDTH) Resp
 

Detailed Description

template<typename Cfg>
class axi::axi4< Cfg >

The base axi4 class parameterized according a valid config.

Template Parameters
CfgA valid AXI config.
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.


The documentation for this class was generated from the following file: