|
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.
|
|
template<typename DataType, unsigned int NumInputs, unsigned int NumOutputs, unsigned int LenInputBuffer, unsigned int LenOutputBuffer>
class ArbitratedCrossbar< DataType, NumInputs, NumOutputs, LenInputBuffer, LenOutputBuffer >
Crossbar with conflict arbitration and input queuing.
- Template Parameters
-
DataType | DataType if input and output |
NumInputs | Number of Inputs |
NumOutputs | Number of Outputs |
LenInputBuffer | Length of Input Buffer |
LenOutputBuffer | Length of Output Buffer |
- A Simple Example
#include <arbitrated_crossbar.h>
...
ArbitratedCrossbar<DataType, NumInputs, NumOutputs, InputQueueLen, OutputQueueLen> xbar;
xbar.reset();
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];
...
xbar.run(bank_req, bank_sel, bank_req_valid, bank_req_winner,
bank_req_winner_valid, input_ready, source);
...
Definition at line 66 of file arbitrated_crossbar.h.