Configurable FIFO class. More...
#include <fifo.h>
Public Member Functions | |
typedef | NVUINTW (BankSelWidth) BankIdx |
typedef | NVUINTW (AddrWidth) FifoIdx |
typedef | NVUINTW (AddrWidth+1) FifoIdxPlusOne |
FifoIdx | ModIncr (FifoIdx curr_idx) |
void | push (DataType wr_data, BankIdx bidx=0) |
DataType | pop (BankIdx bidx=0) |
void | incrHead (BankIdx bidx=0) |
DataType | peek (BankIdx bidx=0) |
bool | isEmpty (BankIdx bidx=0) |
bool | isFull (BankIdx bidx=0) |
FifoIdxPlusOne | NumFilled (BankIdx bidx=0) |
FifoIdxPlusOne | NumAvailable (BankIdx bidx=0) |
void | reset () |
FifoIdx | get_head (BankIdx bidx=0) |
FifoIdx | get_tail (BankIdx bidx=0) |
template<unsigned int Size> | |
void | Marshall (Marshaller< Size > &m) |
Public Attributes | |
FifoIdx | head [NumBanks] |
FifoIdx | tail [NumBanks] |
mem_array_sep< DataType, FifoLen *NumBanks, NumBanks > | fifo_body |
bool | last_action_was_push [NumBanks] |
Static Public Attributes | |
static const int | BankSelWidth |
static const int | AddrWidth |
static const int | width = mem_array_sep<DataType, FifoLen * NumBanks, NumBanks>::width + 2 * NumBanks * AddrWidth + NumBanks |
Configurable FIFO class.
DataType | DataType of entry in FIFO |
FifoLen | Length of FIFO |
NumBanks | Number of FIFO banks |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
|
static |
FifoIdx FIFO< DataType, FifoLen, NumBanks >::head[NumBanks] |
FifoIdx FIFO< DataType, FifoLen, NumBanks >::tail[NumBanks] |
mem_array_sep<DataType, FifoLen * NumBanks, NumBanks> FIFO< DataType, FifoLen, NumBanks >::fifo_body |
bool FIFO< DataType, FifoLen, NumBanks >::last_action_was_push[NumBanks] |
|
static |