|  | 
|  | 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: