#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. More...
|
|
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)
|
|
|
sc_core::sc_port_b< tlm::tlm_bw_transport_if< tlm::tlm_base_protocol_types > > & | socket_bw |
|
sc_core::sc_semaphore | sn_sem {1} |
|
sc_core::sc_mutex | wr |
|
sc_core::sc_mutex | rd |
|
sc_core::sc_mutex | sn |
|
bool | fast_resp {false} |
|
bool | fast_req {false} |
|
std::function< unsigned(payload_type &trans)> | operation_cb |
|
scc::ordered_semaphore | rd_resp {1} |
|
scc::ordered_semaphore | wr_resp {1} |
|
sc_core::sc_clock * | clk_if {nullptr} |
|
the target protocol engine base class
Definition at line 37 of file ahb_target.h.
◆ 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 | |
◆ operation_resp()
void ahb_target_b::operation_resp |
( |
payload_type & |
trans, |
|
|
bool |
sync = false |
|
) |
| |
◆ 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 86 of file ahb_target.h.
The documentation for this class was generated from the following files:
- /home/eyck/git/SystemC-Components/src/bus_interfaces/ahb/pe/ahb_target.h
- /home/eyck/git/SystemC-Components/src/bus_interfaces/ahb/pe/ahb_target.cpp