|
|
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 88 of file arbitrated_crossbar.h.