|
| simple_ace_target (axi::ace_target_socket< BUSWIDTH, TYPES, N, POL > &socket) |
| the constructor More...
|
|
| simple_ace_target (const sc_core::sc_module_name &nm, axi::ace_target_socket< BUSWIDTH, TYPES, N, POL > &socket) |
|
| simple_ace_target (simple_ace_target const &)=delete |
|
| simple_ace_target (simple_ace_target &&)=delete |
|
simple_ace_target & | operator= (simple_ace_target const &)=delete |
|
simple_ace_target & | operator= (simple_ace_target &&)=delete |
|
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. More...
|
|
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) |
|
|
void | end_of_elaboration () |
|
| 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) |
|
| 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_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 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 *) |
|
|
axi::ace_target_socket< BUSWIDTH, TYPES, N, POL > & | socket |
|
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 |
|
::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 |
|
template<unsigned int BUSWIDTH = 32, typename TYPES = axi::axi_protocol_types, int N = 1, sc_core::sc_port_policy POL = sc_core::SC_ONE_OR_MORE_BOUND>
class axi::pe::simple_ace_target< BUSWIDTH, TYPES, N, POL >
Definition at line 29 of file simple_ace_target.h.