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

#include <ahb_initiator.h>

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

Public Types

using base = ahb_initiator_b
using payload_type = base::payload_type
using phase_type = base::phase_type
Public Types inherited from ahb::pe::ahb_initiator_b
using payload_type = tlm::tlm_generic_payload
using phase_type = tlm::tlm_phase

Public Member Functions

 ahb3_initiator (const sc_core::sc_module_name &nm, tlm::tlm_initiator_socket< BUSWIDTH, TYPES, N, POL > &socket)
 the constructor
 ahb3_initiator (ahb3_initiator const &)=delete
 ahb3_initiator (ahb3_initiator &&)=delete
ahb3_initiatoroperator= (ahb3_initiator const &)=delete
ahb3_initiatoroperator= (ahb3_initiator &&)=delete
Public Member Functions inherited from ahb::pe::ahb_initiator_b
 SC_HAS_PROCESS (ahb_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.
 ahb_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)
 ahb_initiator_b (ahb_initiator_b const &)=delete
 ahb_initiator_b (ahb_initiator_b &&)=delete
ahb_initiator_b & operator= (ahb_initiator_b const &)=delete
ahb_initiator_b & operator= (ahb_initiator_b &&)=delete
void snoop_resp (payload_type &trans, bool sync=false)

Additional Inherited Members

Public Attributes inherited from ahb::pe::ahb_initiator_b
sc_core::sc_in< bool > clk_i {"clk_i"}
sc_core::sc_attribute< unsigned > artv {"artv", 0}
 Read address valid to next read address valid.
sc_core::sc_attribute< unsigned > awtv {"awtv", 0}
 Write address valid to next write address valid.
sc_core::sc_attribute< unsigned > wbv {"wbv", 0}
 Write data handshake to next beat valid.
sc_core::sc_attribute< unsigned > rbr {"rbr", 0}
 Read data valid to same beat ready.
sc_core::sc_attribute< unsigned > br {"br", 0}
 Write response valid to ready.
Protected Member Functions inherited from ahb::pe::ahb_initiator_b
unsigned calculate_beats (payload_type &p)
Protected Attributes inherited from ahb::pe::ahb_initiator_b
const size_t transfer_width_in_bytes
const bool coherent
sc_core::sc_port_b< tlm::tlm_fw_transport_if< tlm::tlm_base_protocol_types > > & socket_fw
std::unordered_map< payload_type *, tx_state * > tx_state_by_id
scc::ordered_semaphore_t< 1 > addr_chnl
scc::ordered_semaphore_t< 1 > data_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 ahb::pe::ahb3_initiator< BUSWIDTH, TYPES, N, POL >

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

Definition at line 129 of file ahb_initiator.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_initiator< BUSWIDTH, TYPES, N, POL >::base = ahb_initiator_b

Definition at line 131 of file ahb_initiator.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_initiator< BUSWIDTH, TYPES, N, POL >::payload_type = base::payload_type

Definition at line 133 of file ahb_initiator.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_initiator< BUSWIDTH, TYPES, N, POL >::phase_type = base::phase_type

Definition at line 134 of file ahb_initiator.h.

Constructor & Destructor Documentation

◆ ahb3_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>
ahb::pe::ahb3_initiator< BUSWIDTH, TYPES, N, POL >::ahb3_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 141 of file ahb_initiator.h.


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