51    using TlmGenericPayload = tlm::tlm_generic_payload;
 
   52    using TlmResponseStatus = tlm::tlm_response_status;
 
   53    using TlmDmi = tlm::tlm_dmi;
 
   57    using GetDirectMemPtrCallbackFn = std::function<
bool(
uint64_t addr, TlmDmi&)>;
 
   63    TlmGenericPayload* m_cur_txn = 
nullptr;
 
   64    sc_core::sc_time* m_cur_txn_delay = 
nullptr;
 
   66    bool m_last_txn_valid = 
false;
 
   67    TlmGenericPayload m_last_txn;
 
   69    bool m_last_txn_delay_valid = 
false;
 
   70    sc_core::sc_time m_last_txn_delay;
 
   72    AccessCallbackFn m_read_cb;
 
   73    AccessCallbackFn m_write_cb;
 
   75    DebugAccessCallbackFn m_debug_read_cb;
 
   76    DebugAccessCallbackFn m_debug_write_cb;
 
   78    GetDirectMemPtrCallbackFn m_dmi_cb;
 
   81    template <
class RET, RET DEFAULT_RET, RET ADDRESS_ERROR_RET, RET DEFAULT_CB_RET, 
class CB_FN>
 
   97        if (
txn.get_address() + 
txn.get_data_length() >= m_mmio_size) {
 
  104        len = 
txn.get_data_length();
 
  106        switch (
txn.get_command()) {
 
  132        m_last_txn.deep_copy_from(
txn);
 
  133        m_last_txn_valid = 
true;
 
  139    virtual void b_transport(TlmGenericPayload& 
txn, sc_core::sc_time& delay)
 
  143        TlmResponseStatus 
ret;
 
  145        m_cur_txn_delay = &delay;
 
  147                             AccessCallbackFn>(
txn, m_read_cb, m_write_cb);
 
  148        m_cur_txn_delay = 
nullptr;
 
  150        txn.set_response_status(
ret);
 
  152        m_last_txn_delay = delay;
 
  153        m_last_txn_delay_valid = 
true;
 
  156    virtual unsigned int transport_dbg(TlmGenericPayload& 
txn)
 
  160        ret = generic_access<
int, 0, 0, -1, DebugAccessCallbackFn>(
txn, m_debug_read_cb, m_debug_write_cb);
 
  163            ret = 
txn.get_data_length();
 
  169    virtual bool get_direct_mem_ptr(TlmGenericPayload& 
txn, TlmDmi& dmi_data)
 
  173        m_last_txn.deep_copy_from(m_last_txn);
 
  178            return m_dmi_cb(
addr, dmi_data);
 
  185    tlm_utils::simple_target_socket<TargetTester, DEFAULT_TLM_BUSWIDTH> socket;
 
  195        socket.register_b_transport(
this, &TargetTester::b_transport);
 
  196        socket.register_transport_dbg(
this, &TargetTester::transport_dbg);
 
  197        socket.register_get_direct_mem_ptr(
this, &TargetTester::get_direct_mem_ptr);
 
 
  251        m_last_txn_valid = 
false;
 
 
  268        m_last_txn_delay_valid = 
false;
 
  270        return m_last_txn_delay;
 
 
  300        return *m_cur_txn_delay;
 
 
 
TargetTester(const sc_core::sc_module_name &n, size_t mmio_size)
Construct a TargetTester object with a name and an MMIO size.
Definition target-tester.h:193