From 3e8cf26c1ae8a9f2a6dc6b3bfc6b11aed82eeee2 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Tue, 4 Nov 2008 17:19:59 -0500 Subject: [PATCH] Fix coverage hierarchy being backwards with inlining. --- Changes | 2 ++ bin/verilator | 15 +++++++++++++++ src/V3Inline.cpp | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index 1eb8bb4dd..87fe2ceac 100644 --- a/Changes +++ b/Changes @@ -11,6 +11,8 @@ indicates the contributor was also the author of the fix; Thanks! **** Fix 'for' under 'generate-for' causing error; bug38. [Rafael Shirakawa] +**** Fix coverage hierarchy being backwards with inlining. [Vasu Arasanipalai] + **** Fix GCC 4.3 compile error; bug35. [Lane Brooks] * Verilator 3.680 2008/10/08 diff --git a/bin/verilator b/bin/verilator index 4594d90f1..2d8183b8a 100755 --- a/bin/verilator +++ b/bin/verilator @@ -2111,6 +2111,21 @@ Verilator makes standard VCD (Value Change Dump) files. They are viewable with the public domain Dinotrace or GtkWave programs, or any of the many commercial offerings. +=item How do I reduce the size of large waveform (trace) files? + +First, instead of calling SpTraceVcdCFile->open at the beginning of time, +delay calling it until the time stamp where you want to tracing to begin. +Likewise you can also call SpTraceVcdCFile->open before the end of time +(perhaps a short period after you detect a verification error.) + +Next, add /*verilator tracing_off*/ to any very low level modules you never +want to trace (such as perhaps library cells). Finally, use the +--trace-depth option to limit the depth of tracing, for example +--trace-depth 1 to see only the top level signals. + +Also be sure you write your trace files to a local disk, instead of to a +network disk. Network disks are generally far slower. + =item How do I do coverage analysis? Verilator supports both block (line) coverage and user inserted functional diff --git a/src/V3Inline.cpp b/src/V3Inline.cpp index 9958dc809..85058f026 100644 --- a/src/V3Inline.cpp +++ b/src/V3Inline.cpp @@ -249,7 +249,7 @@ private: virtual void visit(AstCoverDecl* nodep, AstNUser*) { // Fix path in coverage statements if (m_cellp) { - nodep->hier(nodep->hier()+"."+m_cellp->prettyName()); + nodep->hier(m_cellp->prettyName()+"."+nodep->hier()); } nodep->iterateChildren(*this); }