scc  2022.4.0
SystemC components library
apb::pe::apb_initiator< BUSWIDTH, TYPES, N, POL > Class Template Reference

#include <apb_initiator.h>

Inheritance diagram for apb::pe::apb_initiator< BUSWIDTH, TYPES, N, POL >:
Collaboration diagram for apb::pe::apb_initiator< BUSWIDTH, TYPES, N, POL >:

Public Types

using base = apb_initiator_b
 
using payload_type = base::payload_type
 
using phase_type = base::phase_type
 
- Public Types inherited from apb::pe::apb_initiator_b
using payload_type = tlm::tlm_generic_payload
 
using phase_type = tlm::tlm_phase
 

Public Member Functions

 apb_initiator (const sc_core::sc_module_name &nm, tlm::tlm_initiator_socket< BUSWIDTH, TYPES, N, POL > &socket)
 the constructor More...
 
 apb_initiator (apb_initiator const &)=delete
 
 apb_initiator (apb_initiator &&)=delete
 
apb_initiatoroperator= (apb_initiator const &)=delete
 
apb_initiatoroperator= (apb_initiator &&)=delete
 
- Public Member Functions inherited from apb::pe::apb_initiator_b
 SC_HAS_PROCESS (apb_initiator_b)
 
tlm::tlm_sync_enum nb_transport_bw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) override
 
void invalidate_direct_mem_ptr (sc_dt::uint64 start_range, sc_dt::uint64 end_range) override
 
size_t get_transferwith_in_bytes () const
 
void transport (payload_type &trans, bool blocking)
 The forward transport function. It behaves blocking and is re-entrant. More...
 
 apb_initiator_b (sc_core::sc_module_name nm, sc_core::sc_port_b< tlm::tlm_fw_transport_if< tlm::tlm_base_protocol_types >> &port, size_t transfer_width, bool coherent)
 
 apb_initiator_b (apb_initiator_b const &)=delete
 
 apb_initiator_b (apb_initiator_b &&)=delete
 
apb_initiator_boperator= (apb_initiator_b const &)=delete
 
apb_initiator_boperator= (apb_initiator_b &&)=delete
 

Additional Inherited Members

- Public Attributes inherited from apb::pe::apb_initiator_b
sc_core::sc_in< bool > clk_i {"clk_i"}
 
- Protected Attributes inherited from apb::pe::apb_initiator_b
const size_t transfer_width_in_bytes
 
sc_core::sc_port_b< tlm::tlm_fw_transport_if< tlm::tlm_base_protocol_types > > & socket_fw
 
scc::peq< std::tuple< payload_type *, tlm::tlm_phase > > peq
 
scc::ordered_semaphore_t< 1 > chnl
 
sc_core::sc_event any_tx_finished
 
sc_core::sc_time clk_period {10, sc_core::SC_NS}
 

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 apb::pe::apb_initiator< BUSWIDTH, TYPES, N, POL >

the apb initiator socket protocol engine adapted to a particular initiator socket configuration

Definition at line 95 of file apb_initiator.h.

Constructor & Destructor Documentation

◆ apb_initiator()

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>
apb::pe::apb_initiator< BUSWIDTH, TYPES, N, POL >::apb_initiator ( const sc_core::sc_module_name &  nm,
tlm::tlm_initiator_socket< BUSWIDTH, TYPES, N, POL > &  socket 
)
inline

the constructor

Parameters
nmthe module name
socketreference to the initiator socket used to send and receive transactions

Definition at line 107 of file apb_initiator.h.


The documentation for this class was generated from the following file: