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

#include <chi_rn_initiator.h>

Inheritance diagram for chi::pe::chi_rn_initiator< BUSWIDTH, TYPES, N, POL >:
Collaboration diagram for chi::pe::chi_rn_initiator< BUSWIDTH, TYPES, N, POL >:

Public Types

using base = chi_rn_initiator_b
 
using payload_type = base::payload_type
 
using phase_type = base::phase_type
 
- Public Types inherited from chi::pe::chi_rn_initiator_b
using payload_type = chi::chi_protocol_types::tlm_payload_type
 
using phase_type = chi::chi_protocol_types::tlm_phase_type
 

Public Member Functions

 chi_rn_initiator (const sc_core::sc_module_name &nm, chi::chi_initiator_socket< BUSWIDTH, TYPES, N, POL > &socket_)
 the constructor More...
 
 chi_rn_initiator (chi_rn_initiator const &)=delete
 
 chi_rn_initiator (chi_rn_initiator &&)=delete
 
chi_rn_initiatoroperator= (chi_rn_initiator const &)=delete
 
chi_rn_initiatoroperator= (chi_rn_initiator &&)=delete
 
- Public Member Functions inherited from chi::pe::chi_rn_initiator_b
void b_snoop (payload_type &trans, sc_core::sc_time &t) override
 
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. More...
 
void snoop_resp (payload_type &trans, bool sync=false) override
 triggers a non-blocking snoop response if the snoop callback does not do so. More...
 
 chi_rn_initiator_b (sc_core::sc_module_name nm, sc_core::sc_port_b< chi::chi_fw_transport_if< chi_protocol_types >> &port, size_t transfer_width)
 
 chi_rn_initiator_b (chi_rn_initiator_b const &)=delete
 
 chi_rn_initiator_b (chi_rn_initiator_b &&)=delete
 
chi_rn_initiator_boperator= (chi_rn_initiator_b const &)=delete
 
chi_rn_initiator_boperator= (chi_rn_initiator_b &&)=delete
 
- Public Member Functions inherited from chi::bw_blocking_transport_if< TRANS >
virtual void b_snoop (TRANS &trans, sc_core::sc_time &t)=0
 snoop access to a snooped master More...
 

Additional Inherited Members

- Public Attributes inherited from chi::pe::chi_rn_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"}
 
sc_core::sc_attribute< unsigned > src_id {"src_id", 1}
 
sc_core::sc_attribute< unsigned > tgt_id {"tgt_id", 0}
 
sc_core::sc_attribute< bool > data_interleaving {"data_interleaving", true}
 
sc_core::sc_attribute< bool > strict_income_order {"strict_income_order", true}
 
sc_core::sc_attribute< bool > use_legacy_mapping {"use_legacy_mapping", false}
 
- Protected Member Functions inherited from chi::pe::chi_rn_initiator_b
void end_of_elaboration () override
 
unsigned calculate_beats (payload_type &p)
 
void snoop_dispatch ()
 
void snoop_handler (payload_type *trans)
 
- Protected Attributes inherited from chi::pe::chi_rn_initiator_b
const size_t transfer_width_in_bytes
 
std::string instance_name
 
scc::ordered_semaphore req_credits {"req_credits", 0U, true}
 
sc_core::sc_port_b< chi::chi_fw_transport_if< chi_protocol_types > > & socket_fw
 
std::unordered_map< uintptr_t, tx_state * > tx_state_by_trans
 
std::vector< tx_state * > tx_state_pool
 
std::unordered_map< unsigned, scc::ordered_semaphoreactive_tx_by_id
 
scc::ordered_semaphore strict_order_sem {1}
 
tlm_utils::peq_with_get< payload_type > snp_peq {"snp_peq"}
 
tlm_utils::peq_with_get< payload_type > snp_dispatch_que {"snp_dispatch_que"}
 
unsigned thread_avail {0}
 
unsigned thread_active {0}
 
scc::ordered_semaphore req_order {1}
 
scc::ordered_semaphore req_chnl {1}
 
scc::ordered_semaphore wdat_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}
 

Detailed Description

template<unsigned int BUSWIDTH = 32, typename TYPES = chi::chi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
class chi::pe::chi_rn_initiator< BUSWIDTH, TYPES, N, POL >

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

Definition at line 177 of file chi_rn_initiator.h.

Constructor & Destructor Documentation

◆ chi_rn_initiator()

template<unsigned int BUSWIDTH = 32, typename TYPES = chi::chi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
chi::pe::chi_rn_initiator< BUSWIDTH, TYPES, N, POL >::chi_rn_initiator ( const sc_core::sc_module_name &  nm,
chi::chi_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 187 of file chi_rn_initiator.h.


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