/*! \file Trace.h \brief Basic TLM-2 Trace module \author Màrius Montón \date September 2018 */ #ifndef __TRACE_H__ #define __TRACE_H__ #include #include #define SC_INCLUDE_DYNAMIC_PROCESSES #include "systemc" #include "tlm.h" #include "tlm_utils/simple_target_socket.h" using namespace sc_core; using namespace sc_dt; using namespace std; /** * @brief Simple trace peripheral * * This peripheral outputs to cout any character written to its unique register */ class Trace: sc_module { public: /** * @brief Bus socket */ tlm_utils::simple_target_socket socket; /** * @brief Constructor * @param name Module name */ Trace(sc_module_name name); /** * @brief Destructor */ ~Trace(); private: // TLM-2 blocking transport method virtual void b_transport( tlm::tlm_generic_payload& trans, sc_time& delay ); void xtermLaunch(char *slaveName); void xtermKill( const char *mess ); void xtermSetup(void); int ptSlave; int ptMaster; int xtermPid; }; #endif