MatchLib
All Classes Namespaces Files Functions Modules Pages
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.

Member Typedef Documentation

◆ Enc

template<typename Cfg >
typedef AXI4_Encoding axi::axi4< Cfg >::Enc

Definition at line 66 of file axi4.h.

◆ Id

template<typename Cfg >
typedef nvhls::UIntOrEmpty<ID_WIDTH>::T axi::axi4< Cfg >::Id

Definition at line 96 of file axi4.h.

◆ BId

template<typename Cfg >
typedef nvhls::UIntOrEmpty<BID_WIDTH>::T axi::axi4< Cfg >::BId

Definition at line 97 of file axi4.h.

◆ BeatNum

template<typename Cfg >
typedef nvhls::UIntOrEmpty<ALEN_WIDTH>::T axi::axi4< Cfg >::BeatNum

Definition at line 98 of file axi4.h.

◆ BeatSize

template<typename Cfg >
typedef nvhls::UIntOrEmpty<ASIZE_WIDTH>::T axi::axi4< Cfg >::BeatSize

Definition at line 99 of file axi4.h.

◆ Last

template<typename Cfg >
typedef nvhls::UIntOrEmpty<LAST_WIDTH>::T axi::axi4< Cfg >::Last

Definition at line 100 of file axi4.h.

◆ Wstrb

template<typename Cfg >
typedef nvhls::UIntOrEmpty<WSTRB_WIDTH>::T axi::axi4< Cfg >::Wstrb

Definition at line 101 of file axi4.h.

◆ Cache

template<typename Cfg >
typedef nvhls::UIntOrEmpty<CACHE_WIDTH>::T axi::axi4< Cfg >::Cache

Definition at line 102 of file axi4.h.

◆ Burst

template<typename Cfg >
typedef nvhls::UIntOrEmpty<BURST_WIDTH>::T axi::axi4< Cfg >::Burst

Definition at line 103 of file axi4.h.

◆ AUser

template<typename Cfg >
typedef nvhls::UIntOrEmpty<AUSER_WIDTH>::T axi::axi4< Cfg >::AUser

Definition at line 106 of file axi4.h.

◆ WUser

template<typename Cfg >
typedef nvhls::UIntOrEmpty<WUSER_WIDTH>::T axi::axi4< Cfg >::WUser

Definition at line 107 of file axi4.h.

◆ BUser

template<typename Cfg >
typedef nvhls::UIntOrEmpty<BUSER_WIDTH>::T axi::axi4< Cfg >::BUser

Definition at line 108 of file axi4.h.

◆ RUser

template<typename Cfg >
typedef nvhls::UIntOrEmpty<RUSER_WIDTH>::T axi::axi4< Cfg >::RUser

Definition at line 109 of file axi4.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Cfg >
anonymous enum

Definition at line 68 of file axi4.h.


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