File monitor.h
File List > bindings > dbg > monitor.h
Go to the documentation of this file
#pragma once
#include <systemc.h>
#include <tlm.h>
#include <tlm_utils/simple_initiator_socket.h>
#include <tlm_utils/simple_target_socket.h>
namespace dbg {
class Monitor : public sc_module {
public:
using Target =
tlm_utils::simple_initiator_socket<Monitor>::base_target_socket_type;
Monitor(const sc_module_name &name);
~Monitor() = default;
void set_to(Target *target);
Target *to() const;
tlm_utils::simple_target_socket<Monitor> from_;
tlm_utils::simple_initiator_socket<Monitor> to_;
protected:
virtual tlm::tlm_sync_enum nb_transport_fw(tlm::tlm_generic_payload &trans,
tlm::tlm_phase &phase, sc_time &);
virtual tlm::tlm_sync_enum nb_transport_bw(tlm::tlm_generic_payload &trans,
tlm::tlm_phase &phase, sc_time &);
void PrintPayload(tlm::tlm_generic_payload &trans, tlm::tlm_phase &phase,
sc_time &delay);
Target *target_;
};
} // namespace dbg