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

Public Member Functions

 replay_buffer (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
void end_of_reset ()

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"}
cci::cci_param< std::string > replay_file_name {"replay_file_name", ""}

Protected Types

using entry_t = std::tuple<uint64_t, unsigned>

Protected Member Functions

void end_of_elaboration () override
void start_of_simulation () override
void process_req2resp_fifos ()
void start_rd_resp_thread ()
void start_wr_resp_thread ()

Protected Attributes

sc_core::sc_clock * clk_if {nullptr}
uint64_t reset_end_cycle {0}
std::vector< std::vector< entry_t > > rd_sequence
std::vector< std::vector< entry_t > > wr_sequence
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 latencies
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}

Detailed Description

Definition at line 27 of file replay_target.h.

Member Typedef Documentation

◆ entry_t

using axi::pe::replay_buffer::entry_t = std::tuple<uint64_t, unsigned>
protected

Definition at line 58 of file replay_target.h.

Constructor & Destructor Documentation

◆ replay_buffer()

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

Definition at line 10 of file replay_target.cpp.

Member Function Documentation

◆ end_of_elaboration()

void axi::pe::replay_buffer::end_of_elaboration ( )
overrideprotected

Definition at line 23 of file replay_target.cpp.

◆ end_of_reset()

void axi::pe::replay_buffer::end_of_reset ( )
inline

Definition at line 53 of file replay_target.h.

◆ process_req2resp_fifos()

void axi::pe::replay_buffer::process_req2resp_fifos ( )
protected

Definition at line 87 of file replay_target.cpp.

◆ snoop_resp()

void axi::pe::replay_buffer::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 51 of file replay_target.h.

◆ start_of_simulation()

void axi::pe::replay_buffer::start_of_simulation ( )
overrideprotected

Definition at line 25 of file replay_target.cpp.

◆ start_rd_resp_thread()

void axi::pe::replay_buffer::start_rd_resp_thread ( )
protected

Definition at line 110 of file replay_target.cpp.

◆ start_wr_resp_thread()

void axi::pe::replay_buffer::start_wr_resp_thread ( )
protected

Definition at line 139 of file replay_target.cpp.

◆ transport()

void axi::pe::replay_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
payloadobject with (optional) extensions
lt_transportuse b_transport instead of nb_transport*

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

Definition at line 52 of file replay_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::replay_buffer::bw_o {"bw_o"}

Definition at line 33 of file replay_target.h.

◆ clk_i

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

Definition at line 29 of file replay_target.h.

◆ clk_if

sc_core::sc_clock* axi::pe::replay_buffer::clk_if {nullptr}
protected

Definition at line 56 of file replay_target.h.

◆ fw_i

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

Definition at line 31 of file replay_target.h.

◆ rd_req2resp_fifo

scc::fifo_w_cb<std::tuple<tlm::tlm_generic_payload*, unsigned> > axi::pe::replay_buffer::rd_req2resp_fifo {"rd_req2resp_fifo"}
protected

queues realizing the latencies

Definition at line 62 of file replay_target.h.

◆ rd_resp_fifo

scc::fifo_w_cb<tlm::tlm_generic_payload*> axi::pe::replay_buffer::rd_resp_fifo {"rd_resp_fifo"}
protected

queues to handle bandwidth limit

Definition at line 65 of file replay_target.h.

◆ rd_sequence

std::vector<std::vector<entry_t> > axi::pe::replay_buffer::rd_sequence
protected

Definition at line 59 of file replay_target.h.

◆ replay_file_name

cci::cci_param<std::string> axi::pe::replay_buffer::replay_file_name {"replay_file_name", ""}

Definition at line 35 of file replay_target.h.

◆ reset_end_cycle

uint64_t axi::pe::replay_buffer::reset_end_cycle {0}
protected

Definition at line 57 of file replay_target.h.

◆ time_per_byte_rd

sc_core::sc_time axi::pe::replay_buffer::time_per_byte_rd
protected

Definition at line 60 of file replay_target.h.

◆ time_per_byte_total

sc_core::sc_time axi::pe::replay_buffer::time_per_byte_total
protected

Definition at line 60 of file replay_target.h.

◆ time_per_byte_wr

sc_core::sc_time axi::pe::replay_buffer::time_per_byte_wr
protected

Definition at line 60 of file replay_target.h.

◆ total_arb

scc::ordered_semaphore axi::pe::replay_buffer::total_arb {1}
protected

Definition at line 67 of file replay_target.h.

◆ total_residual_clocks

double axi::pe::replay_buffer::total_residual_clocks {0.0}
protected

Definition at line 68 of file replay_target.h.

◆ wr_req2resp_fifo

scc::fifo_w_cb<std::tuple<tlm::tlm_generic_payload*, unsigned> > axi::pe::replay_buffer::wr_req2resp_fifo {"wr_req2resp_fifo"}
protected

Definition at line 63 of file replay_target.h.

◆ wr_resp_fifo

scc::fifo_w_cb<tlm::tlm_generic_payload*> axi::pe::replay_buffer::wr_resp_fifo {"wr_resp_fifo"}
protected

Definition at line 66 of file replay_target.h.

◆ wr_sequence

std::vector<std::vector<entry_t> > axi::pe::replay_buffer::wr_sequence
protected

Definition at line 59 of file replay_target.h.


The documentation for this class was generated from the following files:
  • /home/eyck/Projects/MINRES/SystemC-Components/third_party/axi_chi/axi/pe/replay_target.h
  • /home/eyck/Projects/MINRES/SystemC-Components/third_party/axi_chi/axi/pe/replay_target.cpp