31class apb_target_b :
public sc_core::sc_module,
public tlm::tlm_fw_transport_if<tlm::tlm_base_protocol_types> {
33#if SYSTEMC_VERSION < 20250221
36 using payload_type = tlm::tlm_base_protocol_types::tlm_payload_type;
37 using phase_type = tlm::tlm_base_protocol_types::tlm_phase_type;
39 sc_core::sc_in<bool> clk_i{
"clk_i"};
41 void b_transport(payload_type& trans, sc_core::sc_time& t)
override;
43 tlm::tlm_sync_enum nb_transport_fw(payload_type& trans, phase_type& phase, sc_core::sc_time& t)
override;
45 bool get_direct_mem_ptr(payload_type& trans, tlm::tlm_dmi& dmi_data)
override;
47 unsigned int transport_dbg(payload_type& trans)
override;
58 void set_operation_cb(std::function<
unsigned(payload_type& trans)> cb) { operation_cb = cb; }
69 sc_core::sc_port_b<tlm::tlm_bw_transport_if<tlm::tlm_base_protocol_types>>& port,
size_t transfer_width);
81 tlm::tlm_generic_payload* active_tx{
nullptr};
83 sc_core::sc_port_b<tlm::tlm_bw_transport_if<tlm::tlm_base_protocol_types>>& socket_bw;
84 std::function<unsigned(payload_type& trans)> operation_cb;
85 sc_core::sc_clock* clk_if{
nullptr};
86 void end_of_elaboration()
override;
87 sc_core::sc_process_handle mhndl;
98 using payload_type = base::payload_type;
99 using phase_type = base::phase_type;
104 apb_target(tlm::tlm_target_socket<BUSWIDTH, TYPES, N, POL>& socket)
106 apb_target(sc_core::sc_gen_unique_name(
"simple_target"), socket) {}
108 apb_target(
const sc_core::sc_module_name& nm, tlm::tlm_target_socket<BUSWIDTH, TYPES, N, POL>& socket)
125 tlm::tlm_target_socket<BUSWIDTH, TYPES, N, POL>& socket;