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

#include <axi_initiator.h>

Inheritance diagram for axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >:
Collaboration diagram for axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >:

Public Types

using base = axi_initiator_b
using payload_type = base::payload_type
using phase_type = base::phase_type
Public Types inherited from axi::pe::axi_initiator_b
using payload_type = axi::axi_protocol_types::tlm_payload_type
using phase_type = axi::axi_protocol_types::tlm_phase_type

Public Member Functions

 ace_lite_initiator (const sc_core::sc_module_name &nm, axi::axi_initiator_socket< BUSWIDTH, TYPES, N, POL > &socket_)
 the constructor
 ace_lite_initiator (ace_lite_initiator const &)=delete
 ace_lite_initiator (ace_lite_initiator &&)=delete
ace_lite_initiatoroperator= (ace_lite_initiator const &)=delete
ace_lite_initiatoroperator= (ace_lite_initiator &&)=delete
Public Member Functions inherited from axi::pe::axi_initiator_b
void b_snoop (payload_type &trans, sc_core::sc_time &t) override
 snoop access to a snooped master
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) override
 The forward transport function. It behaves blocking and is re-entrant.
void snoop_resp (payload_type &trans, bool sync=false) override
 triggers a non-blocking snoop response if the snoop callback does not do so.
 axi_initiator_b (sc_core::sc_module_name nm, sc_core::sc_port_b< axi::axi_fw_transport_if< axi_protocol_types > > &port, size_t transfer_width, flavor_e flavor)
 axi_initiator_b (axi_initiator_b const &)=delete
 axi_initiator_b (axi_initiator_b &&)=delete
axi_initiator_b & operator= (axi_initiator_b const &)=delete
axi_initiator_b & operator= (axi_initiator_b &&)=delete
void add_protocol_cb (axi::fsm::protocol_time_point_e e, std::function< void(payload_type &, bool)> cb)
 register a callback for a certain time point

Additional Inherited Members

Public Attributes inherited from axi::pe::axi_initiator_b
sc_core::sc_in< bool > clk_i {"clk_i"}
sc_core::sc_export< tlm::scc::pe::intor_fw_bfw_i {"fw_i"}
sc_core::sc_port< tlm::scc::pe::intor_bw_b, 1, sc_core::SC_ZERO_OR_MORE_BOUND > bw_o {"bw_o"}
cci::cci_param< bool > data_interleaving {"data_interleaving", false}
cci::cci_param< unsigned > artv {"artv", 1}
 Read address valid to next read address valid.
cci::cci_param< unsigned > awtv {"awtv", 1}
 Write address valid to next write address valid.
cci::cci_param< unsigned > wbv {"wbv", 1}
 Write data handshake to next beat valid.
cci::cci_param< unsigned > rbr {"rbr", 0}
 Read data valid to same beat ready.
cci::cci_param< unsigned > br {"br", 0}
 Write response valid to ready.
cci::cci_param< unsigned > rla {"rla", 1}
 Read last data handshake to acknowledge.
cci::cci_param< unsigned > ba {"ba", 1}
 Write response handshake to acknowledge.
cci::cci_param< bool > enable_id_serializing {"enable_id_serializing", false}
 Quirks enable.
cci::cci_param< unsigned > outstanding_snoops {"outstanding_snoops", 8}
 number of snoops which can be handled
Protected Member Functions inherited from axi::pe::axi_initiator_b
unsigned calculate_beats (payload_type &p)
void snoop_thread ()
Protected Attributes inherited from axi::pe::axi_initiator_b
const size_t transfer_width_in_bytes
const flavor_e flavor
sc_core::sc_port_b< axi::axi_fw_transport_if< axi_protocol_types > > & socket_fw
std::unordered_map< void *, tx_state * > tx_state_by_tx
std::unordered_map< unsigned, scc::ordered_semaphore * > id_mtx
tlm_utils::peq_with_get< payload_type > snp_peq {"snp_peq"}
std::unordered_map< void *, tx_state * > snp_state_by_id
scc::ordered_semaphore rd_chnl {1}
scc::ordered_semaphore wr_chnl {1}
scc::ordered_semaphore sresp_chnl {1}
sc_core::sc_event any_tx_finished
sc_core::sc_time clk_period {10, sc_core::SC_NS}
scc::sc_variable< unsigned > rd_waiting {"RdWaiting", 0}
scc::sc_variable< unsigned > wr_waiting {"WrWaiting", 0}
scc::sc_variable< unsigned > rd_outstanding {"RdOutstanding", 0}
scc::sc_variable< unsigned > wr_outstanding {"WrOutstanding", 0}

Detailed Description

template<unsigned int BUSWIDTH = 32, typename TYPES = axi::axi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
class axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >

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

Definition at line 223 of file axi_initiator.h.

Member Typedef Documentation

◆ base

template<unsigned int BUSWIDTH = 32, typename TYPES = axi::axi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >::base = axi_initiator_b

Definition at line 225 of file axi_initiator.h.

◆ payload_type

template<unsigned int BUSWIDTH = 32, typename TYPES = axi::axi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >::payload_type = base::payload_type

Definition at line 227 of file axi_initiator.h.

◆ phase_type

template<unsigned int BUSWIDTH = 32, typename TYPES = axi::axi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
using axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >::phase_type = base::phase_type

Definition at line 228 of file axi_initiator.h.

Constructor & Destructor Documentation

◆ ace_lite_initiator()

template<unsigned int BUSWIDTH = 32, typename TYPES = axi::axi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
axi::pe::ace_lite_initiator< BUSWIDTH, TYPES, N, POL >::ace_lite_initiator ( const sc_core::sc_module_name & nm,
axi::axi_initiator_socket< BUSWIDTH, TYPES, N, POL > & socket_ )
inline

the constructor

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

Definition at line 233 of file axi_initiator.h.


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