28#ifndef __SYSTEMC_UTILS_TRACEFILE_HH__
29#define __SYSTEMC_UTILS_TRACEFILE_HH__
62template <
typename T,
typename Base=TraceValBase>
86template <
typename T,
typename Base>
90 const ::sc_core::sc_signal_in_if<T> *
iface;
105 T newVal = iface->read();
106 bool changed = (newVal !=
oldVal);
112template <
typename Base>
122 Base(
_width), triggered(false), oldStamp(0),
123 event(
Event::getFromScEvent(_event))
128 void finalize()
override { oldStamp =
event->triggeredStamp(); }
133 uint64_t newStamp =
event->triggeredStamp();
134 triggered = (oldStamp != newStamp);
140template <
typename T,
typename Base>
150 oldVal(_t->m_params.type_params(), _t->m_params.enc(),
151 _t->m_params.cast_switch(), 0)
159 this->_width =
t->wl();
173template <
typename Base>
182template <
typename Base>
220 const std::string &
name) = 0;
222 const std::string &
name) = 0;
224 const std::string &
name) = 0;
226 const std::string &
name) = 0;
228 const std::string &
name) = 0;
230 const std::string &
name) = 0;
232 const std::string &
name) = 0;
234 const std::string &
name) = 0;
236 const std::string &
name) = 0;
238 const std::string &
name) = 0;
240 const std::string &
name) = 0;
243 const std::string &
name) = 0;
245 const std::string &
name) = 0;
248 const std::string &
name,
int width) = 0;
252 const std::string &
name,
int width) = 0;
256 const std::string &
name,
int width) = 0;
260 const std::string &
name,
int width) = 0;
265 const std::string &
name,
int width) = 0;
267 const std::string &
name,
int width) = 0;
270 const std::string &
name,
271 const char **literals) = 0;
virtual void addTraceVal(const unsigned int *, const std::string &name, const char **literals)=0
virtual void addTraceVal(const sc_dt::sc_fxnum *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_lv_base *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_int_base *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_signed *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_bv_base *v, const std::string &name)=0
virtual void addTraceVal(const bool *v, const std::string &name)=0
virtual void addTraceVal(const char *v, const std::string &name, int width)=0
virtual void addTraceVal(const sc_core::sc_time *v, const std::string &name)=0
virtual void writeComment(const std::string &comment)=0
virtual void addTraceVal(const short *v, const std::string &name, int width)=0
virtual void addTraceVal(const sc_dt::sc_logic *v, const std::string &name)=0
::sc_core::sc_time_unit timeUnitUnit
virtual void addTraceVal(const sc_dt::uint64 *v, const std::string &name, int width)=0
virtual void addTraceVal(const sc_dt::int64 *v, const std::string &name, int width)=0
virtual void addTraceVal(const long *v, const std::string &name, int width)=0
virtual void addTraceVal(const float *v, const std::string &name)=0
virtual void addTraceVal(const double *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_uint_base *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_unsigned *v, const std::string &name)=0
virtual void addTraceVal(const unsigned long *v, const std::string &name, int width)=0
virtual void addTraceVal(const unsigned short *v, const std::string &name, int width)=0
virtual void addTraceVal(const sc_core::sc_event *v, const std::string &name)=0
TraceFile(const std::string &name)
void set_time_unit(double, ::sc_core::sc_time_unit) override
virtual void trace(bool delta)=0
virtual void addTraceVal(const unsigned int *v, const std::string &name, int width)=0
virtual void addTraceVal(const int *v, const std::string &name, int width)=0
virtual void addTraceVal(const unsigned char *v, const std::string &name, int width)=0
virtual void addTraceVal(const sc_dt::sc_fxnum_fast *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_fxval *v, const std::string &name)=0
virtual void addTraceVal(const sc_dt::sc_fxval_fast *v, const std::string &name)=0
void traceDeltas(bool on)
TraceValFxnumBase(const T *_t, int _width)
TraceVal(const ::sc_core::sc_event *_event, int _width)
TraceVal(const ::sc_core::sc_signal_in_if< T > *_iface, int _width)
const ::sc_core::sc_signal_in_if< T > * iface
TraceVal(const T *_t, int _width)
const std::string & name()