|
| rate_limiting_buffer (const sc_core::sc_module_name &nm, cci::cci_param< int > &rd_resp_delay, cci::cci_param< int > &wr_resp_delay) |
|
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"} |
|
cci::cci_param< int > & | rd_resp_delay |
| the latency between request and response phase. Will be overwritten by the return of the callback function (if registered) -> RIV
|
|
cci::cci_param< int > & | wr_resp_delay |
| the latency between request and response phase. Will be overwritten by the return of the callback function (if registered) -> BV
|
|
cci::cci_param< double > | rd_bw_limit_byte_per_sec {"rd_bw_limit_byte_per_sec", -1.0} |
| the bandwidth limit for read accesses. A value of -1 disables the limiting
|
|
cci::cci_param< double > | wr_bw_limit_byte_per_sec {"wr_bw_limit_byte_per_sec", -1.0} |
| the bandwidth limit for write accesses. A value of -1 disables the limiting
|
|
cci::cci_param< double > | total_bw_limit_byte_per_sec {"total_bw_limit_byte_per_sec", -1.0} |
| the bandwidth limit for read accesses. A value of -1 disables the limiting
|
|
|
void | end_of_elaboration () override |
|
void | start_of_simulation () override |
|
void | process_req2resp_fifos () |
|
void | start_rd_resp_thread () |
|
void | start_wr_resp_thread () |
|
|
sc_core::sc_clock * | clk_if {nullptr} |
|
sc_core::sc_time | time_per_byte_rd |
|
sc_core::sc_time | time_per_byte_wr |
|
sc_core::sc_time | time_per_byte_total |
|
scc::fifo_w_cb< std::tuple< tlm::tlm_generic_payload *, unsigned > > | rd_req2resp_fifo {"rd_req2resp_fifo"} |
| queues realizing the min latency
|
|
scc::fifo_w_cb< std::tuple< tlm::tlm_generic_payload *, unsigned > > | wr_req2resp_fifo {"wr_req2resp_fifo"} |
|
scc::fifo_w_cb< tlm::tlm_generic_payload * > | rd_resp_fifo {"rd_resp_fifo"} |
| queues to handle bandwidth limit
|
|
scc::fifo_w_cb< tlm::tlm_generic_payload * > | wr_resp_fifo {"wr_resp_fifo"} |
|
scc::ordered_semaphore | total_arb {1} |
|
double | total_residual_clocks {0.0} |
|
Definition at line 27 of file ordered_target.h.
◆ snoop_resp()
void axi::pe::rate_limiting_buffer::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 74 of file ordered_target.h.
◆ transport()
void axi::pe::rate_limiting_buffer::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 41 of file ordered_target.cpp.
The documentation for this class was generated from the following files: