|
scc 2025.09
SystemC components library
|
#include <ace_target_pe.h>


Classes | |
| struct | bw_intor_impl |
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 | |
| void | b_transport (payload_type &trans, sc_core::sc_time &t) override |
| tlm::tlm_sync_enum | nb_transport_fw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) override |
| bool | get_direct_mem_ptr (payload_type &trans, tlm::tlm_dmi &dmi_data) override |
| unsigned int | transport_dbg (payload_type &trans) override |
| void | set_operation_cb (std::function< unsigned(payload_type &trans)> cb) |
| Set the operation callback function. | |
| void | operation_resp (payload_type &trans, unsigned clk_delay=0) |
| bool | is_active () |
| const sc_core::sc_event & | tx_finish_event () |
| 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 |
| ace_target_pe (const sc_core::sc_module_name &nm, size_t transfer_width) | |
| void | set_bw_interface (axi::axi_bw_transport_if< axi_protocol_types > *ifs) |
| void | snoop (payload_type &trans) |
Public Attributes | |
| sc_core::sc_in< bool > | clk_i {"clk_i"} |
| axi::axi_initiator_socket< 64 > | isckt_axi {"isckt_axi"} |
| sc_core::sc_port< tlm::scc::pe::intor_fw_nb, 1, sc_core::SC_ZERO_OR_MORE_BOUND > | fw_o {"fw_o"} |
| sc_core::sc_export< tlm::scc::pe::intor_bw_nb > | bw_i {"bw_i"} |
| cci::cci_param< int > | rd_resp_delay {"rd_resp_delay", 0} |
| the latency between read request and response phase. Will be overwritten by the return of the callback function (if registered) -> RIV | |
| cci::cci_param< int > | wr_resp_delay {"wr_resp_delay", 0} |
| the latency between write request and response phase. Will be overwritten by the return of the callback function (if registered) -> BV | |
Protected Member Functions | |
| ace_target_pe (ace_target_pe const &)=delete | |
| ace_target_pe (ace_target_pe &&)=delete | |
| ace_target_pe & | operator= (ace_target_pe const &)=delete |
| ace_target_pe & | operator= (ace_target_pe &&)=delete |
| void | end_of_elaboration () override |
| void | start_of_simulation () override |
| void | fsm_clk_method () |
| fsm::fsm_handle * | create_fsm_handle () override |
| void | setup_callbacks (fsm::fsm_handle *) override |
| unsigned | operations_callback (payload_type &trans) |
| void | nb_fw (payload_type &trans, const phase_type &phase) |
| 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 | |
| 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 | |
| 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 | |
| axi::fsm::fsm_handle * | find_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 | |
| 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 | |
| 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 | |
| axi::axi_bw_transport_if< axi_protocol_types > * | socket_bw {nullptr} |
| std::function< unsigned(payload_type &trans)> | operation_cb |
| sc_core::sc_fifo< payload_type * > | rd_resp_fifo {1} |
| sc_core::sc_fifo< payload_type * > | wr_resp_fifo {1} |
| sc_core::sc_fifo< std::tuple< fsm::fsm_handle *, axi::fsm::protocol_time_point_e > > | wr_resp_beat_fifo {128} |
| sc_core::sc_fifo< std::tuple< fsm::fsm_handle *, axi::fsm::protocol_time_point_e > > | rd_resp_beat_fifo {128} |
| scc::ordered_semaphore | rd_resp {1} |
| scc::ordered_semaphore | wr_resp_ch {1} |
| scc::ordered_semaphore | rd_resp_ch {1} |
| sc_core::sc_clock * | clk_if {nullptr} |
| std::unique_ptr< bw_intor_impl > | bw_intor |
| std::array< unsigned, 3 > | outstanding_cnt {{0, 0, 0}} |
| tlm_utils::peq_with_cb_and_phase< ace_target_pe > | fw_peq {this, &ace_target_pe::nb_fw} |
| std::unordered_set< unsigned > | active_rdresp_id |
| 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 |
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 |
the target protocol engine base class
Definition at line 41 of file ace_target_pe.h.
| using axi::pe::ace_target_pe::payload_type = axi::axi_protocol_types::tlm_payload_type |
Definition at line 48 of file ace_target_pe.h.
| using axi::pe::ace_target_pe::phase_type = axi::axi_protocol_types::tlm_phase_type |
Definition at line 49 of file ace_target_pe.h.
|
explicit |
the constructor. Protected as it should only be called by derived classes
| port | |
| transfer_width |
Definition at line 59 of file ace_target_pe.cpp.
|
override |
Definition at line 88 of file ace_target_pe.cpp.
|
overrideprotectedvirtual |
Implements axi::fsm::base.
Definition at line 121 of file ace_target_pe.cpp.
|
overrideprotected |
Definition at line 75 of file ace_target_pe.cpp.
|
inlineprotected |
Definition at line 145 of file ace_target_pe.h.
|
override |
Definition at line 114 of file ace_target_pe.cpp.
|
inlineoverride |
Definition at line 114 of file ace_target_pe.h.
|
inline |
returns true if any transaction is still in flight
Definition at line 100 of file ace_target_pe.h.
|
inlineprotected |
Definition at line 169 of file ace_target_pe.h.
|
inlineoverride |
Definition at line 109 of file ace_target_pe.h.
|
override |
Definition at line 98 of file ace_target_pe.cpp.
| void axi::pe::ace_target_pe::operation_resp | ( | payload_type & | trans, |
| unsigned | clk_delay = 0 ) |
start the response from an operation callback if latency is not set by the callback
| trans | |
| sync |
|
inline |
Definition at line 126 of file ace_target_pe.h.
|
inline |
Set the operation callback function.
This callback is invoked once a transaction arrives. This function is not allowed to block and returns the latency of the operation i.e. the duration until the reponse phase starts
| cb | the callback function |
Definition at line 87 of file ace_target_pe.h.
|
overrideprotectedvirtual |
Implements axi::fsm::base.
Definition at line 123 of file ace_target_pe.cpp.
| void ace_target_pe::snoop | ( | payload_type & | trans | ) |
Definition at line 180 of file ace_target_pe.cpp.
|
overrideprotected |
Definition at line 77 of file ace_target_pe.cpp.
|
override |
Definition at line 119 of file ace_target_pe.cpp.
|
inline |
get the event being notfied upon the finishing of a transaction
Definition at line 106 of file ace_target_pe.h.
|
protected |
Definition at line 174 of file ace_target_pe.h.
| sc_core::sc_export<tlm::scc::pe::intor_bw_nb> axi::pe::ace_target_pe::bw_i {"bw_i"} |
Definition at line 58 of file ace_target_pe.h.
|
protected |
Definition at line 166 of file ace_target_pe.h.
| sc_core::sc_in<bool> axi::pe::ace_target_pe::clk_i {"clk_i"} |
Definition at line 51 of file ace_target_pe.h.
|
protected |
Definition at line 165 of file ace_target_pe.h.
| sc_core::sc_port<tlm::scc::pe::intor_fw_nb, 1, sc_core::SC_ZERO_OR_MORE_BOUND> axi::pe::ace_target_pe::fw_o {"fw_o"} |
Definition at line 56 of file ace_target_pe.h.
|
protected |
Definition at line 173 of file ace_target_pe.h.
| axi::axi_initiator_socket<64> axi::pe::ace_target_pe::isckt_axi {"isckt_axi"} |
Definition at line 54 of file ace_target_pe.h.
|
protected |
Definition at line 158 of file ace_target_pe.h.
|
protected |
Definition at line 167 of file ace_target_pe.h.
|
protected |
Definition at line 163 of file ace_target_pe.h.
|
protected |
Definition at line 162 of file ace_target_pe.h.
|
protected |
Definition at line 163 of file ace_target_pe.h.
| cci::cci_param<int> axi::pe::ace_target_pe::rd_resp_delay {"rd_resp_delay", 0} |
the latency between read request and response phase. Will be overwritten by the return of the callback function (if registered) -> RIV
Definition at line 63 of file ace_target_pe.h.
|
protected |
Definition at line 159 of file ace_target_pe.h.
|
protected |
Definition at line 157 of file ace_target_pe.h.
|
protected |
Definition at line 161 of file ace_target_pe.h.
|
protected |
Definition at line 163 of file ace_target_pe.h.
| cci::cci_param<int> axi::pe::ace_target_pe::wr_resp_delay {"wr_resp_delay", 0} |
the latency between write request and response phase. Will be overwritten by the return of the callback function (if registered) -> BV
Definition at line 68 of file ace_target_pe.h.
|
protected |
Definition at line 159 of file ace_target_pe.h.