30 #ifndef __SYSTEMC_UTILS_VCD_HH__ 31 #define __SYSTEMC_UTILS_VCD_HH__ 40 class VcdTraceValBase;
46 std::map<std::string, VcdTraceScope *>
scopes;
59 static const int NextNameChars = 5;
60 char _nextName[NextNameChars + 1];
61 std::string nextSignalName();
71 TraceFile(name +
".vcd"), lastPrintedTime(0), deltasAtNow(0),
74 _nextName[NextNameChars] =
'\0';
75 for (
int i = 0;
i < NextNameChars;
i++)
80 void trace(
bool delta)
override;
88 traceVals.push_back(tv);
92 void addTraceVal(
const bool *
v,
const std::string &
name)
override;
93 void addTraceVal(
const float *v,
const std::string &name)
override;
94 void addTraceVal(
const double *v,
const std::string &name)
override;
97 const std::string &name)
override;
99 const std::string &name)
override;
101 const std::string &name)
override;
103 const std::string &name)
override;
105 const std::string &name)
override;
107 const std::string &name)
override;
109 const std::string &name)
override;
111 const std::string &name)
override;
113 const std::string &name)
override;
115 const std::string &name)
override;
117 const std::string &name)
override;
120 const std::string &name)
override;
122 const std::string &name)
override;
124 void addTraceVal(
const unsigned char *v,
125 const std::string &name,
int width)
override;
126 void addTraceVal(
const char *v,
const std::string &name,
128 void addTraceVal(
const unsigned short *v,
129 const std::string &name,
int width)
override;
130 void addTraceVal(
const short *v,
const std::string &name,
132 void addTraceVal(
const unsigned int *v,
133 const std::string &name,
int width)
override;
134 void addTraceVal(
const int *v,
const std::string &name,
136 void addTraceVal(
const unsigned long *v,
137 const std::string &name,
int width)
override;
138 void addTraceVal(
const long *v,
const std::string &name,
142 const std::string &name,
int width)
override;
144 const std::string &name,
int width)
override;
146 void addTraceVal(
const unsigned int *,
const std::string &name,
147 const char **literals)
override;
149 void writeComment(
const std::string &comment)
override;
154 #endif // __SYSTEMC_UTILS_VCD_HH__
const std::string & name()
void addValue(const std::string &name, VcdTraceValBase *value)
std::vector< std::pair< std::string, VcdTraceValBase * > > values
void addNewTraceVal(const typename TV::TracedType *v, const std::string &name, int width=1)
void output(const std::string &name, std::ostream &os)
uint64_t Tick
Tick count type.
VcdTraceFile(const std::string &name)
std::map< std::string, VcdTraceScope * > scopes
std::vector< VcdTraceValBase * > traceVals