Scratchpad Memories with arbitration and queuing. More...
#include <ArbitratedScratchpad.h>
Classes | |
struct | bank_req_t |
struct | bank_rsp_t |
Public Types | |
typedef cli_req_t< DataType, addr_width, NumInputs > | req_t |
typedef cli_rsp_t< DataType, NumInputs > | rsp_t |
Public Member Functions | |
typedef | NVUINTW (log2_nbanks) bank_sel_t |
typedef | NVUINTW (bank_addr_width) bank_addr_t |
typedef | NVUINTW (log2_inputs) input_sel_t |
void | compute_bank_request (req_t &curr_cli_req, bank_req_t bank_req[NumInputs], bank_sel_t bank_sel[NumInputs], bool bank_req_valid[NumInputs]) |
void | banks_load_store (bank_req_t bank_req[NumBanks], bool bank_req_valid[NumBanks], bank_rsp_t bank_rsp[NumBanks]) |
void | reset () |
void | load_store (bank_req_t bank_req[NumInputs], bank_sel_t bank_sel[NumInputs], bool bank_req_valid[NumInputs], rsp_t &load_rsp, bool input_ready[NumInputs]) |
Public Attributes | |
mem_array_sep< DataType, CapacityInBytes, NumBanks > | banks |
bank_req_t | bank_reqs [NumInputs] |
bank_rsp_t | bank_rsps [NumInputs] |
ArbitratedCrossbar< bank_req_t, NumInputs, NumBanks, InputQueueLen, 0 > | request_xbar |
Static Public Attributes | |
static const int | kDebugLevel = 2 |
static const int | addr_width = nvhls::nbits<CapacityInBytes - 1>::val |
static const int | log2_nbanks = (NumBanks == 1) ? 1 : nvhls::nbits<NumBanks - 1>::val |
static const int | log2_inputs = (NumInputs == 1) ? 1 : nvhls::nbits<NumInputs - 1>::val |
static const bool | is_nbanks_power_of_2 = (NumBanks & (NumBanks - 1)) == 0 |
static const int | bank_addr_width = (is_nbanks_power_of_2 && (NumBanks > 1)) ? (addr_width - log2_nbanks) : (addr_width - log2_nbanks + 1) |
Scratchpad Memories with arbitration and queuing.
DataType | DataType if input and output |
CapacityInBytes | Capacity of scratchpad |
NumInputs | Number of Inputs |
NumBanks | Number of Banks |
LenInputBuffer | Length of Input Buffer |
LenOutputBuffer | Length of Output Buffer |
Definition at line 58 of file ArbitratedScratchpad.h.
typedef cli_req_t<DataType, addr_width, NumInputs> ArbitratedScratchpad< DataType, CapacityInBytes, NumInputs, NumBanks, InputQueueLen >::req_t |
Definition at line 103 of file ArbitratedScratchpad.h.
typedef cli_rsp_t<DataType, NumInputs> ArbitratedScratchpad< DataType, CapacityInBytes, NumInputs, NumBanks, InputQueueLen >::rsp_t |
Definition at line 104 of file ArbitratedScratchpad.h.
|
inline |
Definition at line 179 of file ArbitratedScratchpad.h.
|
inline |
Definition at line 114 of file ArbitratedScratchpad.h.
|
inline |
Definition at line 159 of file ArbitratedScratchpad.h.
|
inline |
Definition at line 181 of file ArbitratedScratchpad.h.
|
inline |
Definition at line 192 of file ArbitratedScratchpad.h.
|
static |
Definition at line 62 of file ArbitratedScratchpad.h.
|
static |
Definition at line 64 of file ArbitratedScratchpad.h.
|
static |
Definition at line 65 of file ArbitratedScratchpad.h.
|
static |
Definition at line 66 of file ArbitratedScratchpad.h.
|
static |
Definition at line 68 of file ArbitratedScratchpad.h.
|
static |
Definition at line 69 of file ArbitratedScratchpad.h.
mem_array_sep<DataType, CapacityInBytes, NumBanks> ArbitratedScratchpad< DataType, CapacityInBytes, NumInputs, NumBanks, InputQueueLen >::banks |
Definition at line 107 of file ArbitratedScratchpad.h.
bank_req_t ArbitratedScratchpad< DataType, CapacityInBytes, NumInputs, NumBanks, InputQueueLen >::bank_reqs[NumInputs] |
Definition at line 108 of file ArbitratedScratchpad.h.
bank_rsp_t ArbitratedScratchpad< DataType, CapacityInBytes, NumInputs, NumBanks, InputQueueLen >::bank_rsps[NumInputs] |
Definition at line 109 of file ArbitratedScratchpad.h.
ArbitratedCrossbar<bank_req_t, NumInputs, NumBanks, InputQueueLen, 0> ArbitratedScratchpad< DataType, CapacityInBytes, NumInputs, NumBanks, InputQueueLen >::request_xbar |
Definition at line 112 of file ArbitratedScratchpad.h.