scc  2022.4.0
SystemC components library
axi::pin::axi4_target< CFG > Struct Template Reference
Inheritance diagram for axi::pin::axi4_target< CFG >:
Collaboration diagram for axi::pin::axi4_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 (axi4_target)
 
 axi4_target (sc_core::sc_module_name const &nm)
 
- Public Member Functions inherited from axi::aw_axi< CFG, CFG::slave_types >
 aw_axi (const char *prefix)
 
void bind_aw (aw_axi< CFG, OTYPES > &o)
 
void bind_aw (aw_axi_lite< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::wdata_axi< CFG, CFG::slave_types >
 wdata_axi (const char *prefix)
 
void bind_w (wdata_axi< CFG, OTYPES > &o)
 
void bind_w (wdata_axi_lite< CFG, OTYPES > &o)
 
void bind_wdata (wdata_axi< CFG, OTYPES > &o)
 
void bind_wdata (wdata_axi_lite< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::b_axi< CFG, CFG::slave_types >
 b_axi (const char *prefix)
 
void bind_b (b_axi< CFG, OTYPES > &o)
 
void bind_b (b_axi_lite< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::ar_axi< CFG, CFG::slave_types >
 ar_axi (const char *prefix)
 
void bind_ar (ar_axi< CFG, OTYPES > &o)
 
void bind_ar (ar_axi_lite< CFG, OTYPES > &o)
 
- Public Member Functions inherited from axi::rresp_axi< CFG, CFG::slave_types >
 rresp_axi (const char *prefix)
 
void bind_r (rresp_axi< CFG, OTYPES > &o)
 
void bind_r (rresp_axi_lite< CFG, OTYPES > &o)
 
void bind_rresp (rresp_axi< CFG, OTYPES > &o)
 
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_axi< CFG, CFG::slave_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_full_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_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > aw_user
 
- Public Attributes inherited from axi::wdata_axi< CFG, CFG::slave_types >
TYPES::template m2s_opt_t< sc_dt::sc_uint< CFG::IDWIDTH > > w_id
 
TYPES::template m2s_t< typename CFG::data_t > w_data
 
TYPES::template m2s_t< sc_dt::sc_uint< CFG::BUSWIDTH/8 > > w_strb
 
TYPES::template m2s_full_t< bool > w_last
 
TYPES::template m2s_t< bool > w_valid
 
TYPES::template s2m_t< bool > w_ready
 
TYPES::template m2s_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > w_user
 
TYPES::template m2s_full_t< bool > w_ack
 
TYPES::template m2s_opt_t< bool > w_trace
 
- Public Attributes inherited from axi::b_axi< CFG, CFG::slave_types >
TYPES::template s2m_t< bool > b_valid
 
TYPES::template m2s_t< bool > b_ready
 
TYPES::template s2m_full_t< sc_dt::sc_uint< CFG::IDWIDTH > > b_id
 
TYPES::template s2m_t< sc_dt::sc_uint< 2 > > b_resp
 
TYPES::template s2m_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > b_user
 
TYPES::template s2m_opt_t< bool > b_trace
 
- Public Attributes inherited from axi::ar_axi< CFG, CFG::slave_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_full_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_opt_t< sc_dt::sc_uint< CFG::USERWIDTH > > ar_user
 
- Public Attributes inherited from axi::rresp_axi< CFG, CFG::slave_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< 2 > > 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
 

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::axi4_target< CFG >

Definition at line 37 of file axi4_target.h.


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