scc  2022.4.0
SystemC components library
axi::pin::ace_initiator< CFG > Struct Template Reference
Inheritance diagram for axi::pin::ace_initiator< CFG >:
Collaboration diagram for axi::pin::ace_initiator< CFG >:

Public Types

enum  { CACHELINE_SZ = 64 }
 
using payload_type = axi::axi_protocol_types::tlm_payload_type
 
using phase_type = axi::axi_protocol_types::tlm_phase_type
 

Public Member Functions

 SC_HAS_PROCESS (ace_initiator)
 
 ace_initiator (sc_core::sc_module_name const &nm)
 
- Public Member Functions inherited from axi::aw_ace< CFG, CFG::master_types >
 aw_ace (const char *prefix)
 
void bind_aw (aw_ace< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::wdata_axi< CFG, TYPES >
 wdata_axi (const char *prefix)
 
template<typename OTYPES >
void bind_w (wdata_axi< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_wdata (wdata_axi< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_w (wdata_axi_lite< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_wdata (wdata_axi_lite< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::b_axi< CFG, TYPES >
 b_axi (const char *prefix)
 
template<typename OTYPES >
void bind_b (b_axi< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_b (b_axi_lite< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::ar_ace< CFG, CFG::master_types >
 ar_ace (const char *prefix)
 
void bind_ar (ar_ace< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::rresp_ace< CFG, CFG::master_types >
 rresp_ace (const char *prefix)
 
void bind_r (rresp_ace< CFG, OTYPES > &o)
 
void bind_rresp (rresp_ace< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::ac_ace< CFG, CFG::master_types >
 ac_ace (const char *prefix)
 
void bind_ac (ac_ace< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::cr_ace< CFG, CFG::master_types >
 cr_ace (const char *prefix)
 
void bind_cr (cr_ace< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::cd_ace< CFG, CFG::master_types >
 cd_ace (const char *prefix)
 
void bind_cd (cd_ace< CFG, OTYPES > &o)
 

Public Attributes

sc_core::sc_in< bool > clk_i {"clk_i"}
 
axi::ace_target_socket< CFG::BUSWIDTH > tsckt {"tsckt"}
 
- Public Attributes inherited from axi::aw_ace< CFG, CFG::master_types >
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > aw_id
 
TYPES::template m2s_t< sc_dt::sc_uint< CFG::ADDRWIDTH > > aw_addr
 
TYPES::template s2m_t< bool > aw_ready
 
TYPES::template m2s_t< bool > aw_lock
 
TYPES::template m2s_t< bool > aw_valid
 
TYPES::template m2s_t< sc_dt::sc_uint< 3 > > aw_prot
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 3 > > aw_size
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > aw_cache
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > aw_burst
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > aw_qos
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > aw_region
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 8 > > aw_len
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > aw_domain
 
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::AWSNOOPWIDTH > > aw_snoop
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > aw_bar
 
TYPES::template m2s_t< bool > aw_unique
 
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::USERWIDTH > > aw_user
 
TYPES::template m2s_t< bool > aw_stashniden
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 11 > > aw_stashnid
 
TYPES::template m2s_t< bool > aw_stashlpiden
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 5 > > aw_stashlpid
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< 6 > > aw_atop
 
TYPES::template m2s_opt_t< bool > aw_trace
 
- Public Attributes inherited from axi::wdata_axi< CFG, TYPES >
TYPES::template m2s_opt_t< sc_dt::sc_uint< CFG::IDWIDTH > > w_id {"w_id"}
 
TYPES::template m2s_t< typename CFG::data_t > w_data {"w_data"}
 
TYPES::template m2s_t< sc_dt::sc_uint< CFG::BUSWIDTH/8 > > w_strb {"w_strb"}
 
TYPES::template m2s_full_t< bool > w_last {"w_last"}
 
TYPES::template m2s_t< bool > w_valid {"w_valid"}
 
TYPES::template s2m_t< bool > w_ready {"w_ready"}
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > w_user {"w_user"}
 
TYPES::template m2s_full_t< bool > w_ack {"w_ack"}
 
TYPES::template m2s_opt_t< bool > w_trace {"w_trace"}
 
- Public Attributes inherited from axi::b_axi< CFG, TYPES >
TYPES::template s2m_t< bool > b_valid {"b_valid"}
 
TYPES::template m2s_t< bool > b_ready {"b_ready"}
 
TYPES::template s2m_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > b_id {"b_id"}
 
TYPES::template s2m_t< sc_dt::sc_uint< 2 > > b_resp {"b_resp"}
 
TYPES::template s2m_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > b_user {"b_user"}
 
TYPES::template s2m_opt_t< bool > b_trace {"b_trace"}
 
- Public Attributes inherited from axi::ar_ace< CFG, CFG::master_types >
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > ar_id
 
TYPES::template m2s_t< sc_dt::sc_uint< CFG::ADDRWIDTH > > ar_addr
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 8 > > ar_len
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 3 > > ar_size
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > ar_burst
 
TYPES::template m2s_t< bool > ar_lock
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_cache
 
TYPES::template m2s_t< sc_dt::sc_uint< 3 > > ar_prot
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_qos
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_region
 
TYPES::template m2s_t< bool > ar_valid
 
TYPES::template s2m_t< bool > ar_ready
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > ar_domain
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_snoop
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > ar_bar
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > ar_user
 
TYPES::template m2s_opt_t< bool > ar_trace
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< 4 > > ar_vmidext
 
- Public Attributes inherited from axi::rresp_ace< CFG, CFG::master_types >
TYPES::template s2m_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > r_id
 
TYPES::template s2m_t< typename CFG::data_t > r_data
 
TYPES::template s2m_t< sc_dt::sc_uint< CFG::RESPWIDTH > > r_resp
 
TYPES::template s2m_full_t< bool > r_last
 
TYPES::template s2m_t< bool > r_valid
 
TYPES::template m2s_t< bool > r_ready
 
TYPES::template s2m_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > r_user
 
TYPES::template s2m_opt_t< bool > r_trace
 
TYPES::template m2s_t< bool > r_ack
 
- Public Attributes inherited from axi::ac_ace< CFG, CFG::master_types >
TYPES::template s2m_t< bool > ac_valid
 
TYPES::template m2s_t< bool > ac_ready
 
TYPES::template s2m_t< sc_dt::sc_uint< CFG::ADDRWIDTH > > ac_addr
 
TYPES::template s2m_full_t< sc_dt::sc_uint< 4 > > ac_snoop
 
TYPES::template s2m_full_t< sc_dt::sc_uint< 3 > > ac_prot
 
TYPES::template s2m_opt_t< sc_dt::sc_uint< 4 > > ac_vmidext
 
TYPES::template s2m_opt_t< bool > ac_trace
 
- Public Attributes inherited from axi::cr_ace< CFG, CFG::master_types >
TYPES::template m2s_t< bool > cr_valid
 
TYPES::template s2m_t< bool > cr_ready
 
TYPES::template m2s_t< sc_dt::sc_uint< 5 > > cr_resp
 
TYPES::template m2s_opt_t< bool > cr_trace
 
- Public Attributes inherited from axi::cd_ace< CFG, CFG::master_types >
TYPES::template m2s_t< bool > cd_valid
 
TYPES::template s2m_t< bool > cd_ready
 
TYPES::template m2s_t< typename CFG::data_t > cd_data
 
TYPES::template m2s_full_t< bool > cd_last
 

Additional Inherited Members

- Protected Types inherited from axi::fsm::base
using payload_type = axi::axi_protocol_types::tlm_payload_type
 aliases used in the class
 
using phase_type = axi::axi_protocol_types::tlm_phase_type
 
- Protected Member Functions inherited from axi::fsm::base
 base (size_t transfer_width, bool coherent=false, axi::fsm::protocol_time_point_e wr_start=axi::fsm::RequestPhaseBeg)
 the constructor More...
 
virtual ~base ()
 the destructor
 
tlm::tlm_sync_enum nb_fw (payload_type &trans, phase_type const &phase, sc_core::sc_time &t)
 triggers the FSM based on TLM phases in the forward path. Should be called from np_transport_fw of the respective derived class More...
 
tlm::tlm_sync_enum nb_bw (payload_type &trans, phase_type const &phase, sc_core::sc_time &t)
 triggers the FSM based on TLM phases in the backward path. Should be called from np_transport_bw of the respective derived class More...
 
axi::fsm::fsm_handlefind_or_create (payload_type *gp=nullptr, bool ace=false)
 retrieve the FSM handle based on the transaction passed. If non exist one will be created More...
 
void process_fsm_event ()
 processes the fsm_event_queue and triggers FSM aligned
 
void process_fsm_clk_queue ()
 processes the fsm_clk_queue and triggers the FSM accordingly. Should be registered as rising-edge clock callback
 
void schedule (axi::fsm::protocol_time_point_e e, tlm::scc::tlm_gp_shared_ptr &gp, unsigned cycles)
 processes the fsm_sched_queue and propagates events to fsm_clk_queue. Should be registered as falling-edge clock callback
 
void schedule (axi::fsm::protocol_time_point_e e, payload_type *gp, unsigned cycles)
 
void schedule (axi::fsm::protocol_time_point_e e, tlm::scc::tlm_gp_shared_ptr &gp, sc_core::sc_time delay, bool syncronize=false)
 processes the fsm_sched_queue and propagates events to fsm_clk_queue. Should be registered as falling-edge clock callback
 
void schedule (axi::fsm::protocol_time_point_e e, payload_type *gp, sc_core::sc_time delay, bool syncronize=false)
 
void react (axi::fsm::protocol_time_point_e event, tlm::scc::tlm_gp_shared_ptr &trans)
 triggers the FSM with event and given transaction More...
 
void react (axi::fsm::protocol_time_point_e event, payload_type *trans)
 
void react (axi::fsm::protocol_time_point_e, axi::fsm::fsm_handle *)
 
- Protected Attributes inherited from axi::fsm::base
::scc::peq< std::tuple< axi::fsm::protocol_time_point_e, payload_type *, bool > > fsm_event_queue
 
::scc::fifo_w_cb< std::tuple< axi::fsm::protocol_time_point_e, payload_type *, unsigned > > fsm_clk_queue
 
sc_core::sc_process_handle fsm_clk_queue_hndl
 
size_t transfer_width_in_bytes
 
const axi::fsm::protocol_time_point_e wr_start
 
const bool coherent
 
std::unordered_map< payload_type *, axi::fsm::fsm_handle * > active_fsm
 
std::deque< axi::fsm::fsm_handle * > idle_fsm
 
std::vector< std::unique_ptr< axi::fsm::fsm_handle > > allocated_fsm
 
std::string instance_name
 
sc_core::sc_event finish_evt
 

Detailed Description

template<typename CFG>
struct axi::pin::ace_initiator< CFG >

Definition at line 36 of file ace_initiator.h.


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