MatchLib
All Classes Namespaces Files Functions Modules Pages
Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | List of all members
AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans > Class Template Reference

An AXI manager that converts from a simple request/response interface to AXI with reordering support. More...

#include <AxiManagerGate.h>

Inheritance diagram for AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >:

Public Member Functions

 SC_CTOR (AxiManagerGate)
 

Public Attributes

axi4_::read::template manager if_rd
 
axi4_::write::template manager if_wr
 
sc_in< bool > reset_bar
 
sc_in< bool > clk
 
Connections::In< WrRequest< Cfg > > wrRequestIn
 
Connections::Out< WrResp< Cfg > > wrRespOut
 
Connections::In< RdRequest< Cfg > > rdRequestIn
 
Connections::Out< RdResp< Cfg > > rdRespOut
 

Static Public Attributes

static const int kDebugLevel = 2
 

Protected Types

typedef sc_uint< axi4_::ID_WIDTH > Id
 

Protected Member Functions

void run_wr ()
 
void run_rd ()
 

Detailed Description

template<typename Cfg, int ROBDepth = 8, int MaxInFlightTrans = 4>
class AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >

An AXI manager that converts from a simple request/response interface to AXI with reordering support.

Template Parameters
CfgA valid AXI config.
ROBDepthThe depth of the reorder buffers.
MaxInFlightTransThe number of independent AXI requests that can be in flight simultaneously.
Overview
This block takes as inputs RdRequest and WrRequest Connections. The block converts the requests into AXI format, sends them to AXI manager ports, and processes the responses into RdResponse and WrResponse ports. ReorderBuf and ReorderBufWBeats are used to allow reordering via use of the AXI ID field.
Usage Guidelines

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:

directive set /path/to/AxiManagerGate/run_rd/while -PIPELINE_STALL_MODE stall
An AXI manager that converts from a simple request/response interface to AXI with reordering support.

This may reduce area/power.

Definition at line 60 of file AxiManagerGate.h.

Member Typedef Documentation

◆ Id

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
typedef sc_uint<axi4_::ID_WIDTH> AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::Id
protected

Definition at line 98 of file AxiManagerGate.h.

Member Function Documentation

◆ SC_CTOR()

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::SC_CTOR ( AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >  )
inline

Definition at line 86 of file AxiManagerGate.h.

◆ run_wr()

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
void AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::run_wr ( )
inlineprotected

Definition at line 100 of file AxiManagerGate.h.

◆ run_rd()

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
void AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::run_rd ( )
inlineprotected

Definition at line 242 of file AxiManagerGate.h.

Member Data Documentation

◆ kDebugLevel

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
const int AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::kDebugLevel = 2
static

Definition at line 75 of file AxiManagerGate.h.

◆ if_rd

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
axi4_::read::template manager AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::if_rd

Definition at line 76 of file AxiManagerGate.h.

◆ if_wr

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
axi4_::write::template manager AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::if_wr

Definition at line 77 of file AxiManagerGate.h.

◆ reset_bar

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
sc_in<bool> AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::reset_bar

Definition at line 79 of file AxiManagerGate.h.

◆ clk

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
sc_in<bool> AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::clk

Definition at line 80 of file AxiManagerGate.h.

◆ wrRequestIn

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
Connections::In<WrRequest<Cfg> > AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::wrRequestIn

Definition at line 81 of file AxiManagerGate.h.

◆ wrRespOut

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
Connections::Out<WrResp<Cfg> > AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::wrRespOut

Definition at line 82 of file AxiManagerGate.h.

◆ rdRequestIn

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
Connections::In<RdRequest<Cfg> > AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::rdRequestIn

Definition at line 83 of file AxiManagerGate.h.

◆ rdRespOut

template<typename Cfg , int ROBDepth = 8, int MaxInFlightTrans = 4>
Connections::Out<RdResp<Cfg> > AxiManagerGate< Cfg, ROBDepth, MaxInFlightTrans >::rdRespOut

Definition at line 84 of file AxiManagerGate.h.


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