|
| tx_reorderer (const sc_core::sc_module_name &nm) |
|
void | transport (tlm::tlm_generic_payload &payload, bool lt_transport=false) override |
|
void | snoop_resp (tlm::tlm_generic_payload &payload, bool sync=false) override |
|
|
sc_core::sc_in< bool > | clk_i {"clk_i"} |
|
sc_core::sc_export< tlm::scc::pe::intor_fw_nb > | fw_i {"fw_i"} |
|
sc_core::sc_port< tlm::scc::pe::intor_bw_nb, 1, sc_core::SC_ZERO_OR_MORE_BOUND > | bw_o {"bw_o"} |
|
sc_core::sc_attribute< unsigned > | min_latency {"min_latency", 10} |
| the minimum time a transaction will stay in the target
|
|
sc_core::sc_attribute< unsigned > | max_latency {"max_latency", 100} |
| the maximum time a transaction is allwed to stay in the target
|
|
sc_core::sc_attribute< unsigned > | window_size {"window_size", 2} |
|
sc_core::sc_attribute< bool > | prioritize_by_latency {"prioritize_by_latency", false} |
|
sc_core::sc_attribute< bool > | prioritize_by_qos {"prioritize_by_qos", false} |
| use the QoS field for selection.
|
|
|
std::array< std::unordered_map< unsigned, std::deque< que_entry > >, 3 > | reorder_buffer |
|
Definition at line 25 of file reordering_target.h.
◆ snoop_resp()
void axi::pe::tx_reorderer::snoop_resp |
( |
tlm::tlm_generic_payload & |
payload, |
|
|
bool |
sync = false |
|
) |
| |
|
inlineoverridevirtual |
send a response to a backward transaction if not immediately answered
- Parameters
-
payload | object with (optional) extensions |
sync | if true send with next rising clock edge of the pe otherwise send it immediately |
Implements tlm::scc::pe::intor_fw< type::NB >.
Definition at line 59 of file reordering_target.h.
◆ transport()
void axi::pe::tx_reorderer::transport |
( |
tlm::tlm_generic_payload & |
payload, |
|
|
bool |
lt_transport = false |
|
) |
| |
|
overridevirtual |
execute the transport of the payload. Independent of the underlying layer this function is blocking
- Parameters
-
payload | object with (optional) extensions |
lt_transport | use b_transport instead of nb_transport* |
Implements tlm::scc::pe::intor_fw< type::NB >.
Definition at line 31 of file reordering_target.cpp.
◆ prioritize_by_latency
sc_core::sc_attribute<bool> axi::pe::tx_reorderer::prioritize_by_latency {"prioritize_by_latency", false} |
use the waiting time as priority value - the longer a transaction waits the higher the probability becomes to be selected
Definition at line 41 of file reordering_target.h.
◆ window_size
sc_core::sc_attribute<unsigned> axi::pe::tx_reorderer::window_size {"window_size", 2} |
minimum number of transaction to start with reordering. If the total number is below the threshold transaction will stay for max_latency
Definition at line 38 of file reordering_target.h.
The documentation for this class was generated from the following files: