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

Public Types

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_lite_target)
 
 ace_lite_target (sc_core::sc_module_name const &nm)
 
- Public Member Functions inherited from axi::aw_ace< CFG, TYPES >
 aw_ace (const char *prefix)
 
template<typename OTYPES >
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, TYPES >
 ar_ace (const char *prefix)
 
template<typename OTYPES >
void bind_ar (ar_ace< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::rresp_axi< CFG, TYPES >
 rresp_axi (const char *prefix)
 
template<typename OTYPES >
void bind_r (rresp_axi< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_rresp (rresp_axi< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_r (rresp_axi_lite< CFG, OTYPES > &o)
 
template<typename OTYPES >
void bind_rresp (rresp_axi_lite< CFG, OTYPES > &o)
 

Public Attributes

sc_core::sc_in< bool > clk_i {"clk_i"}
 
axi::axi_initiator_socket< CFG::BUSWIDTH > isckt {"isckt"}
 
- Public Attributes inherited from axi::aw_ace< CFG, TYPES >
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > aw_id {"aw_id"}
 
TYPES::template m2s_t< sc_dt::sc_uint< CFG::ADDRWIDTH > > aw_addr {"aw_addr"}
 
TYPES::template s2m_t< bool > aw_ready {"aw_ready"}
 
TYPES::template m2s_t< bool > aw_lock {"aw_lock"}
 
TYPES::template m2s_t< bool > aw_valid {"aw_valid"}
 
TYPES::template m2s_t< sc_dt::sc_uint< 3 > > aw_prot {"aw_prot"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 3 > > aw_size {"aw_size"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > aw_cache {"aw_cache"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > aw_burst {"aw_burst"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > aw_qos {"aw_qos"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > aw_region {"aw_region"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 8 > > aw_len {"aw_len"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > aw_domain {"aw_domain"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::AWSNOOPWIDTH > > aw_snoop {"aw_snoop"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > aw_bar {"aw_bar"}
 
TYPES::template m2s_t< bool > aw_unique {"aw_unique"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::USERWIDTH > > aw_user {"aw_user"}
 
TYPES::template m2s_t< bool > aw_stashniden {"aw_stashniden"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 11 > > aw_stashnid {"aw_stashnid"}
 
TYPES::template m2s_t< bool > aw_stashlpiden {"aw_stashlpiden"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 5 > > aw_stashlpid {"aw_stashlpid"}
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< 6 > > aw_atop {"aw_atop"}
 
TYPES::template m2s_opt_t< bool > aw_trace {"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, TYPES >
TYPES::template m2s_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > ar_id {"ar_id"}
 
TYPES::template m2s_t< sc_dt::sc_uint< CFG::ADDRWIDTH > > ar_addr {"ar_addr"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 8 > > ar_len {"ar_len"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 3 > > ar_size {"ar_size"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > ar_burst {"ar_burst"}
 
TYPES::template m2s_t< bool > ar_lock {"ar_lock"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_cache {"ar_cache"}
 
TYPES::template m2s_t< sc_dt::sc_uint< 3 > > ar_prot {"ar_prot"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_qos {"ar_qos"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_region {"ar_region"}
 
TYPES::template m2s_t< bool > ar_valid {"ar_valid"}
 
TYPES::template s2m_t< bool > ar_ready {"ar_ready"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > ar_domain {"ar_domain"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 4 > > ar_snoop {"ar_snoop"}
 
TYPES::template m2s_full_t< sc_dt::sc_uint< 2 > > ar_bar {"ar_bar"}
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > ar_user {"ar_user"}
 
TYPES::template m2s_opt_t< bool > ar_trace {"ar_trace"}
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< 4 > > ar_vmidext {"ar_vmidext"}
 
- Public Attributes inherited from axi::rresp_axi< CFG, TYPES >
TYPES::template s2m_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > r_id {"r_id"}
 
TYPES::template s2m_t< typename CFG::data_t > r_data {"r_data"}
 
TYPES::template s2m_t< sc_dt::sc_uint< 2 > > r_resp {"r_resp"}
 
TYPES::template s2m_full_t< bool > r_last {"r_last"}
 
TYPES::template s2m_t< bool > r_valid {"r_valid"}
 
TYPES::template m2s_t< bool > r_ready {"r_ready"}
 
TYPES::template s2m_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > r_user {"r_user"}
 
TYPES::template s2m_opt_t< bool > r_trace {"r_trace"}
 

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_lite_target< CFG >

Definition at line 36 of file ace_lite_target.h.


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