scc 2025.09
SystemC components library
axi::pe::tx_reorderer Class Reference
Inheritance diagram for axi::pe::tx_reorderer:
Collaboration diagram for axi::pe::tx_reorderer:

Classes

struct  que_entry

Public Member Functions

 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

Public Attributes

sc_core::sc_in< bool > clk_i {"clk_i"}
sc_core::sc_export< tlm::scc::pe::intor_fw_nbfw_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.

Protected Member Functions

void clock_cb ()

Protected Attributes

std::array< std::unordered_map< unsigned, std::deque< que_entry > >, 3 > reorder_buffer

Detailed Description

Definition at line 25 of file reordering_target.h.

Constructor & Destructor Documentation

◆ tx_reorderer()

axi::pe::tx_reorderer::tx_reorderer ( const sc_core::sc_module_name & nm)

Definition at line 19 of file reordering_target.cpp.

Member Function Documentation

◆ clock_cb()

void axi::pe::tx_reorderer::clock_cb ( )
protected

Definition at line 42 of file reordering_target.cpp.

◆ 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
payloadobject with (optional) extensions
syncif 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
payloadobject with (optional) extensions
lt_transportuse b_transport instead of nb_transport*

Implements tlm::scc::pe::intor_fw< type::NB >.

Definition at line 34 of file reordering_target.cpp.

Member Data Documentation

◆ bw_o

sc_core::sc_port<tlm::scc::pe::intor_bw_nb, 1, sc_core::SC_ZERO_OR_MORE_BOUND> axi::pe::tx_reorderer::bw_o {"bw_o"}

Definition at line 31 of file reordering_target.h.

◆ clk_i

sc_core::sc_in<bool> axi::pe::tx_reorderer::clk_i {"clk_i"}

Definition at line 27 of file reordering_target.h.

◆ fw_i

sc_core::sc_export<tlm::scc::pe::intor_fw_nb> axi::pe::tx_reorderer::fw_i {"fw_i"}

Definition at line 29 of file reordering_target.h.

◆ max_latency

sc_core::sc_attribute<unsigned> axi::pe::tx_reorderer::max_latency {"max_latency", 100}

the maximum time a transaction is allwed to stay in the target

Definition at line 35 of file reordering_target.h.

◆ min_latency

sc_core::sc_attribute<unsigned> axi::pe::tx_reorderer::min_latency {"min_latency", 10}

the minimum time a transaction will stay in the target

Definition at line 33 of file reordering_target.h.

◆ 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.

◆ prioritize_by_qos

sc_core::sc_attribute<bool> axi::pe::tx_reorderer::prioritize_by_qos {"prioritize_by_qos", false}

use the QoS field for selection.

Definition at line 43 of file reordering_target.h.

◆ reorder_buffer

std::array<std::unordered_map<unsigned , std::deque<que_entry> >, 3> axi::pe::tx_reorderer::reorder_buffer
protected

Definition at line 67 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: