MatchLib
|
Crossbar with conflict arbitration and input queuing. More...
#include <arbitrated_crossbar.h>
Public Member Functions | |
typedef | NVUINTW (log2_inputs) InputIdx |
typedef | NVUINTW (log2_outputs) OutputIdx |
void | reset () |
bool | isInputEmpty (InputIdx index) |
bool | isOutputEmpty (OutputIdx index) |
bool | isInputFull (InputIdx index) |
bool | isOutputFull (OutputIdx index) |
void | push (DataType data, InputIdx src, OutputIdx dest) |
DataType | peek (OutputIdx index) |
DataType | pop (OutputIdx index) |
void | xbar (DataDest input_data[NumInputs], bool input_valid[NumInputs], bool input_consumed[NumInputs], DataType data_out[NumOutputs], bool valid_out[NumOutputs], bool output_ready[NumOutputs], InputIdx source[NumOutputs]) |
bool | isAllInputEmpty () |
bool | isAllOutputEmpty () |
bool | isAllInputReady () |
void | pop_all_lanes (bool valid_out[NumOutputs]) |
void | run (DataType data_in[NumInputs], OutputIdx dest_in[NumInputs], bool valid_in[NumInputs], DataType data_out[NumOutputs], bool valid_out[NumOutputs], bool ready[NumInputs], InputIdx source[NumOutputs]) |
Top-Level function for Arbitrated Crossbar. | |
void | run (DataType data_in[NumInputs], OutputIdx dest_in[NumInputs], bool valid_in[NumInputs], DataType data_out[NumOutputs], bool valid_out[NumOutputs], bool ready[NumInputs]) |
Top-Level function for Arbitrated Crossbar that does not return source. | |
Static Public Attributes | |
static const int | log2_inputs = nvhls::index_width<NumInputs>::val |
static const int | log2_outputs = nvhls::index_width<NumOutputs>::val |
Crossbar with conflict arbitration and input queuing.
DataType | DataType if input and output |
NumInputs | Number of Inputs |
NumOutputs | Number of Outputs |
LenInputBuffer | Length of Input Buffer |
LenOutputBuffer | Length of Output Buffer |
Definition at line 66 of file arbitrated_crossbar.h.