MatchLib
All Classes Namespaces Files Functions Modules Pages
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | List of all members
AxiSubordinateToReadyValid< axiCfg, rvCfg > Class Template Reference

An AXI subordinate that converts AXI requests into a simplified format. More...

#include <AxiSubordinateToReadyValid.h>

Inheritance diagram for AxiSubordinateToReadyValid< axiCfg, rvCfg >:

Public Types

enum  { rvDataW = rvCfg::dataWidth , rvAddrW = rvCfg::addrWidth , rvWstrbW = rvCfg::wstrbWidth }
 
typedef axi::axi4< axiCfg > axi4_
 
typedef RVSink< rvCfg >::Read Read
 
typedef RVSink< rvCfg >::Write Write
 
typedef RVSink< rvCfg >::Addr rvAddr
 

Public Member Functions

 SC_CTOR (AxiSubordinateToReadyValid)
 

Public Attributes

axi4_::read::template subordinate if_axi_rd
 
axi4_::write::template subordinate if_axi_wr
 
sc_in< bool > reset_bar
 
sc_in< bool > clk
 
Connections::In< Read > if_rv_rd
 
Connections::Out< Write > if_rv_wr
 

Static Public Attributes

static const int kDebugLevel = 5
 

Protected Member Functions

void run ()
 

Detailed Description

template<typename axiCfg, typename rvCfg>
class AxiSubordinateToReadyValid< axiCfg, rvCfg >

An AXI subordinate that converts AXI requests into a simplified format.

Template Parameters
axiCfgA valid AXI config.
rvCfgA config for the ready-valid interface that is the output of the subordinate. The data and strobe fields are assumed to match the widths of their AXI counterparts.
Overview
This block converts AXI read and write requests into a simplified format consisting of a single ready-valid interface that has address, data, and write strobe fields, as well as a read/write indicator. Read responses are returned to the block via a second ready-valid interface (there are no write responses expected). AxiSubordinateToReadyValid handles all of the AXI-specific protocol, generating write responses and packing/unpacking bursts as necessary.
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/AxiSubordinateToReadyValid/run/while -PIPELINE_STALL_MODE stall
An AXI subordinate that converts AXI requests into a simplified format.

This may reduce area/power.

Definition at line 55 of file AxiSubordinateToReadyValid.h.

Member Typedef Documentation

◆ axi4_

template<typename axiCfg , typename rvCfg >
typedef axi::axi4<axiCfg> AxiSubordinateToReadyValid< axiCfg, rvCfg >::axi4_

Definition at line 59 of file AxiSubordinateToReadyValid.h.

◆ Read

template<typename axiCfg , typename rvCfg >
typedef RVSink<rvCfg>::Read AxiSubordinateToReadyValid< axiCfg, rvCfg >::Read

Definition at line 73 of file AxiSubordinateToReadyValid.h.

◆ Write

template<typename axiCfg , typename rvCfg >
typedef RVSink<rvCfg>::Write AxiSubordinateToReadyValid< axiCfg, rvCfg >::Write

Definition at line 74 of file AxiSubordinateToReadyValid.h.

◆ rvAddr

template<typename axiCfg , typename rvCfg >
typedef RVSink<rvCfg>::Addr AxiSubordinateToReadyValid< axiCfg, rvCfg >::rvAddr

Definition at line 75 of file AxiSubordinateToReadyValid.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename axiCfg , typename rvCfg >
anonymous enum

Definition at line 67 of file AxiSubordinateToReadyValid.h.

Member Function Documentation

◆ SC_CTOR()

template<typename axiCfg , typename rvCfg >
AxiSubordinateToReadyValid< axiCfg, rvCfg >::SC_CTOR ( AxiSubordinateToReadyValid< axiCfg, rvCfg >  )
inline

Definition at line 81 of file AxiSubordinateToReadyValid.h.

◆ run()

template<typename axiCfg , typename rvCfg >
void AxiSubordinateToReadyValid< axiCfg, rvCfg >::run ( )
inlineprotected

Definition at line 94 of file AxiSubordinateToReadyValid.h.

Member Data Documentation

◆ kDebugLevel

template<typename axiCfg , typename rvCfg >
const int AxiSubordinateToReadyValid< axiCfg, rvCfg >::kDebugLevel = 5
static

Definition at line 57 of file AxiSubordinateToReadyValid.h.

◆ if_axi_rd

template<typename axiCfg , typename rvCfg >
axi4_::read::template subordinate AxiSubordinateToReadyValid< axiCfg, rvCfg >::if_axi_rd

Definition at line 61 of file AxiSubordinateToReadyValid.h.

◆ if_axi_wr

template<typename axiCfg , typename rvCfg >
axi4_::write::template subordinate AxiSubordinateToReadyValid< axiCfg, rvCfg >::if_axi_wr

Definition at line 62 of file AxiSubordinateToReadyValid.h.

◆ reset_bar

template<typename axiCfg , typename rvCfg >
sc_in<bool> AxiSubordinateToReadyValid< axiCfg, rvCfg >::reset_bar

Definition at line 64 of file AxiSubordinateToReadyValid.h.

◆ clk

template<typename axiCfg , typename rvCfg >
sc_in<bool> AxiSubordinateToReadyValid< axiCfg, rvCfg >::clk

Definition at line 65 of file AxiSubordinateToReadyValid.h.

◆ if_rv_rd

template<typename axiCfg , typename rvCfg >
Connections::In<Read> AxiSubordinateToReadyValid< axiCfg, rvCfg >::if_rv_rd

Definition at line 77 of file AxiSubordinateToReadyValid.h.

◆ if_rv_wr

template<typename axiCfg , typename rvCfg >
Connections::Out<Write> AxiSubordinateToReadyValid< axiCfg, rvCfg >::if_rv_wr

Definition at line 78 of file AxiSubordinateToReadyValid.h.


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