scc 2025.09
SystemC components library
ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL > Class Template Reference

#include <ahb_target.h>

Inheritance diagram for ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >:
Collaboration diagram for ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >:

Public Types

using base = ahb_target_b
using payload_type = base::payload_type
using phase_type = base::phase_type
Public Types inherited from ahb::pe::ahb_target_b
using payload_type = tlm::tlm_base_protocol_types::tlm_payload_type
using phase_type = tlm::tlm_base_protocol_types::tlm_phase_type

Public Member Functions

 ahb3_target (tlm::tlm_target_socket< BUSWIDTH, TYPES, N, POL > &socket)
 the constructor
 ahb3_target (const sc_core::sc_module_name &nm, tlm::tlm_target_socket< BUSWIDTH, TYPES, N, POL > &socket)
 ahb3_target (ahb3_target const &)=delete
 ahb3_target (ahb3_target &&)=delete
ahb3_targetoperator= (ahb3_target const &)=delete
ahb3_targetoperator= (ahb3_target &&)=delete
Public Member Functions inherited from ahb::pe::ahb_target_b
 SC_HAS_PROCESS (ahb_target_b)
void b_transport (payload_type &trans, sc_core::sc_time &t) override
tlm::tlm_sync_enum nb_transport_fw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) override
bool get_direct_mem_ptr (payload_type &trans, tlm::tlm_dmi &dmi_data) override
unsigned int transport_dbg (payload_type &trans) override
void set_operation_cb (std::function< unsigned(payload_type &trans)> cb)
 Set the operation callback function.
void operation_resp (payload_type &trans, bool sync=false)

Additional Inherited Members

Public Attributes inherited from ahb::pe::ahb_target_b
sc_core::sc_in< bool > clk_i {"clk_i"}
sc_core::sc_attribute< unsigned > wr_data_accept_delay {"wr_data_accept_delay", 0}
 the latency between between BEGIN(_PARTIAL)_REQ and END(_PARTIAL)_REQ (AWVALID to AWREADY and WVALID to WREADY)
sc_core::sc_attribute< unsigned > rd_addr_accept_delay {"rd_addr_accept_delay", 0}
 the latency between between BEGIN_REQ and END_REQ (ARVALID to ARREADY)
sc_core::sc_attribute< unsigned > rd_data_beat_delay {"rd_data_beat_delay", 0}
 the latency between between END(_PARTIAL)_RESP and BEGIN(_PARTIAL)_RESP (RREADY to RVALID)
sc_core::sc_attribute< unsigned > rd_resp_delay {"rd_resp_delay", 0}
 the latency between request and response phase. Will be overwritten by the return of the callback function (if registered)
sc_core::sc_attribute< unsigned > wr_resp_delay {"wr_resp_delay", 0}
 the latency between request and response phase. Will be overwritten by the return of the callback function (if registered)
Protected Member Functions inherited from ahb::pe::ahb_target_b
 ahb_target_b (const sc_core::sc_module_name &nm, sc_core::sc_port_b< tlm::tlm_bw_transport_if< tlm::tlm_base_protocol_types > > &port, size_t transfer_width)
 ahb_target_b (ahb_target_b const &)=delete
 ahb_target_b (ahb_target_b &&)=delete
ahb_target_boperator= (ahb_target_b const &)=delete
ahb_target_boperator= (ahb_target_b &&)=delete
void send_resp_thread ()
void end_of_elaboration () override
Protected Attributes inherited from ahb::pe::ahb_target_b
sc_core::sc_port_b< tlm::tlm_bw_transport_if< tlm::tlm_base_protocol_types > > & socket_bw
sc_core::sc_semaphore sn_sem {1}
sc_core::sc_mutex wr
sc_core::sc_mutex rd
sc_core::sc_mutex sn
bool fast_resp {false}
bool fast_req {false}
std::function< unsigned(payload_type &trans)> operation_cb
scc::ordered_semaphore rd_resp {1}
scc::ordered_semaphore wr_resp {1}
sc_core::sc_clock * clk_if {nullptr}

Detailed Description

template<unsigned int BUSWIDTH = 32, typename TYPES = tlm::tlm_base_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
class ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >

the target socket protocol engine adapted to a particular target socket configuration

Definition at line 134 of file ahb_target.h.

Member Typedef Documentation

◆ base

template<unsigned int BUSWIDTH = 32, typename TYPES = tlm::tlm_base_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >::base = ahb_target_b

Definition at line 136 of file ahb_target.h.

◆ payload_type

template<unsigned int BUSWIDTH = 32, typename TYPES = tlm::tlm_base_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >::payload_type = base::payload_type

Definition at line 137 of file ahb_target.h.

◆ phase_type

template<unsigned int BUSWIDTH = 32, typename TYPES = tlm::tlm_base_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >::phase_type = base::phase_type

Definition at line 138 of file ahb_target.h.

Constructor & Destructor Documentation

◆ ahb3_target() [1/2]

template<unsigned int BUSWIDTH = 32, typename TYPES = tlm::tlm_base_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >::ahb3_target ( tlm::tlm_target_socket< BUSWIDTH, TYPES, N, POL > & socket)
inline

the constructor

Parameters
socketreference to the initiator socket used to send and receive transactions

Definition at line 143 of file ahb_target.h.

◆ ahb3_target() [2/2]

template<unsigned int BUSWIDTH = 32, typename TYPES = tlm::tlm_base_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
ahb::pe::ahb3_target< BUSWIDTH, TYPES, N, POL >::ahb3_target ( const sc_core::sc_module_name & nm,
tlm::tlm_target_socket< BUSWIDTH, TYPES, N, POL > & socket )
inline

Definition at line 147 of file ahb_target.h.


The documentation for this class was generated from the following file:
  • /home/eyck/Projects/MINRES/SystemC-Components/src/interfaces/ahb/pe/ahb_target.h