From d45caca011b70e3468289254ccbb000604e8e603 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Sat, 28 May 2022 12:07:24 +0100 Subject: [PATCH] Remove legacy VCD tracing API This has not been used by Verilator for a while, but was kept for compatibility with some external code. Now removed. --- include/verilated_trace_imp.cpp | 37 --- include/verilated_vcd_c.cpp | 279 ---------------------- include/verilated_vcd_c.h | 160 ------------- test_regress/t/t_trace_c_api.cpp | 24 -- test_regress/t/t_trace_c_api.pl | 30 --- test_regress/t/t_trace_c_api.v | 8 - test_regress/t/t_trace_complex_old_api.pl | 39 --- 7 files changed, 577 deletions(-) delete mode 100644 test_regress/t/t_trace_c_api.cpp delete mode 100755 test_regress/t/t_trace_c_api.pl delete mode 100644 test_regress/t/t_trace_c_api.v delete mode 100755 test_regress/t/t_trace_complex_old_api.pl diff --git a/include/verilated_trace_imp.cpp b/include/verilated_trace_imp.cpp index 7a98b7abf..dac31ddac 100644 --- a/include/verilated_trace_imp.cpp +++ b/include/verilated_trace_imp.cpp @@ -725,41 +725,4 @@ static inline void cvtQDataToStr(char* dstp, QData value) { #define cvtEDataToStr cvtIDataToStr -//============================================================================= - -#ifdef VERILATED_VCD_TEST - -void verilated_trace_imp_selftest() { -#define SELF_CHECK(got, exp) \ - do { \ - if ((got) != (exp)) VL_FATAL_MT(__FILE__, __LINE__, "", "%Error: selftest"); \ - } while (0) - -#define SELF_CHECK_TS(scale) \ - SELF_CHECK(doubleToTimescale(timescaleToDouble(scale)), std::string{scale}); - SELF_CHECK_TS("100s"); - SELF_CHECK_TS("10s"); - SELF_CHECK_TS("1s"); - SELF_CHECK_TS("100ms"); - SELF_CHECK_TS("10ms"); - SELF_CHECK_TS("1ms"); - SELF_CHECK_TS("100us"); - SELF_CHECK_TS("10us"); - SELF_CHECK_TS("1us"); - SELF_CHECK_TS("100ns"); - SELF_CHECK_TS("10ns"); - SELF_CHECK_TS("1ns"); - SELF_CHECK_TS("100ps"); - SELF_CHECK_TS("10ps"); - SELF_CHECK_TS("1ps"); - SELF_CHECK_TS("100fs"); - SELF_CHECK_TS("10fs"); - SELF_CHECK_TS("1fs"); - SELF_CHECK_TS("100as"); - SELF_CHECK_TS("10as"); - SELF_CHECK_TS("1as"); -} - -#endif - #endif // VL_CPPCHECK diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp index 78383befc..d2417bc3e 100644 --- a/include/verilated_vcd_c.cpp +++ b/include/verilated_vcd_c.cpp @@ -562,23 +562,6 @@ void VerilatedVcd::declArray(uint32_t code, const char* name, bool array, int ar void VerilatedVcd::declDouble(uint32_t code, const char* name, bool array, int arraynum) { declare(code, name, "real", array, arraynum, false, false, 63, 0); } -#ifdef VL_TRACE_VCD_OLD_API -void VerilatedVcd::declTriBit(uint32_t code, const char* name, bool array, int arraynum) { - declare(code, name, "wire", array, arraynum, true, false, 0, 0); -} -void VerilatedVcd::declTriBus(uint32_t code, const char* name, bool array, int arraynum, int msb, - int lsb) { - declare(code, name, "wire", array, arraynum, true, true, msb, lsb); -} -void VerilatedVcd::declTriQuad(uint32_t code, const char* name, bool array, int arraynum, int msb, - int lsb) { - declare(code, name, "wire", array, arraynum, true, true, msb, lsb); -} -void VerilatedVcd::declTriArray(uint32_t code, const char* name, bool array, int arraynum, int msb, - int lsb) { - declare(code, name, "wire", array, arraynum, true, true, msb, lsb); -} -#endif // VL_TRACE_VCD_OLD_API //============================================================================= // Trace rendering prinitives @@ -689,265 +672,3 @@ void VerilatedVcd::emitDouble(uint32_t code, double newval) { wp += std::strlen(wp); finishLine(code, wp); } - -#ifdef VL_TRACE_VCD_OLD_API - -void VerilatedVcd::fullBit(uint32_t code, const uint32_t newval) { - // Note the &1, so we don't require clean input -- makes more common no change case faster - *oldp(code) = newval; - *m_writep++ = ('0' + static_cast(newval & 1)); - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullBus(uint32_t code, const uint32_t newval, int bits) { - *oldp(code) = newval; - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - *m_writep++ = ((newval & (1L << bit)) ? '1' : '0'); - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullQuad(uint32_t code, const uint64_t newval, int bits) { - (*(reinterpret_cast(oldp(code)))) = newval; - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - *m_writep++ = ((newval & (1ULL << bit)) ? '1' : '0'); - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullArray(uint32_t code, const uint32_t* newval, int bits) { - for (int word = 0; word < (((bits - 1) / 32) + 1); ++word) { oldp(code)[word] = newval[word]; } - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - *m_writep++ = ((newval[(bit / 32)] & (1L << (bit & 0x1f))) ? '1' : '0'); - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullArray(uint32_t code, const uint64_t* newval, int bits) { - for (int word = 0; word < (((bits - 1) / 64) + 1); ++word) { oldp(code)[word] = newval[word]; } - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - *m_writep++ = ((newval[(bit / 64)] & (1ULL << (bit & 0x3f))) ? '1' : '0'); - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullTriBit(uint32_t code, const uint32_t newval, const uint32_t newtri) { - oldp(code)[0] = newval; - oldp(code)[1] = newtri; - *m_writep++ = "01zz"[newval | (newtri << 1)]; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullTriBus(uint32_t code, const uint32_t newval, const uint32_t newtri, - int bits) { - oldp(code)[0] = newval; - oldp(code)[1] = newtri; - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - *m_writep++ = "01zz"[((newval >> bit) & 1) | (((newtri >> bit) & 1) << 1)]; - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullTriQuad(uint32_t code, const uint64_t newval, const uint64_t newtri, - int bits) { - (*(reinterpret_cast(oldp(code)))) = newval; - (*(reinterpret_cast(oldp(code + 1)))) = newtri; - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - *m_writep++ = "01zz"[((newval >> bit) & 1ULL) | (((newtri >> bit) & 1ULL) << 1ULL)]; - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullTriArray(uint32_t code, const uint32_t* newvalp, const uint32_t* newtrip, - int bits) { - for (int word = 0; word < (((bits - 1) / 32) + 1); ++word) { - oldp(code)[word * 2] = newvalp[word]; - oldp(code)[word * 2 + 1] = newtrip[word]; - } - *m_writep++ = 'b'; - for (int bit = bits - 1; bit >= 0; --bit) { - uint32_t valbit = (newvalp[(bit / 32)] >> (bit & 0x1f)) & 1; - uint32_t tribit = (newtrip[(bit / 32)] >> (bit & 0x1f)) & 1; - *m_writep++ = "01zz"[valbit | (tribit << 1)]; - } - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} -void VerilatedVcd::fullDouble(uint32_t code, const double newval) { - // cppcheck-suppress invalidPointerCast - (*(reinterpret_cast(oldp(code)))) = newval; - // Buffer can't overflow before VL_SNPRINTF; we sized during declaration - VL_SNPRINTF(m_writep, m_wrChunkSize, "r%.16g", newval); - m_writep += std::strlen(m_writep); - *m_writep++ = ' '; - m_writep = writeCode(m_writep, code); - *m_writep++ = '\n'; - bufferCheck(); -} - -#endif // VL_TRACE_VCD_OLD_API - -//====================================================================== -//====================================================================== -//====================================================================== - -#ifdef VERILATED_VCD_TEST -#include - -extern void verilated_trace_imp_selftest(); - -uint32_t v1, v2, s1, s2[3]; -uint32_t tri96[3]; -uint32_t tri96__tri[3]; -uint64_t quad96[2]; -uint64_t tquad; -uint64_t tquad__tri; -uint8_t ch; -uint64_t timestamp = 1; -double doub = 0.0; -float flo = 0.0f; - -void vcdInit(void*, VerilatedVcd* vcdp, uint32_t) { - vcdp->scopeEscape('.'); - vcdp->pushNamePrefix("top."); - /**/ vcdp->declBus(0x2, "v1", -1, 0, 5, 1); - /**/ vcdp->declBus(0x3, "v2", -1, 0, 6, 1); - /**/ vcdp->pushNamePrefix("sub1."); - /***/ vcdp->declBit(0x4, "s1", -1, 0); - /***/ vcdp->declBit(0x5, "ch", -1, 0); - /**/ vcdp->popNamePrefix(); - /**/ vcdp->pushNamePrefix("sub2."); - /***/ vcdp->declArray(0x6, "s2", -1, 0, 40, 3); - /**/ vcdp->popNamePrefix(); - vcdp->popNamePrefix(); - // Note need to add 3 for next code. - vcdp->pushNamePrefix("top2."); - /**/ vcdp->declBus(0x2, "t2v1", -1, 0, 4, 1); - /**/ vcdp->declTriBit(0x10, "io1", -1, 0); - /**/ vcdp->declTriBus(0x12, "io5", -1, 0, 4, 0); - /**/ vcdp->declTriArray(0x16, "io96", -1, 0, 95, 0); - /**/ // Note need to add 6 for next code. - /**/ vcdp->declDouble(0x1c, "doub", -1, 0); - /**/ // Note need to add 2 for next code. - /**/ vcdp->declArray(0x20, "q2", -1, 0, 95, 0); - /**/ // Note need to add 4 for next code. - /**/ vcdp->declTriQuad(0x24, "tq", -1, 0, 63, 0); - /**/ // Note need to add 4 for next code. - vcdp->popNamePrefix(); -} - -void vcdFull(void*, VerilatedVcd* vcdp) { - vcdp->fullBus(0x2, v1, 5); - vcdp->fullBus(0x3, v2, 7); - vcdp->fullBit(0x4, s1); - vcdp->fullBus(0x5, ch, 2); - vcdp->fullArray(0x6, &s2[0], 38); - vcdp->fullTriBit(0x10, tri96[0] & 1, tri96__tri[0] & 1); - vcdp->fullTriBus(0x12, tri96[0] & 0x1f, tri96__tri[0] & 0x1f, 5); - vcdp->fullTriArray(0x16, tri96, tri96__tri, 96); - vcdp->fullDouble(0x1c, doub); - vcdp->fullArray(0x20, &quad96[0], 96); - vcdp->fullTriQuad(0x24, tquad, tquad__tri, 64); -} - -void vcdChange(void*, VerilatedVcd* vcdp) { - vcdp->chgBus(0x2, v1, 5); - vcdp->chgBus(0x3, v2, 7); - vcdp->chgBit(0x4, s1); - vcdp->chgBus(0x5, ch, 2); - vcdp->chgArray(0x6, &s2[0], 38); - vcdp->chgTriBit(0x10, tri96[0] & 1, tri96__tri[0] & 1); - vcdp->chgTriBus(0x12, tri96[0] & 0x1f, tri96__tri[0] & 0x1f, 5); - vcdp->chgTriArray(0x16, tri96, tri96__tri, 96); - vcdp->chgDouble(0x1c, doub); - vcdp->chgArray(0x20, &quad96[0], 96); - vcdp->chgTriQuad(0x24, tquad, tquad__tri, 64); -} - -// clang-format off -void vcdTestMain(const char* filenamep) { - verilated_trace_imp_selftest(); - - v1 = v2 = s1 = 0; - s2[0] = s2[1] = s2[2] = 0; - tri96[2] = tri96[1] = tri96[0] = 0; - tri96__tri[2] = tri96__tri[1] = tri96__tri[0] = ~0; - quad96[1] = quad96[0] = 0; - ch = 0; - doub = 0; - tquad = tquad__tri = 0; - { - VerilatedVcdC* vcdp = new VerilatedVcdC; - vcdp->evcd(true); - vcdp->set_time_unit("1ms"); - vcdp->set_time_unit(std::string{"1ms"}); - vcdp->set_time_resolution("1ns"); - vcdp->set_time_resolution(std::string{"1ns"}); - vcdp->spTrace()->addInitCb(&vcdInit, 0); - vcdp->spTrace()->addFullCb(&vcdFull, 0); - vcdp->spTrace()->addChgCb(&vcdChange, 0); - vcdp->open(filenamep); - // Dumping - vcdp->dump(++timestamp); - v1 = 0xfff; - tri96[2] = 4; tri96[1] = 2; tri96[0] = 1; - tri96__tri[2] = tri96__tri[1] = tri96__tri[0] = ~0; // Still tri - quad96[1] = 0xffffffff; quad96[0] = 0; - doub = 1.5; - flo = 1.4f; - vcdp->dump(++timestamp); - v2 = 0x1; - s2[1] = 2; - tri96__tri[2] = tri96__tri[1] = tri96__tri[0] = 0; // enable w/o data change - quad96[1] = 0; quad96[0] = ~0; - doub = -1.66e13; - flo = 0.123f; - tquad = 0x00ff00ff00ff00ffULL; - tquad__tri = 0x0000fffff0000ffffULL; - vcdp->dump(++timestamp); - ch = 2; - tri96[2] = ~4; tri96[1] = ~2; tri96[0] = ~1; - doub = -3.33e-13; - vcdp->dump(++timestamp); - vcdp->dump(++timestamp); -# ifdef VERILATED_VCD_TEST_64BIT - const uint64_t bytesPerDump = 15ULL; - for (uint64_t i = 0; i < ((1ULL << 32) / bytesPerDump); i++) { - v1 = i; - vcdp->dump(++timestamp); - } -# endif - vcdp->close(); - VL_DO_CLEAR(delete vcdp, vcdp = nullptr); - } -} -#endif -// clang-format on - -//******************************************************************** -// ;compile-command: "v4make test_regress/t/t_trace_c_api.pl" -// -// Local Variables: -// End: diff --git a/include/verilated_vcd_c.h b/include/verilated_vcd_c.h index 5fbb6022c..b1485e13b 100644 --- a/include/verilated_vcd_c.h +++ b/include/verilated_vcd_c.h @@ -164,156 +164,6 @@ public: void declQuad(uint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); void declArray(uint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); void declDouble(uint32_t code, const char* name, bool array, int arraynum); - -#ifdef VL_TRACE_VCD_OLD_API - //========================================================================= - // Note: These are only for testing for backward compatibility with foreign - // code and is not used by Verilator. Do not use these as there is no - // guarantee of functionality. - - void declTriBit(uint32_t code, const char* name, bool array, int arraynum); - void declTriBus(uint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); - void declTriQuad(uint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); - void declTriArray(uint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); - - void fullBit(uint32_t* oldp, CData newval) { fullBit(oldp - this->oldp(0), newval); } - void fullCData(uint32_t* oldp, CData newval, int bits) { - fullBus(oldp - this->oldp(0), newval, bits); - } - void fullSData(uint32_t* oldp, SData newval, int bits) { - fullBus(oldp - this->oldp(0), newval, bits); - } - void fullIData(uint32_t* oldp, IData newval, int bits) { - fullBus(oldp - this->oldp(0), newval, bits); - } - void fullQData(uint32_t* oldp, QData newval, int bits) { - fullQuad(oldp - this->oldp(0), newval, bits); - } - void fullWData(uint32_t* oldp, const WData* newvalp, int bits) { - fullArray(oldp - this->oldp(0), newvalp, bits); - } - void fullDouble(uint32_t* oldp, double newval) { fullDouble(oldp - this->oldp(0), newval); } - - inline void chgBit(uint32_t* oldp, CData newval) { chgBit(oldp - this->oldp(0), newval); } - inline void chgCData(uint32_t* oldp, CData newval, int bits) { - chgBus(oldp - this->oldp(0), newval, bits); - } - inline void chgSData(uint32_t* oldp, SData newval, int bits) { - chgBus(oldp - this->oldp(0), newval, bits); - } - inline void chgIData(uint32_t* oldp, IData newval, int bits) { - chgBus(oldp - this->oldp(0), newval, bits); - } - inline void chgQData(uint32_t* oldp, QData newval, int bits) { - chgQuad(oldp - this->oldp(0), newval, bits); - } - inline void chgWData(uint32_t* oldp, const WData* newvalp, int bits) { - chgArray(oldp - this->oldp(0), newvalp, bits); - } - inline void chgDouble(uint32_t* oldp, double newval) { - chgDouble(oldp - this->oldp(0), newval); - } - - // Inside dumping routines, dump one signal, faster when not inlined - // due to code size reduction. - void fullBit(uint32_t code, const uint32_t newval); - void fullBus(uint32_t code, const uint32_t newval, int bits); - void fullQuad(uint32_t code, const uint64_t newval, int bits); - void fullArray(uint32_t code, const uint32_t* newvalp, int bits); - void fullArray(uint32_t code, const uint64_t* newvalp, int bits); - void fullTriBit(uint32_t code, const uint32_t newval, const uint32_t newtri); - void fullTriBus(uint32_t code, const uint32_t newval, const uint32_t newtri, int bits); - void fullTriQuad(uint32_t code, const uint64_t newval, const uint64_t newtri, int bits); - void fullTriArray(uint32_t code, const uint32_t* newvalp, const uint32_t* newtrip, int bits); - void fullDouble(uint32_t code, const double newval); - - // Inside dumping routines, dump one signal if it has changed. - // We do want to inline these to avoid calls when the value did not change. - inline void chgBit(uint32_t code, const uint32_t newval) { - const uint32_t diff = oldp(code)[0] ^ newval; - if (VL_UNLIKELY(diff)) fullBit(code, newval); - } - inline void chgBus(uint32_t code, const uint32_t newval, int bits) { - const uint32_t diff = oldp(code)[0] ^ newval; - if (VL_UNLIKELY(diff)) { - if (VL_UNLIKELY(bits == 32 || (diff & ((1U << bits) - 1)))) { - fullBus(code, newval, bits); - } - } - } - inline void chgQuad(uint32_t code, const uint64_t newval, int bits) { - const uint64_t diff = (*(reinterpret_cast(oldp(code)))) ^ newval; - if (VL_UNLIKELY(diff)) { - if (VL_UNLIKELY(bits == 64 || (diff & ((1ULL << bits) - 1)))) { - fullQuad(code, newval, bits); - } - } - } - inline void chgArray(uint32_t code, const uint32_t* newvalp, int bits) { - for (int word = 0; word < (((bits - 1) / 32) + 1); ++word) { - if (VL_UNLIKELY(oldp(code)[word] ^ newvalp[word])) { - fullArray(code, newvalp, bits); - return; - } - } - } - inline void chgArray(uint32_t code, const uint64_t* newvalp, int bits) { - for (int word = 0; word < (((bits - 1) / 64) + 1); ++word) { - if (VL_UNLIKELY(*(reinterpret_cast(oldp(code + 2 * word))) - ^ newvalp[word])) { - fullArray(code, newvalp, bits); - return; - } - } - } - inline void chgTriBit(uint32_t code, const uint32_t newval, const uint32_t newtri) { - const uint32_t diff = ((oldp(code)[0] ^ newval) | (oldp(code)[1] ^ newtri)); - if (VL_UNLIKELY(diff)) { - // Verilator 3.510 and newer provide clean input, so the below - // is only for back compatibility - if (VL_UNLIKELY(diff & 1)) { // Change after clean? - fullTriBit(code, newval, newtri); - } - } - } - inline void chgTriBus(uint32_t code, const uint32_t newval, const uint32_t newtri, int bits) { - const uint32_t diff = ((oldp(code)[0] ^ newval) | (oldp(code)[1] ^ newtri)); - if (VL_UNLIKELY(diff)) { - if (VL_UNLIKELY(bits == 32 || (diff & ((1U << bits) - 1)))) { - fullTriBus(code, newval, newtri, bits); - } - } - } - inline void chgTriQuad(uint32_t code, const uint64_t newval, const uint64_t newtri, int bits) { - const uint64_t diff = (((*(reinterpret_cast(oldp(code)))) ^ newval) - | ((*(reinterpret_cast(oldp(code + 1)))) ^ newtri)); - if (VL_UNLIKELY(diff)) { - if (VL_UNLIKELY(bits == 64 || (diff & ((1ULL << bits) - 1)))) { - fullTriQuad(code, newval, newtri, bits); - } - } - } - inline void chgTriArray(uint32_t code, const uint32_t* newvalp, const uint32_t* newtrip, - int bits) { - for (int word = 0; word < (((bits - 1) / 32) + 1); ++word) { - if (VL_UNLIKELY((oldp(code)[word * 2] ^ newvalp[word]) - | (oldp(code)[word * 2 + 1] ^ newtrip[word]))) { - fullTriArray(code, newvalp, newtrip, bits); - return; - } - } - } - inline void chgDouble(uint32_t code, const double newval) { - // cppcheck-suppress invalidPointerCast - if (VL_UNLIKELY((*(reinterpret_cast(oldp(code)))) != newval)) { - fullDouble(code, newval); - } - } - - // METHODS - // Old/standalone API only - void evcd(bool flag) { m_evcd = flag; } -#endif // VL_TRACE_VCD_OLD_API }; #ifndef DOXYGEN @@ -396,16 +246,6 @@ public: // Internal class access inline VerilatedVcd* spTrace() { return &m_sptrace; } - -#ifdef VL_TRACE_VCD_OLD_API - //========================================================================= - // Note: These are only for testing for backward compatibility with foreign - // code and is not used by Verilator. Do not use these as there is no - // guarantee of functionality. - - // Use evcd format - void evcd(bool flag) VL_MT_UNSAFE_ONE { m_sptrace.evcd(flag); } -#endif }; #endif // guard diff --git a/test_regress/t/t_trace_c_api.cpp b/test_regress/t/t_trace_c_api.cpp deleted file mode 100644 index d2d3f0921..000000000 --- a/test_regress/t/t_trace_c_api.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// -*- mode: C++; c-file-style: "cc-mode" -*- -// -// DESCRIPTION: Verilator: Verilog Test module -// -// This file ONLY is placed under the Creative Commons Public Domain, for -// any use, without warranty, 2008 by Wilson Snyder. -// SPDX-License-Identifier: CC0-1.0 - -#include -#include - -#include VM_PREFIX_INCLUDE - -double sc_time_stamp() { return 0; } - -extern void vcdTestMain(const char* filenamep); - -int main(int argc, char** argv, char** env) { - const char* filenamep = VL_STRINGIFY(TEST_OBJ_DIR) "/simx.vcd"; - printf("Writing %s\n", filenamep); - vcdTestMain(filenamep); - printf("*-* All Finished *-*\n"); - return 0; -} diff --git a/test_regress/t/t_trace_c_api.pl b/test_regress/t/t_trace_c_api.pl deleted file mode 100755 index 541970008..000000000 --- a/test_regress/t/t_trace_c_api.pl +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env perl -if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; } -# DESCRIPTION: Verilator: Verilog Test driver/expect definition -# -# Copyright 2003-2013 by Wilson Snyder. This program is free software; you -# can redistribute it and/or modify it under the terms of either the GNU -# Lesser General Public License Version 3 or the Perl Artistic License -# Version 2.0. -# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 - -scenarios(vlt => 1); - -compile( - make_top_shell => 0, - make_main => 0, - v_flags2 => ["--trace --exe $Self->{t_dir}/t_trace_c_api.cpp", - "-CFLAGS -DVERILATED_VCD_TEST", - "-CFLAGS -DVL_TRACE_VCD_OLD_API"], - ); - -execute( - check_finished => 1, - ); - -# vcddiff bug crashes -#vcd_identical("$Self->{obj_dir}/simx.vcd", -# $Self->{golden_filename}); - -ok(1); -1; diff --git a/test_regress/t/t_trace_c_api.v b/test_regress/t/t_trace_c_api.v deleted file mode 100644 index 7b440cb91..000000000 --- a/test_regress/t/t_trace_c_api.v +++ /dev/null @@ -1,8 +0,0 @@ -// DESCRIPTION: Verilator: Verilog Test module -// -// This file ONLY is placed under the Creative Commons Public Domain, for -// any use, without warranty, 2013 by Wilson Snyder. -// SPDX-License-Identifier: CC0-1.0 - -module t; -endmodule diff --git a/test_regress/t/t_trace_complex_old_api.pl b/test_regress/t/t_trace_complex_old_api.pl deleted file mode 100755 index 8136d3f79..000000000 --- a/test_regress/t/t_trace_complex_old_api.pl +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env perl -if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; } -# DESCRIPTION: Verilator: Verilog Test driver/expect definition -# -# Copyright 2003-2009 by Wilson Snyder. This program is free software; you -# can redistribute it and/or modify it under the terms of either the GNU -# Lesser General Public License Version 3 or the Perl Artistic License -# Version 2.0. -# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 - -# Same test as t_trace_complex, but exercising the old VCD tracing API - -scenarios(vlt => 1); - -top_filename("t/t_trace_complex.v"); -golden_filename("t/t_trace_complex.out"); - -compile( - verilator_flags2 => ['--cc --trace -CFLAGS -DVL_TRACE_VCD_OLD_API'], - ); - -execute( - check_finished => 1, - ); - -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_strp /); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_strp_strp /); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arrp /); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arrp_arrp /); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arrp_strp /); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arru\[/); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arru_arru\[/); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arru_arrp\[/); -file_grep("$Self->{obj_dir}/simx.vcd", qr/ v_arru_strp\[/); - -vcd_identical("$Self->{obj_dir}/simx.vcd", $Self->{golden_filename}); - -ok(1); -1;