#include <ahb_target.h>
|
| using | payload_type = tlm::tlm_base_protocol_types::tlm_payload_type |
| using | phase_type = tlm::tlm_base_protocol_types::tlm_phase_type |
|
|
| SC_HAS_PROCESS (ahb_target_b) |
| 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, bool sync=false) |
|
| sc_core::sc_in< bool > | clk_i {"clk_i"} |
| sc_core::sc_attribute< unsigned > | wr_data_accept_delay {"wr_data_accept_delay", 0} |
| | the latency between between BEGIN(_PARTIAL)_REQ and END(_PARTIAL)_REQ (AWVALID to AWREADY and WVALID to WREADY)
|
| sc_core::sc_attribute< unsigned > | rd_addr_accept_delay {"rd_addr_accept_delay", 0} |
| | the latency between between BEGIN_REQ and END_REQ (ARVALID to ARREADY)
|
| sc_core::sc_attribute< unsigned > | rd_data_beat_delay {"rd_data_beat_delay", 0} |
| | the latency between between END(_PARTIAL)_RESP and BEGIN(_PARTIAL)_RESP (RREADY to RVALID)
|
| sc_core::sc_attribute< unsigned > | rd_resp_delay {"rd_resp_delay", 0} |
| | the latency between request and response phase. Will be overwritten by the return of the callback function (if registered)
|
| sc_core::sc_attribute< unsigned > | wr_resp_delay {"wr_resp_delay", 0} |
| | the latency between request and response phase. Will be overwritten by the return of the callback function (if registered)
|
the target protocol engine base class
Definition at line 37 of file ahb_target.h.
◆ payload_type
| using ahb::pe::ahb_target_b::payload_type = tlm::tlm_base_protocol_types::tlm_payload_type |
◆ phase_type
| using ahb::pe::ahb_target_b::phase_type = tlm::tlm_base_protocol_types::tlm_phase_type |
◆ ahb_target_b()
| ahb::pe::ahb_target_b::ahb_target_b |
( |
const sc_core::sc_module_name & | nm, |
|
|
sc_core::sc_port_b< tlm::tlm_bw_transport_if< tlm::tlm_base_protocol_types > > & | port, |
|
|
size_t | transfer_width ) |
|
explicitprotected |
the constructor. Protected as it should only be called by derived classes
- Parameters
-
| nm | the module name |
| port | |
| transfer_width | |
◆ b_transport()
| void ahb_target_b::b_transport |
( |
payload_type & | trans, |
|
|
sc_core::sc_time & | t ) |
|
override |
◆ end_of_elaboration()
| void ahb_target_b::end_of_elaboration |
( |
| ) |
|
|
overrideprotected |
◆ get_direct_mem_ptr()
| bool ahb_target_b::get_direct_mem_ptr |
( |
payload_type & | trans, |
|
|
tlm::tlm_dmi & | dmi_data ) |
|
override |
◆ nb_transport_fw()
| tlm_sync_enum ahb_target_b::nb_transport_fw |
( |
payload_type & | trans, |
|
|
phase_type & | phase, |
|
|
sc_core::sc_time & | t ) |
|
override |
◆ operation_resp()
| void ahb_target_b::operation_resp |
( |
payload_type & | trans, |
|
|
bool | sync = false ) |
◆ send_resp_thread()
| void ahb_target_b::send_resp_thread |
( |
| ) |
|
|
protected |
◆ set_operation_cb()
| void ahb::pe::ahb_target_b::set_operation_cb |
( |
std::function< unsigned(payload_type &trans)> | cb | ) |
|
|
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
- Todo
- refine API
- Parameters
-
Definition at line 87 of file ahb_target.h.
◆ transport_dbg()
| unsigned int ahb_target_b::transport_dbg |
( |
payload_type & | trans | ) |
|
|
override |
◆ clk_i
| sc_core::sc_in<bool> ahb::pe::ahb_target_b::clk_i {"clk_i"} |
◆ clk_if
| sc_core::sc_clock* ahb::pe::ahb_target_b::clk_if {nullptr} |
|
protected |
◆ fast_req
| bool ahb::pe::ahb_target_b::fast_req {false} |
|
protected |
◆ fast_resp
| bool ahb::pe::ahb_target_b::fast_resp {false} |
|
protected |
◆ operation_cb
| std::function<unsigned(payload_type& trans)> ahb::pe::ahb_target_b::operation_cb |
|
protected |
◆ rd
| sc_core::sc_mutex ahb::pe::ahb_target_b::rd |
|
protected |
◆ rd_addr_accept_delay
| sc_core::sc_attribute<unsigned> ahb::pe::ahb_target_b::rd_addr_accept_delay {"rd_addr_accept_delay", 0} |
the latency between between BEGIN_REQ and END_REQ (ARVALID to ARREADY)
Definition at line 54 of file ahb_target.h.
◆ rd_data_beat_delay
| sc_core::sc_attribute<unsigned> ahb::pe::ahb_target_b::rd_data_beat_delay {"rd_data_beat_delay", 0} |
the latency between between END(_PARTIAL)_RESP and BEGIN(_PARTIAL)_RESP (RREADY to RVALID)
Definition at line 58 of file ahb_target.h.
◆ rd_resp
◆ rd_resp_delay
| sc_core::sc_attribute<unsigned> ahb::pe::ahb_target_b::rd_resp_delay {"rd_resp_delay", 0} |
the latency between request and response phase. Will be overwritten by the return of the callback function (if registered)
Definition at line 63 of file ahb_target.h.
◆ sn
| sc_core::sc_mutex ahb::pe::ahb_target_b::sn |
|
protected |
◆ sn_sem
| sc_core::sc_semaphore ahb::pe::ahb_target_b::sn_sem {1} |
|
protected |
◆ socket_bw
| sc_core::sc_port_b<tlm::tlm_bw_transport_if<tlm::tlm_base_protocol_types> >& ahb::pe::ahb_target_b::socket_bw |
|
protected |
◆ wr
| sc_core::sc_mutex ahb::pe::ahb_target_b::wr |
|
protected |
◆ wr_data_accept_delay
| sc_core::sc_attribute<unsigned> ahb::pe::ahb_target_b::wr_data_accept_delay {"wr_data_accept_delay", 0} |
the latency between between BEGIN(_PARTIAL)_REQ and END(_PARTIAL)_REQ (AWVALID to AWREADY and WVALID to WREADY)
Definition at line 50 of file ahb_target.h.
◆ wr_resp
◆ wr_resp_delay
| sc_core::sc_attribute<unsigned> ahb::pe::ahb_target_b::wr_resp_delay {"wr_resp_delay", 0} |
the latency between request and response phase. Will be overwritten by the return of the callback function (if registered)
Definition at line 68 of file ahb_target.h.
The documentation for this class was generated from the following files:
- /home/eyck/Projects/MINRES/SystemC-Components/src/interfaces/ahb/pe/ahb_target.h
- /home/eyck/Projects/MINRES/SystemC-Components/src/interfaces/ahb/pe/ahb_target.cpp