| 
|   | simple_axi_initiator (const sc_core::sc_module_name &nm, axi::axi_initiator_socket< BUSWIDTH, TYPES, N, POL > &socket_) | 
|   | the constructor  More...
  | 
|   | 
| 
  | simple_axi_initiator (simple_axi_initiator const &)=delete | 
|   | 
| 
  | simple_axi_initiator (simple_axi_initiator &&)=delete | 
|   | 
| 
simple_axi_initiator &  | operator= (simple_axi_initiator const &)=delete | 
|   | 
| 
simple_axi_initiator &  | operator= (simple_axi_initiator &&)=delete | 
|   | 
| tlm::tlm_sync_enum  | nb_transport_bw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) override | 
|   | forwarding function to the base class (due to inheritance)  More...
  | 
|   | 
| void  | invalidate_direct_mem_ptr (sc_dt::uint64 start_range, sc_dt::uint64 end_range) override | 
|   | forwarding function to the base class (due to inheritance)  More...
  | 
|   | 
| 
void  | b_snoop (payload_type &trans, sc_core::sc_time &t) | 
|   | 
| 
tlm::tlm_sync_enum  | nb_transport_bw (payload_type &trans, phase_type &phase, sc_core::sc_time &t) | 
|   | 
| 
void  | invalidate_direct_mem_ptr (sc_dt::uint64 start_range, sc_dt::uint64 end_range) | 
|   | 
| 
void  | set_clock_period (sc_core::sc_time clk_period) | 
|   | 
| 
size_t  | get_transferwith_in_bytes () const | 
|   | 
| void  | transport (payload_type &trans, bool blocking) override | 
|   | The forward transport function. It behaves blocking and is re-entrant.  More...
  | 
|   | 
| void  | set_snoop_cb (std::function< unsigned(payload_type &trans)> cb) | 
|   | Set the snoop callback function.  More...
  | 
|   | 
| void  | snoop_resp (payload_type &trans, bool sync=false) override | 
|   | triggers a non-blocking snoop response if the snoop callback does not do so.  More...
  | 
|   | 
| void  | add_protocol_cb (axi::fsm::protocol_time_point_e e, std::function< void(payload_type &, bool)> cb) | 
|   | register a callback for a certain time point  More...
  | 
|   | 
 | 
| 
sc_core::sc_in< bool >  | clk_i {"clk_i"} | 
|   | 
| 
sc_core::sc_export< tlm::scc::pe::intor_fw_b >  | fw_i {"fw_i"} | 
|   | 
| 
sc_core::sc_port< tlm::scc::pe::intor_bw_b, 1, sc_core::SC_ZERO_OR_MORE_BOUND >  | bw_o {"bw_o"} | 
|   | 
| 
sc_core::sc_attribute< unsigned >  | wr_data_beat_delay {"wr_data_beat_delay", 0} | 
|   | the latency between between END(_PARTIAL)_REQ and BEGIN(_PARTIAL)_REQ (AWREADY to AWVALID and WREADY to WVALID) 
  | 
|   | 
| 
sc_core::sc_attribute< unsigned >  | rd_data_accept_delay {"rd_data_accept_delay", 0} | 
|   | the latency between between BEGIN(_PARTIAL)_RESP and END(_PARTIAL)_RESP (RVALID to RREADY) 
  | 
|   | 
| 
sc_core::sc_attribute< unsigned >  | wr_resp_accept_delay {"wr_resp_accept_delay", 0} | 
|   | the latency between between BEGIN_RESP and END_RESP (BVALID to BREADY) 
  | 
|   | 
| 
sc_core::sc_attribute< unsigned >  | ack_resp_delay {"ack_resp_delay", 0} | 
|   | the latency between between BEGIN_RESP and END_RESP (BVALID to BREADY) 
  | 
|   | 
| unsigned  | snoop_latency {1} | 
|   | the default snoop latency between request and response phase. Will be overwritten by the return of the callback function (if registered)  More...
  | 
|   | 
| 
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 | 
|   | 
|   | simple_initiator_b (const sc_core::sc_module_name &nm, sc_core::sc_port_b< axi::axi_fw_transport_if< axi_protocol_types >> &port, size_t transfer_width, bool coherent=false) | 
|   | 
| 
  | simple_initiator_b (simple_initiator_b const &)=delete | 
|   | 
| 
  | simple_initiator_b (simple_initiator_b &&)=delete | 
|   | 
| 
simple_initiator_b &  | operator= (simple_initiator_b const &)=delete | 
|   | 
| 
simple_initiator_b &  | operator= (simple_initiator_b &&)=delete | 
|   | 
| 
void  | fsm_clk_method () | 
|   | 
| axi::fsm::fsm_handle *  | create_fsm_handle () override | 
|   | 
| void  | setup_callbacks (axi::fsm::fsm_handle *) override | 
|   | 
| 
void  | process_snoop_resp () | 
|   | 
| 
void  | end_of_elaboration () override | 
|   | 
| 
void  | cbpeq_cb () | 
|   | 
|   | 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 *) | 
|   | 
| 
unsigned  | thread_avail {0} | 
|   | 
| 
unsigned  | thread_active {0} | 
|   | 
| 
sc_core::sc_fifo< tlm::scc::tlm_gp_shared_ptr >  | dispatch_queue {"dispatch_queue"} | 
|   | 
| 
sc_core::sc_port_b< axi::axi_fw_transport_if< axi_protocol_types > > &  | socket_fw | 
|   | 
| 
std::deque< fsm::fsm_handle * >  | idle_proc | 
|   | 
| 
::scc::ordered_semaphore  | rd {1} | 
|   | 
| 
::scc::ordered_semaphore  | wr {1} | 
|   | 
| 
::scc::ordered_semaphore  | snp {1} | 
|   | 
| 
::scc::fifo_w_cb< std::tuple< axi::fsm::protocol_time_point_e, payload_type *, unsigned > >  | snp_resp_queue | 
|   | 
| 
sc_core::sc_process_handle  | snp_resp_queue_hndl | 
|   | 
| 
sc_core::sc_time  | clk_period {1, sc_core::SC_NS} | 
|   | 
| 
std::function< unsigned(payload_type &trans)>  | snoop_cb | 
|   | 
| 
std::array< std::function< void(payload_type &, bool)>, axi::fsm::CB_CNT >  | protocol_cb | 
|   | 
| 
sc_core::sc_clock *  | clk_if {nullptr} | 
|   | 
| 
scc::peq< std::tuple< axi::fsm::protocol_time_point_e, tlm::scc::tlm_gp_shared_ptr, bool > >  | cbpeq | 
|   | 
| 
::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_axi_initiator< BUSWIDTH, TYPES, N, POL >
the AXI initiator socket protocol engine adapted to a particular initiator socket configuration 
Definition at line 180 of file simple_initiator.h.