52 #ifndef ETISS_INTERFACES_VCD_H
53 #define ETISS_INTERFACES_VCD_H
71 #define ETISS_INTERFACES_VCD_DECLARE(LOG, VAR, WIDTH) \
74 (LOG).declare((VAR), ETISS_TOSTRING(VAR), WIDTH, (VAR).errval); \
103 VCD(
const std::string &
file,
const std::string &comment = std::string());
106 template <
typename T>
107 inline bool declare(T &variable,
const std::string &name,
unsigned width,
uint64_t initialvalue,
110 return declare((
void *)&variable, name, width, initialvalue, undefined);
113 template <
typename T>
116 update((
uint64_t)(time_s * 1000000000000.0), (
void *)&variable, value, undefined);
119 inline std::string
toString()
const {
return std::string(
"VCD { file=\"") +
file +
"\"}"; }
124 bool declare(
void *variable,
const std::string &name,
unsigned width,
uint64_t initialvalue,
uint64_t undefined);
general configuration and logging
#define etiss_del_como(CLASS)
static __inline__ uint64_t
Marker interface for toString() support.
std::map< void *, int > ptr2index_
bool declare(T &variable, const std::string &name, unsigned width, uint64_t initialvalue, uint64_t undefined=-1)
void update(double time_s, const T &variable, uint64_t value, uint64_t undefined=0)
std::string toString() const
std::string dumpvar
TODO replace with better lookup.
std::vector< Signal > sigs_
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.