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
AxiSubordinateToMem< axiCfg, capacity, fifoDepth > Class Template Reference

An AXI subordinate SRAM. More...

#include <AxiSubordinateToMem.h>

Inheritance diagram for AxiSubordinateToMem< axiCfg, capacity, fifoDepth >:

Public Types

typedef axi::axi4< axiCfg > axi4_
 

Public Member Functions

 SC_CTOR (AxiSubordinateToMem)
 

Public Attributes

axi4_::read::template subordinate if_rd
 
axi4_::write::template subordinate if_wr
 
sc_in< bool > reset_bar
 
sc_in< bool > clk
 
FIFO< typename axi4_::ReadPayload, fifoDepth > rd_resp
 
FIFO< typename axi4_::AddrPayload, fifoDepth > wr_addr
 
FIFO< typename axi4_::AddrPayload, fifoDepth > rd_addr
 
FIFO< typename axi4_::WRespPayload, fifoDepth > wr_resp
 

Static Public Attributes

static const int kDebugLevel = 2
 
static const int bytesPerWord = axiCfg::dataWidth >> 3
 

Protected Member Functions

void run ()
 

Detailed Description

template<typename axiCfg, int capacity, int fifoDepth = 8>
class AxiSubordinateToMem< axiCfg, capacity, fifoDepth >

An AXI subordinate SRAM.

Template Parameters
axiCfgA valid AXI config.
capacityThe capacity in bytes of the local SRAM.
fifoDepthDepth of the input and output FIFO queues.
Overview
AxiSubordinateToMem is an AXI subordinate with an internal dual-ported memory used for storage. The module only handles AXI addresses within the range of its internal memory, with a base address of 0. It does not support write strobes. It has internal queues to handle multiple simultaneous requests in flight, and can handle read and write requests independently, but it does not reorder requests.
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/AxiSubordinateToMem/run/while -PIPELINE_STALL_MODE stall
An AXI subordinate SRAM.

This may reduce area/power.

Definition at line 57 of file AxiSubordinateToMem.h.

Member Typedef Documentation

◆ axi4_

template<typename axiCfg , int capacity, int fifoDepth = 8>
typedef axi::axi4<axiCfg> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::axi4_

Definition at line 70 of file AxiSubordinateToMem.h.

Member Function Documentation

◆ SC_CTOR()

template<typename axiCfg , int capacity, int fifoDepth = 8>
AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::SC_CTOR ( AxiSubordinateToMem< axiCfg, capacity, fifoDepth >  )
inline

Definition at line 84 of file AxiSubordinateToMem.h.

◆ run()

template<typename axiCfg , int capacity, int fifoDepth = 8>
void AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::run ( )
inlineprotected

Definition at line 92 of file AxiSubordinateToMem.h.

Member Data Documentation

◆ kDebugLevel

template<typename axiCfg , int capacity, int fifoDepth = 8>
const int AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::kDebugLevel = 2
static

Definition at line 68 of file AxiSubordinateToMem.h.

◆ bytesPerWord

template<typename axiCfg , int capacity, int fifoDepth = 8>
const int AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::bytesPerWord = axiCfg::dataWidth >> 3
static

Definition at line 71 of file AxiSubordinateToMem.h.

◆ if_rd

template<typename axiCfg , int capacity, int fifoDepth = 8>
axi4_::read::template subordinate AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::if_rd

Definition at line 73 of file AxiSubordinateToMem.h.

◆ if_wr

template<typename axiCfg , int capacity, int fifoDepth = 8>
axi4_::write::template subordinate AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::if_wr

Definition at line 74 of file AxiSubordinateToMem.h.

◆ reset_bar

template<typename axiCfg , int capacity, int fifoDepth = 8>
sc_in<bool> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::reset_bar

Definition at line 76 of file AxiSubordinateToMem.h.

◆ clk

template<typename axiCfg , int capacity, int fifoDepth = 8>
sc_in<bool> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::clk

Definition at line 77 of file AxiSubordinateToMem.h.

◆ rd_resp

template<typename axiCfg , int capacity, int fifoDepth = 8>
FIFO<typename axi4_::ReadPayload, fifoDepth> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::rd_resp

Definition at line 79 of file AxiSubordinateToMem.h.

◆ wr_addr

template<typename axiCfg , int capacity, int fifoDepth = 8>
FIFO<typename axi4_::AddrPayload, fifoDepth> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::wr_addr

Definition at line 80 of file AxiSubordinateToMem.h.

◆ rd_addr

template<typename axiCfg , int capacity, int fifoDepth = 8>
FIFO<typename axi4_::AddrPayload, fifoDepth> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::rd_addr

Definition at line 81 of file AxiSubordinateToMem.h.

◆ wr_resp

template<typename axiCfg , int capacity, int fifoDepth = 8>
FIFO<typename axi4_::WRespPayload, fifoDepth> AxiSubordinateToMem< axiCfg, capacity, fifoDepth >::wr_resp

Definition at line 82 of file AxiSubordinateToMem.h.


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