diff --git a/src/V3AstNodeOther.h b/src/V3AstNodeOther.h index 6f7e3195b..1bf9eb2f9 100644 --- a/src/V3AstNodeOther.h +++ b/src/V3AstNodeOther.h @@ -2989,14 +2989,17 @@ class AstCoverDecl final : public AstNodeStmt { string m_linescov; int m_offset; // Offset column numbers to uniq-ify IFs int m_binNum = 0; // Set by V3EmitCSyms to tell final V3Emit what to increment + bool m_isToggle; + public: AstCoverDecl(FileLine* fl, const string& page, const string& comment, const string& linescov, - int offset) + int offset, bool isToggle) : ASTGEN_SUPER_CoverDecl(fl) , m_page{page} , m_text{comment} , m_linescov{linescov} - , m_offset{offset} {} + , m_offset{offset} + , m_isToggle{isToggle} {} ASTGEN_MEMBERS_AstCoverDecl; const char* broken() const override { if (m_dataDeclp @@ -3016,6 +3019,7 @@ public: const string& linescov() const { return m_linescov; } const string& page() const { return m_page; } const string& hier() const { return m_hier; } + bool isToggle() const { return m_isToggle; } void hier(const string& flag) { m_hier = flag; } void comment(const string& flag) { m_text = flag; } bool sameNode(const AstNode* samep) const override { @@ -3032,6 +3036,8 @@ public: }; class AstCoverInc final : public AstNodeStmt { // Coverage analysis point; increment coverage count + // @astgen op1 := toggleExprp : Optional[AstNodeExpr] // [After V3Clock] Expression to which + // the node corresponds. Used only in toggle coverage // // @astgen ptr := m_declp : AstCoverDecl // [After V3CoverageJoin] Declaration public: diff --git a/src/V3Clean.cpp b/src/V3Clean.cpp index 35a84f778..79e26b5a9 100644 --- a/src/V3Clean.cpp +++ b/src/V3Clean.cpp @@ -251,6 +251,10 @@ class CleanVisitor final : public VNVisitor { iterateChildren(nodep); ensureCleanAndNext(nodep->valuep()); } + void visit(AstCoverInc* nodep) override { + iterateChildren(nodep); + if (nodep->toggleExprp()) ensureClean(nodep->toggleExprp()); + } void visit(AstTypedef* nodep) override { // No cleaning, or would loose pointer to enum iterateChildren(nodep); diff --git a/src/V3Clock.cpp b/src/V3Clock.cpp index 72e78ad57..60620d81d 100644 --- a/src/V3Clock.cpp +++ b/src/V3Clock.cpp @@ -100,11 +100,12 @@ class ClockVisitor final : public VNVisitor { // if (debug()) nodep->dumpTree("- ct: "); // COVERTOGGLE(INC, ORIG, CHANGE) -> // IF(ORIG ^ CHANGE) { INC; CHANGE = ORIG; } - AstNode* const incp = nodep->incp()->unlinkFrBack(); + AstCoverInc* const incp = nodep->incp()->unlinkFrBack(); AstNodeExpr* const origp = nodep->origp()->unlinkFrBack(); AstNodeExpr* const changeWrp = nodep->changep()->unlinkFrBack(); AstNodeExpr* const changeRdp = ConvertWriteRefsToRead::main(changeWrp->cloneTree(false)); AstNodeExpr* comparedp = nullptr; + incp->toggleExprp(origp->cloneTree(false)); // Xor will optimize better than Eq, when CoverToggle has bit selects, // but can only use Xor with non-opaque types if (const AstBasicDType* const bdtypep diff --git a/src/V3Coverage.cpp b/src/V3Coverage.cpp index 68e98835c..0cda27351 100644 --- a/src/V3Coverage.cpp +++ b/src/V3Coverage.cpp @@ -182,7 +182,7 @@ class CoverageVisitor final : public VNVisitor { AstCoverInc* newCoverInc(FileLine* fl, const string& hier, const string& page_prefix, const string& comment, const string& linescov, int offset, - const string& trace_var_name) { + const string& trace_var_name, const bool isToggle) { // We could use the basename of the filename to the page, but seems // better for code from an include file to be listed under the // module using it rather than the include file. @@ -191,7 +191,8 @@ class CoverageVisitor final : public VNVisitor { // Someday the user might be allowed to specify a different page suffix const string page = page_prefix + "/" + m_modp->prettyName(); - AstCoverDecl* const declp = new AstCoverDecl{fl, page, comment, linescov, offset}; + AstCoverDecl* const declp + = new AstCoverDecl{fl, page, comment, linescov, offset, isToggle}; declp->hier(hier); m_modp->addStmtsp(declp); UINFO(9, "new " << declp); @@ -319,7 +320,7 @@ class CoverageVisitor final : public VNVisitor { lineTrack(nodep); AstNode* const newp = newCoverInc(nodep->fileline(), "", "v_line", "block", linesCov(m_state, nodep), - 0, traceNameForLine(nodep, "block")); + 0, traceNameForLine(nodep, "block"), false); insertProcStatement(nodep, newp); } } @@ -357,7 +358,7 @@ class CoverageVisitor final : public VNVisitor { lineTrack(nodep); AstNode* const newp = newCoverInc(nodep->fileline(), "", "v_line", "block", linesCov(m_state, nodep), - 0, traceNameForLine(nodep, "block")); + 0, traceNameForLine(nodep, "block"), false); insertProcStatement(nodep, newp); } } @@ -409,7 +410,7 @@ class CoverageVisitor final : public VNVisitor { AstCoverToggle* const newp = new AstCoverToggle{ varp->fileline(), newCoverInc(varp->fileline(), "", "v_toggle", - hierPrefix + varp->name() + above.m_comment, "", 0, ""), + hierPrefix + varp->name() + above.m_comment, "", 0, "", true), above.m_varRefp->cloneTree(false), above.m_chgRefp->cloneTree(false)}; m_modp->addStmtsp(newp); } @@ -547,7 +548,7 @@ class CoverageVisitor final : public VNVisitor { nodep->thenp(new AstExprStmt{thenp->fileline(), newCoverInc(nodep->fileline(), "", "v_branch", "cond_then", linesCov(m_state, nodep), 0, - traceNameForLine(nodep, "cond_then")), + traceNameForLine(nodep, "cond_then"), false), thenp}); m_state = lastState; createHandle(nodep); @@ -556,7 +557,7 @@ class CoverageVisitor final : public VNVisitor { nodep->elsep(new AstExprStmt{elsep->fileline(), newCoverInc(nodep->fileline(), "", "v_branch", "cond_else", linesCov(m_state, nodep), 1, - traceNameForLine(nodep, "cond_else")), + traceNameForLine(nodep, "cond_else"), false), elsep}); m_state = lastState; @@ -616,13 +617,13 @@ class CoverageVisitor final : public VNVisitor { UINFO(4, " COVER-branch: " << nodep); nodep->addThensp(newCoverInc(nodep->fileline(), "", "v_branch", "if", linesCov(ifState, nodep), 0, - traceNameForLine(nodep, "if"))); + traceNameForLine(nodep, "if"), false)); // The else has a column offset of 1 to uniquify it relative to the if // As "if" and "else" are more than one character wide, this won't overlap // another token nodep->addElsesp(newCoverInc(nodep->fileline(), "", "v_branch", "else", linesCov(elseState, nodep), 1, - traceNameForLine(nodep, "else"))); + traceNameForLine(nodep, "else"), false)); } // If/else attributes to each block as non-branch coverage else if (first_elsif || cont_elsif) { @@ -630,7 +631,7 @@ class CoverageVisitor final : public VNVisitor { if (ifState.lineCoverageOn(nodep)) { nodep->addThensp(newCoverInc(nodep->fileline(), "", "v_line", "elsif", linesCov(ifState, nodep), 0, - traceNameForLine(nodep, "elsif"))); + traceNameForLine(nodep, "elsif"), false)); } // and we don't insert the else as the child if-else will do so } else { @@ -639,13 +640,13 @@ class CoverageVisitor final : public VNVisitor { UINFO(4, " COVER-half-if: " << nodep); nodep->addThensp(newCoverInc(nodep->fileline(), "", "v_line", "if", linesCov(ifState, nodep), 0, - traceNameForLine(nodep, "if"))); + traceNameForLine(nodep, "if"), false)); } if (elseState.lineCoverageOn(nodep)) { UINFO(4, " COVER-half-el: " << nodep); nodep->addElsesp(newCoverInc(nodep->fileline(), "", "v_line", "else", linesCov(elseState, nodep), 1, - traceNameForLine(nodep, "else"))); + traceNameForLine(nodep, "else"), false)); } } m_state = lastState; @@ -668,7 +669,7 @@ class CoverageVisitor final : public VNVisitor { UINFO(4, " COVER: " << nodep); nodep->addStmtsp(newCoverInc(nodep->fileline(), "", "v_line", "case", linesCov(m_state, nodep), 0, - traceNameForLine(nodep, "case"))); + traceNameForLine(nodep, "case"), false)); } } } @@ -683,7 +684,7 @@ class CoverageVisitor final : public VNVisitor { lineTrack(nodep); nodep->addCoverincsp(newCoverInc(nodep->fileline(), m_beginHier, "v_user", "cover", linesCov(m_state, nodep), 0, - m_beginHier + "_vlCoverageUserTrace")); + m_beginHier + "_vlCoverageUserTrace", false)); } } void visit(AstStop* nodep) override { @@ -755,8 +756,8 @@ class CoverageVisitor final : public VNVisitor { } comment += ") => "; comment += (m_objective ? '1' : '0'); - AstNode* const newp - = newCoverInc(fl, "", "v_expr", comment, "", 0, traceNameForLine(nodep, name)); + AstNode* const newp = newCoverInc(fl, "", "v_expr", comment, "", 0, + traceNameForLine(nodep, name), false); UASSERT_OBJ(condp, nodep, "No terms in expression coverage branch"); AstIf* const ifp = new AstIf{fl, condp, newp, nullptr}; ifp->user2(true); diff --git a/src/V3EmitCFunc.h b/src/V3EmitCFunc.h index b3720f3e7..20a99bfd5 100644 --- a/src/V3EmitCFunc.h +++ b/src/V3EmitCFunc.h @@ -662,41 +662,58 @@ public: iterateChildrenConst(nodep); } void visit(AstCoverDecl* nodep) override { - putns(nodep, "vlSelf->__vlCoverInsert("); // As Declared in emitCoverageDecl - puts("&(vlSymsp->__Vcoverage["); - puts(cvtToStr(nodep->dataDeclThisp()->binNum())); - puts("])"); - // If this isn't the first instantiation of this module under this - // design, don't really count the bucket, and rely on verilator_cov to - // aggregate counts. This is because Verilator combines all - // hierarchies itself, and if verilator_cov also did it, you'd end up - // with (number-of-instant) times too many counts in this bin. - puts(", first"); // Enable, passed from __Vconfigure parameter - puts(", "); - putsQuoted(protect(nodep->fileline()->filename())); - puts(", "); - puts(cvtToStr(nodep->fileline()->lineno())); - puts(", "); - puts(cvtToStr(nodep->offset() + nodep->fileline()->firstColumn())); - puts(", "); - putsQuoted((!nodep->hier().empty() ? "." : "") - + protectWordsIf(nodep->hier(), nodep->protect())); - puts(", "); - putsQuoted(protectWordsIf(nodep->page(), nodep->protect())); - puts(", "); - putsQuoted(protectWordsIf(nodep->comment(), nodep->protect())); - puts(", "); - putsQuoted(nodep->linescov()); - puts(");\n"); + std::vector pointSuffixes; + if (nodep->isToggle()) { + // Changes 0 -> 1 and 1 -> 0 have separate counters + pointSuffixes = {"_0", "_1"}; + } else { + pointSuffixes = {""}; + } + for (size_t i = 0; i < pointSuffixes.size(); i++) { + putns(nodep, "vlSelf->__vlCoverInsert("); // As Declared in emitCoverageDecl + puts("&(vlSymsp->__Vcoverage["); + puts(cvtToStr(nodep->dataDeclThisp()->binNum() + i)); + puts("])"); + // If this isn't the first instantiation of this module under this + // design, don't really count the bucket, and rely on verilator_cov to + // aggregate counts. This is because Verilator combines all + // hierarchies itself, and if verilator_cov also did it, you'd end up + // with (number-of-instant) times too many counts in this bin. + puts(", first"); // Enable, passed from __Vconfigure parameter + puts(", "); + putsQuoted(protect(nodep->fileline()->filename())); + puts(", "); + puts(cvtToStr(nodep->fileline()->lineno())); + puts(", "); + puts(cvtToStr(nodep->offset() + nodep->fileline()->firstColumn())); + puts(", "); + putsQuoted((!nodep->hier().empty() ? "." : "") + + protectWordsIf(nodep->hier(), nodep->protect())); + puts(", "); + putsQuoted(protectWordsIf(nodep->page(), nodep->protect())); + puts(", "); + putsQuoted(protectWordsIf(nodep->comment() + pointSuffixes[i], nodep->protect())); + puts(", "); + putsQuoted(nodep->linescov()); + puts(");\n"); + } } void visit(AstCoverInc* nodep) override { if (v3Global.opt.threads() > 1) { putns(nodep, "vlSymsp->__Vcoverage["); puts(cvtToStr(nodep->declp()->dataDeclThisp()->binNum())); + if (nodep->toggleExprp()) { + puts(" + "); + iterateConst(nodep->toggleExprp()); + } puts("].fetch_add(1, std::memory_order_relaxed);\n"); } else { putns(nodep, "++(vlSymsp->__Vcoverage["); puts(cvtToStr(nodep->declp()->dataDeclThisp()->binNum())); + if (nodep->toggleExprp()) { + puts(" + "); + iterateConst(nodep->toggleExprp()); + } puts("]);\n"); } } diff --git a/src/V3EmitCSyms.cpp b/src/V3EmitCSyms.cpp index a07b431c6..9bdd5874e 100644 --- a/src/V3EmitCSyms.cpp +++ b/src/V3EmitCSyms.cpp @@ -380,6 +380,11 @@ class EmitCSyms final : EmitCBaseVisitorConst { // Assign numbers to all bins, so we know how big of an array to use if (!nodep->dataDeclNullp()) { // else duplicate we don't need code for nodep->binNum(m_coverBins++); + if (nodep->isToggle()) { + // Toggle coverage coverpoint requires additional counter, because + // changes of values 0 -> 1 and 1 -> 0 are counted separately. + m_coverBins++; + } } } void visit(AstCFunc* nodep) override { diff --git a/test_regress/t/t_cover_toggle.out b/test_regress/t/t_cover_toggle.out index d68a87d6d..bca033964 100644 --- a/test_regress/t/t_cover_toggle.out +++ b/test_regress/t/t_cover_toggle.out @@ -10,7 +10,7 @@ clk, check_real, check_array_real, check_string ); - 000019 input clk; +~000010 input clk; input real check_real; // Check issue #2741 input real check_array_real [1:0]; input string check_string; // Check issue #2766 @@ -23,9 +23,9 @@ logic b; } str_t; -%000002 reg toggle; initial toggle='0; +%000001 reg toggle; initial toggle='0; -%000002 str_t stoggle; initial stoggle='0; +%000001 str_t stoggle; initial stoggle='0; union { real val1; // TODO use bit [7:0] here @@ -34,11 +34,11 @@ const reg aconst = '0; -%000002 reg [1:0][1:0] ptoggle; initial ptoggle=0; +%000001 reg [1:0][1:0] ptoggle; initial ptoggle=0; integer cyc; initial cyc=1; -~000011 wire [7:0] cyc_copy = cyc[7:0]; -%000002 wire toggle_up; +%000006 wire [7:0] cyc_copy = cyc[7:0]; +%000001 wire toggle_up; typedef struct { int q[$]; @@ -120,29 +120,40 @@ // t.a1 and t.a2 collapse to a count of 2 - 000038 input clk; + 000020 input clk; -%000004 input toggle; - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) +%000002 input toggle; + // CHECK_COVER(-1,"top.t.a*","toggle_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_1",2) + // (t.a1 and t.a2) -~000022 input [7:0] cyc_copy; - // CHECK_COVER(-1,"top.t.a*","cyc_copy[0]",22) - // CHECK_COVER(-2,"top.t.a*","cyc_copy[1]",10) - // CHECK_COVER(-3,"top.t.a*","cyc_copy[2]",4) - // CHECK_COVER(-4,"top.t.a*","cyc_copy[3]",2) - // CHECK_COVER(-5,"top.t.a*","cyc_copy[4]",0) - // CHECK_COVER(-6,"top.t.a*","cyc_copy[5]",0) - // CHECK_COVER(-7,"top.t.a*","cyc_copy[6]",0) - // CHECK_COVER(-8,"top.t.a*","cyc_copy[7]",0) +~000012 input [7:0] cyc_copy; + // CHECK_COVER(-1,"top.t.a*","cyc_copy[0]_0",10) + // CHECK_COVER(-2,"top.t.a*","cyc_copy[0]_1",12) + // CHECK_COVER(-3,"top.t.a*","cyc_copy[1]_0",4) + // CHECK_COVER(-4,"top.t.a*","cyc_copy[1]_1",6) + // CHECK_COVER(-5,"top.t.a*","cyc_copy[2]_0",2) + // CHECK_COVER(-6,"top.t.a*","cyc_copy[2]_1",2) + // CHECK_COVER(-7,"top.t.a*","cyc_copy[3]_0",0) + // CHECK_COVER(-8,"top.t.a*","cyc_copy[3]_1",2) + // CHECK_COVER(-9,"top.t.a*","cyc_copy[4]_0",0) + // CHECK_COVER(-10,"top.t.a*","cyc_copy[4]_1",0) + // CHECK_COVER(-11,"top.t.a*","cyc_copy[5]_0",0) + // CHECK_COVER(-12,"top.t.a*","cyc_copy[5]_1",0) + // CHECK_COVER(-13,"top.t.a*","cyc_copy[6]_0",0) + // CHECK_COVER(-14,"top.t.a*","cyc_copy[6]_1",0) + // CHECK_COVER(-15,"top.t.a*","cyc_copy[7]_0",0) + // CHECK_COVER(-16,"top.t.a*","cyc_copy[7]_1",0) -%000004 reg toggle_internal; - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) +%000002 reg toggle_internal; + // CHECK_COVER(-1,"top.t.a*","toggle_internal_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_internal_1",2) + // (t.a1 and t.a2) -%000004 output reg toggle_up; - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) +%000002 output reg toggle_up; + // CHECK_COVER(-1,"top.t.a*","toggle_up_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_up_1",2) + // (t.a1 and t.a2) always @ (posedge clk) begin toggle_internal <= toggle; @@ -155,10 +166,11 @@ clk, toggle_up ); - 000019 input clk; +~000010 input clk; -%000002 input toggle_up; - // CHECK_COVER(-1,"top.t.b1","toggle_up",2) +%000001 input toggle_up; + // CHECK_COVER(-1,"top.t.b1","toggle_up_0",1) + // CHECK_COVER(-2,"top.t.b1","toggle_up_1",1) /* verilator public_module */ @@ -177,8 +189,9 @@ // CHECK_COVER_MISSING(-1) // verilator coverage_on -%000002 input toggle; - // CHECK_COVER(-1,"top.t.o1","toggle",2) +%000001 input toggle; + // CHECK_COVER(-1,"top.t.o1","toggle_0",1) + // CHECK_COVER(-2,"top.t.o1","toggle_1",1) endmodule @@ -187,18 +200,18 @@ clk, toggle ); - 000019 input clk; -%000002 input toggle; +~000010 input clk; +%000001 input toggle; %000001 logic z; for (genvar i = 0; i < P; i++) begin -%000002 logic x; +%000001 logic x; always @ (posedge clk) begin x <= toggle; end for (genvar j = 0; j < 3; j++) begin -%000003 logic [2:0] y; +%000002 logic [2:0] y; always @ (negedge clk) begin y <= {toggle, ~toggle, 1'b1}; end diff --git a/test_regress/t/t_cover_toggle.v b/test_regress/t/t_cover_toggle.v index 1590a813c..757f76717 100644 --- a/test_regress/t/t_cover_toggle.v +++ b/test_regress/t/t_cover_toggle.v @@ -122,26 +122,37 @@ module alpha (/*AUTOARG*/ input clk; input toggle; - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) + // CHECK_COVER(-1,"top.t.a*","toggle_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_1",2) + // (t.a1 and t.a2) input [7:0] cyc_copy; - // CHECK_COVER(-1,"top.t.a*","cyc_copy[0]",22) - // CHECK_COVER(-2,"top.t.a*","cyc_copy[1]",10) - // CHECK_COVER(-3,"top.t.a*","cyc_copy[2]",4) - // CHECK_COVER(-4,"top.t.a*","cyc_copy[3]",2) - // CHECK_COVER(-5,"top.t.a*","cyc_copy[4]",0) - // CHECK_COVER(-6,"top.t.a*","cyc_copy[5]",0) - // CHECK_COVER(-7,"top.t.a*","cyc_copy[6]",0) - // CHECK_COVER(-8,"top.t.a*","cyc_copy[7]",0) + // CHECK_COVER(-1,"top.t.a*","cyc_copy[0]_0",10) + // CHECK_COVER(-2,"top.t.a*","cyc_copy[0]_1",12) + // CHECK_COVER(-3,"top.t.a*","cyc_copy[1]_0",4) + // CHECK_COVER(-4,"top.t.a*","cyc_copy[1]_1",6) + // CHECK_COVER(-5,"top.t.a*","cyc_copy[2]_0",2) + // CHECK_COVER(-6,"top.t.a*","cyc_copy[2]_1",2) + // CHECK_COVER(-7,"top.t.a*","cyc_copy[3]_0",0) + // CHECK_COVER(-8,"top.t.a*","cyc_copy[3]_1",2) + // CHECK_COVER(-9,"top.t.a*","cyc_copy[4]_0",0) + // CHECK_COVER(-10,"top.t.a*","cyc_copy[4]_1",0) + // CHECK_COVER(-11,"top.t.a*","cyc_copy[5]_0",0) + // CHECK_COVER(-12,"top.t.a*","cyc_copy[5]_1",0) + // CHECK_COVER(-13,"top.t.a*","cyc_copy[6]_0",0) + // CHECK_COVER(-14,"top.t.a*","cyc_copy[6]_1",0) + // CHECK_COVER(-15,"top.t.a*","cyc_copy[7]_0",0) + // CHECK_COVER(-16,"top.t.a*","cyc_copy[7]_1",0) reg toggle_internal; - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) + // CHECK_COVER(-1,"top.t.a*","toggle_internal_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_internal_1",2) + // (t.a1 and t.a2) output reg toggle_up; - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) + // CHECK_COVER(-1,"top.t.a*","toggle_up_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_up_1",2) + // (t.a1 and t.a2) always @ (posedge clk) begin toggle_internal <= toggle; @@ -157,7 +168,8 @@ module beta (/*AUTOARG*/ input clk; input toggle_up; - // CHECK_COVER(-1,"top.t.b1","toggle_up",2) + // CHECK_COVER(-1,"top.t.b1","toggle_up_0",1) + // CHECK_COVER(-2,"top.t.b1","toggle_up_1",1) /* verilator public_module */ @@ -177,7 +189,8 @@ module off (/*AUTOARG*/ // verilator coverage_on input toggle; - // CHECK_COVER(-1,"top.t.o1","toggle",2) + // CHECK_COVER(-1,"top.t.o1","toggle_0",1) + // CHECK_COVER(-2,"top.t.o1","toggle_1",1) endmodule diff --git a/test_regress/t/t_cover_toggle__points.out b/test_regress/t/t_cover_toggle__points.out index f73846a2f..bd238754f 100644 --- a/test_regress/t/t_cover_toggle__points.out +++ b/test_regress/t/t_cover_toggle__points.out @@ -10,8 +10,9 @@ clk, check_real, check_array_real, check_string ); - 000019 input clk; -+000019 point: comment=clk hier=top.t +~000010 input clk; +-000009 point: comment=clk_0 hier=top.t ++000010 point: comment=clk_1 hier=top.t input real check_real; // Check issue #2741 input real check_array_real [1:0]; input string check_string; // Check issue #2766 @@ -24,12 +25,15 @@ logic b; } str_t; -%000002 reg toggle; initial toggle='0; --000002 point: comment=toggle hier=top.t +%000001 reg toggle; initial toggle='0; +-000001 point: comment=toggle_0 hier=top.t +-000001 point: comment=toggle_1 hier=top.t -%000002 str_t stoggle; initial stoggle='0; --000002 point: comment=stoggle.b hier=top.t --000002 point: comment=stoggle.u.ua hier=top.t +%000001 str_t stoggle; initial stoggle='0; +-000001 point: comment=stoggle.b_0 hier=top.t +-000001 point: comment=stoggle.b_1 hier=top.t +-000001 point: comment=stoggle.u.ua_0 hier=top.t +-000001 point: comment=stoggle.u.ua_1 hier=top.t union { real val1; // TODO use bit [7:0] here @@ -38,24 +42,37 @@ const reg aconst = '0; -%000002 reg [1:0][1:0] ptoggle; initial ptoggle=0; --000002 point: comment=ptoggle[0][0] hier=top.t --000000 point: comment=ptoggle[0][1] hier=top.t --000000 point: comment=ptoggle[1][0] hier=top.t --000000 point: comment=ptoggle[1][1] hier=top.t +%000001 reg [1:0][1:0] ptoggle; initial ptoggle=0; +-000001 point: comment=ptoggle[0][0]_0 hier=top.t +-000001 point: comment=ptoggle[0][0]_1 hier=top.t +-000000 point: comment=ptoggle[0][1]_0 hier=top.t +-000000 point: comment=ptoggle[0][1]_1 hier=top.t +-000000 point: comment=ptoggle[1][0]_0 hier=top.t +-000000 point: comment=ptoggle[1][0]_1 hier=top.t +-000000 point: comment=ptoggle[1][1]_0 hier=top.t +-000000 point: comment=ptoggle[1][1]_1 hier=top.t integer cyc; initial cyc=1; -~000011 wire [7:0] cyc_copy = cyc[7:0]; -+000011 point: comment=cyc_copy[0] hier=top.t --000005 point: comment=cyc_copy[1] hier=top.t --000002 point: comment=cyc_copy[2] hier=top.t --000001 point: comment=cyc_copy[3] hier=top.t --000000 point: comment=cyc_copy[4] hier=top.t --000000 point: comment=cyc_copy[5] hier=top.t --000000 point: comment=cyc_copy[6] hier=top.t --000000 point: comment=cyc_copy[7] hier=top.t -%000002 wire toggle_up; --000002 point: comment=toggle_up hier=top.t +%000006 wire [7:0] cyc_copy = cyc[7:0]; +-000005 point: comment=cyc_copy[0]_0 hier=top.t +-000006 point: comment=cyc_copy[0]_1 hier=top.t +-000002 point: comment=cyc_copy[1]_0 hier=top.t +-000003 point: comment=cyc_copy[1]_1 hier=top.t +-000001 point: comment=cyc_copy[2]_0 hier=top.t +-000001 point: comment=cyc_copy[2]_1 hier=top.t +-000000 point: comment=cyc_copy[3]_0 hier=top.t +-000001 point: comment=cyc_copy[3]_1 hier=top.t +-000000 point: comment=cyc_copy[4]_0 hier=top.t +-000000 point: comment=cyc_copy[4]_1 hier=top.t +-000000 point: comment=cyc_copy[5]_0 hier=top.t +-000000 point: comment=cyc_copy[5]_1 hier=top.t +-000000 point: comment=cyc_copy[6]_0 hier=top.t +-000000 point: comment=cyc_copy[6]_1 hier=top.t +-000000 point: comment=cyc_copy[7]_0 hier=top.t +-000000 point: comment=cyc_copy[7]_1 hier=top.t +%000001 wire toggle_up; +-000001 point: comment=toggle_up_0 hier=top.t +-000001 point: comment=toggle_up_1 hier=top.t typedef struct { int q[$]; @@ -98,30 +115,54 @@ .toggle (toggle)); %000001 reg [1:0] memory[121:110]; --000001 point: comment=memory[110][0] hier=top.t --000000 point: comment=memory[110][1] hier=top.t --000000 point: comment=memory[111][0] hier=top.t --000000 point: comment=memory[111][1] hier=top.t --000000 point: comment=memory[112][0] hier=top.t --000000 point: comment=memory[112][1] hier=top.t --000000 point: comment=memory[113][0] hier=top.t --000000 point: comment=memory[113][1] hier=top.t --000000 point: comment=memory[114][0] hier=top.t --000000 point: comment=memory[114][1] hier=top.t --000000 point: comment=memory[115][0] hier=top.t --000000 point: comment=memory[115][1] hier=top.t --000000 point: comment=memory[116][0] hier=top.t --000000 point: comment=memory[116][1] hier=top.t --000000 point: comment=memory[117][0] hier=top.t --000000 point: comment=memory[117][1] hier=top.t --000000 point: comment=memory[118][0] hier=top.t --000000 point: comment=memory[118][1] hier=top.t --000000 point: comment=memory[119][0] hier=top.t --000000 point: comment=memory[119][1] hier=top.t --000000 point: comment=memory[120][0] hier=top.t --000000 point: comment=memory[120][1] hier=top.t --000000 point: comment=memory[121][0] hier=top.t --000000 point: comment=memory[121][1] hier=top.t +-000000 point: comment=memory[110][0]_0 hier=top.t +-000001 point: comment=memory[110][0]_1 hier=top.t +-000000 point: comment=memory[110][1]_0 hier=top.t +-000000 point: comment=memory[110][1]_1 hier=top.t +-000000 point: comment=memory[111][0]_0 hier=top.t +-000000 point: comment=memory[111][0]_1 hier=top.t +-000000 point: comment=memory[111][1]_0 hier=top.t +-000000 point: comment=memory[111][1]_1 hier=top.t +-000000 point: comment=memory[112][0]_0 hier=top.t +-000000 point: comment=memory[112][0]_1 hier=top.t +-000000 point: comment=memory[112][1]_0 hier=top.t +-000000 point: comment=memory[112][1]_1 hier=top.t +-000000 point: comment=memory[113][0]_0 hier=top.t +-000000 point: comment=memory[113][0]_1 hier=top.t +-000000 point: comment=memory[113][1]_0 hier=top.t +-000000 point: comment=memory[113][1]_1 hier=top.t +-000000 point: comment=memory[114][0]_0 hier=top.t +-000000 point: comment=memory[114][0]_1 hier=top.t +-000000 point: comment=memory[114][1]_0 hier=top.t +-000000 point: comment=memory[114][1]_1 hier=top.t +-000000 point: comment=memory[115][0]_0 hier=top.t +-000000 point: comment=memory[115][0]_1 hier=top.t +-000000 point: comment=memory[115][1]_0 hier=top.t +-000000 point: comment=memory[115][1]_1 hier=top.t +-000000 point: comment=memory[116][0]_0 hier=top.t +-000000 point: comment=memory[116][0]_1 hier=top.t +-000000 point: comment=memory[116][1]_0 hier=top.t +-000000 point: comment=memory[116][1]_1 hier=top.t +-000000 point: comment=memory[117][0]_0 hier=top.t +-000000 point: comment=memory[117][0]_1 hier=top.t +-000000 point: comment=memory[117][1]_0 hier=top.t +-000000 point: comment=memory[117][1]_1 hier=top.t +-000000 point: comment=memory[118][0]_0 hier=top.t +-000000 point: comment=memory[118][0]_1 hier=top.t +-000000 point: comment=memory[118][1]_0 hier=top.t +-000000 point: comment=memory[118][1]_1 hier=top.t +-000000 point: comment=memory[119][0]_0 hier=top.t +-000000 point: comment=memory[119][0]_1 hier=top.t +-000000 point: comment=memory[119][1]_0 hier=top.t +-000000 point: comment=memory[119][1]_1 hier=top.t +-000000 point: comment=memory[120][0]_0 hier=top.t +-000000 point: comment=memory[120][0]_1 hier=top.t +-000000 point: comment=memory[120][1]_0 hier=top.t +-000000 point: comment=memory[120][1]_1 hier=top.t +-000000 point: comment=memory[121][0]_0 hier=top.t +-000000 point: comment=memory[121][0]_1 hier=top.t +-000000 point: comment=memory[121][1]_0 hier=top.t +-000000 point: comment=memory[121][1]_1 hier=top.t wire [1023:0] largeish = {992'h0, cyc}; // CHECK_COVER_MISSING(-1) @@ -161,41 +202,64 @@ // t.a1 and t.a2 collapse to a count of 2 - 000038 input clk; -+000038 point: comment=clk hier=top.t.a* + 000020 input clk; ++000018 point: comment=clk_0 hier=top.t.a* ++000020 point: comment=clk_1 hier=top.t.a* -%000004 input toggle; --000004 point: comment=toggle hier=top.t.a* - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) +%000002 input toggle; +-000002 point: comment=toggle_0 hier=top.t.a* +-000002 point: comment=toggle_1 hier=top.t.a* + // CHECK_COVER(-1,"top.t.a*","toggle_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_1",2) + // (t.a1 and t.a2) -~000022 input [7:0] cyc_copy; -+000022 point: comment=cyc_copy[0] hier=top.t.a* -+000010 point: comment=cyc_copy[1] hier=top.t.a* --000004 point: comment=cyc_copy[2] hier=top.t.a* --000002 point: comment=cyc_copy[3] hier=top.t.a* --000000 point: comment=cyc_copy[4] hier=top.t.a* --000000 point: comment=cyc_copy[5] hier=top.t.a* --000000 point: comment=cyc_copy[6] hier=top.t.a* --000000 point: comment=cyc_copy[7] hier=top.t.a* - // CHECK_COVER(-1,"top.t.a*","cyc_copy[0]",22) - // CHECK_COVER(-2,"top.t.a*","cyc_copy[1]",10) - // CHECK_COVER(-3,"top.t.a*","cyc_copy[2]",4) - // CHECK_COVER(-4,"top.t.a*","cyc_copy[3]",2) - // CHECK_COVER(-5,"top.t.a*","cyc_copy[4]",0) - // CHECK_COVER(-6,"top.t.a*","cyc_copy[5]",0) - // CHECK_COVER(-7,"top.t.a*","cyc_copy[6]",0) - // CHECK_COVER(-8,"top.t.a*","cyc_copy[7]",0) +~000012 input [7:0] cyc_copy; ++000010 point: comment=cyc_copy[0]_0 hier=top.t.a* ++000012 point: comment=cyc_copy[0]_1 hier=top.t.a* +-000004 point: comment=cyc_copy[1]_0 hier=top.t.a* +-000006 point: comment=cyc_copy[1]_1 hier=top.t.a* +-000002 point: comment=cyc_copy[2]_0 hier=top.t.a* +-000002 point: comment=cyc_copy[2]_1 hier=top.t.a* +-000000 point: comment=cyc_copy[3]_0 hier=top.t.a* +-000002 point: comment=cyc_copy[3]_1 hier=top.t.a* +-000000 point: comment=cyc_copy[4]_0 hier=top.t.a* +-000000 point: comment=cyc_copy[4]_1 hier=top.t.a* +-000000 point: comment=cyc_copy[5]_0 hier=top.t.a* +-000000 point: comment=cyc_copy[5]_1 hier=top.t.a* +-000000 point: comment=cyc_copy[6]_0 hier=top.t.a* +-000000 point: comment=cyc_copy[6]_1 hier=top.t.a* +-000000 point: comment=cyc_copy[7]_0 hier=top.t.a* +-000000 point: comment=cyc_copy[7]_1 hier=top.t.a* + // CHECK_COVER(-1,"top.t.a*","cyc_copy[0]_0",10) + // CHECK_COVER(-2,"top.t.a*","cyc_copy[0]_1",12) + // CHECK_COVER(-3,"top.t.a*","cyc_copy[1]_0",4) + // CHECK_COVER(-4,"top.t.a*","cyc_copy[1]_1",6) + // CHECK_COVER(-5,"top.t.a*","cyc_copy[2]_0",2) + // CHECK_COVER(-6,"top.t.a*","cyc_copy[2]_1",2) + // CHECK_COVER(-7,"top.t.a*","cyc_copy[3]_0",0) + // CHECK_COVER(-8,"top.t.a*","cyc_copy[3]_1",2) + // CHECK_COVER(-9,"top.t.a*","cyc_copy[4]_0",0) + // CHECK_COVER(-10,"top.t.a*","cyc_copy[4]_1",0) + // CHECK_COVER(-11,"top.t.a*","cyc_copy[5]_0",0) + // CHECK_COVER(-12,"top.t.a*","cyc_copy[5]_1",0) + // CHECK_COVER(-13,"top.t.a*","cyc_copy[6]_0",0) + // CHECK_COVER(-14,"top.t.a*","cyc_copy[6]_1",0) + // CHECK_COVER(-15,"top.t.a*","cyc_copy[7]_0",0) + // CHECK_COVER(-16,"top.t.a*","cyc_copy[7]_1",0) -%000004 reg toggle_internal; --000004 point: comment=toggle_internal hier=top.t.a* - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) +%000002 reg toggle_internal; +-000002 point: comment=toggle_internal_0 hier=top.t.a* +-000002 point: comment=toggle_internal_1 hier=top.t.a* + // CHECK_COVER(-1,"top.t.a*","toggle_internal_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_internal_1",2) + // (t.a1 and t.a2) -%000004 output reg toggle_up; --000004 point: comment=toggle_up hier=top.t.a* - // CHECK_COVER(-1,"top.t.a*",4) - // 2 edges * (t.a1 and t.a2) +%000002 output reg toggle_up; +-000002 point: comment=toggle_up_0 hier=top.t.a* +-000002 point: comment=toggle_up_1 hier=top.t.a* + // CHECK_COVER(-1,"top.t.a*","toggle_up_0",2) + // CHECK_COVER(-2,"top.t.a*","toggle_up_1",2) + // (t.a1 and t.a2) always @ (posedge clk) begin toggle_internal <= toggle; @@ -208,12 +272,15 @@ clk, toggle_up ); - 000019 input clk; -+000019 point: comment=clk hier=top.t.b1 +~000010 input clk; +-000009 point: comment=clk_0 hier=top.t.b1 ++000010 point: comment=clk_1 hier=top.t.b1 -%000002 input toggle_up; --000002 point: comment=toggle_up hier=top.t.b1 - // CHECK_COVER(-1,"top.t.b1","toggle_up",2) +%000001 input toggle_up; +-000001 point: comment=toggle_up_0 hier=top.t.b1 +-000001 point: comment=toggle_up_1 hier=top.t.b1 + // CHECK_COVER(-1,"top.t.b1","toggle_up_0",1) + // CHECK_COVER(-2,"top.t.b1","toggle_up_1",1) /* verilator public_module */ @@ -232,9 +299,11 @@ // CHECK_COVER_MISSING(-1) // verilator coverage_on -%000002 input toggle; --000002 point: comment=toggle hier=top.t.o1 - // CHECK_COVER(-1,"top.t.o1","toggle",2) +%000001 input toggle; +-000001 point: comment=toggle_0 hier=top.t.o1 +-000001 point: comment=toggle_1 hier=top.t.o1 + // CHECK_COVER(-1,"top.t.o1","toggle_0",1) + // CHECK_COVER(-2,"top.t.o1","toggle_1",1) endmodule @@ -243,54 +312,90 @@ clk, toggle ); - 000019 input clk; -+000019 point: comment=clk hier=top.t.p2 -+000019 point: comment=clk hier=top.t.p1 -%000002 input toggle; --000002 point: comment=toggle hier=top.t.p2 --000002 point: comment=toggle hier=top.t.p1 +~000010 input clk; +-000009 point: comment=clk_0 hier=top.t.p2 ++000010 point: comment=clk_1 hier=top.t.p2 +-000009 point: comment=clk_0 hier=top.t.p1 ++000010 point: comment=clk_1 hier=top.t.p1 +%000001 input toggle; +-000001 point: comment=toggle_0 hier=top.t.p2 +-000001 point: comment=toggle_1 hier=top.t.p2 +-000001 point: comment=toggle_0 hier=top.t.p1 +-000001 point: comment=toggle_1 hier=top.t.p1 %000001 logic z; --000001 point: comment=z hier=top.t.p2 --000000 point: comment=z hier=top.t.p1 +-000000 point: comment=z_0 hier=top.t.p2 +-000001 point: comment=z_1 hier=top.t.p2 +-000000 point: comment=z_0 hier=top.t.p1 +-000000 point: comment=z_1 hier=top.t.p1 for (genvar i = 0; i < P; i++) begin -%000002 logic x; --000002 point: comment=genblk1[0].x hier=top.t.p2 --000002 point: comment=genblk1[1].x hier=top.t.p2 --000002 point: comment=genblk1[0].x hier=top.t.p1 +%000001 logic x; +-000001 point: comment=genblk1[0].x_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].x_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].x_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].x_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].x_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].x_1 hier=top.t.p1 always @ (posedge clk) begin x <= toggle; end for (genvar j = 0; j < 3; j++) begin -%000003 logic [2:0] y; --000001 point: comment=genblk1[0].genblk1[0].y[0] hier=top.t.p2 --000003 point: comment=genblk1[0].genblk1[0].y[1] hier=top.t.p2 --000002 point: comment=genblk1[0].genblk1[0].y[2] hier=top.t.p2 --000001 point: comment=genblk1[0].genblk1[1].y[0] hier=top.t.p2 --000003 point: comment=genblk1[0].genblk1[1].y[1] hier=top.t.p2 --000002 point: comment=genblk1[0].genblk1[1].y[2] hier=top.t.p2 --000001 point: comment=genblk1[0].genblk1[2].y[0] hier=top.t.p2 --000003 point: comment=genblk1[0].genblk1[2].y[1] hier=top.t.p2 --000002 point: comment=genblk1[0].genblk1[2].y[2] hier=top.t.p2 --000001 point: comment=genblk1[1].genblk1[0].y[0] hier=top.t.p2 --000003 point: comment=genblk1[1].genblk1[0].y[1] hier=top.t.p2 --000002 point: comment=genblk1[1].genblk1[0].y[2] hier=top.t.p2 --000001 point: comment=genblk1[1].genblk1[1].y[0] hier=top.t.p2 --000003 point: comment=genblk1[1].genblk1[1].y[1] hier=top.t.p2 --000002 point: comment=genblk1[1].genblk1[1].y[2] hier=top.t.p2 --000001 point: comment=genblk1[1].genblk1[2].y[0] hier=top.t.p2 --000003 point: comment=genblk1[1].genblk1[2].y[1] hier=top.t.p2 --000002 point: comment=genblk1[1].genblk1[2].y[2] hier=top.t.p2 --000001 point: comment=genblk1[0].genblk1[0].y[0] hier=top.t.p1 --000003 point: comment=genblk1[0].genblk1[0].y[1] hier=top.t.p1 --000002 point: comment=genblk1[0].genblk1[0].y[2] hier=top.t.p1 --000001 point: comment=genblk1[0].genblk1[1].y[0] hier=top.t.p1 --000003 point: comment=genblk1[0].genblk1[1].y[1] hier=top.t.p1 --000002 point: comment=genblk1[0].genblk1[1].y[2] hier=top.t.p1 --000001 point: comment=genblk1[0].genblk1[2].y[0] hier=top.t.p1 --000003 point: comment=genblk1[0].genblk1[2].y[1] hier=top.t.p1 --000002 point: comment=genblk1[0].genblk1[2].y[2] hier=top.t.p1 +%000002 logic [2:0] y; +-000000 point: comment=genblk1[0].genblk1[0].y[0]_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[0].y[0]_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[0].y[1]_0 hier=top.t.p2 +-000002 point: comment=genblk1[0].genblk1[0].y[1]_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[0].y[2]_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[0].y[2]_1 hier=top.t.p2 +-000000 point: comment=genblk1[0].genblk1[1].y[0]_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[1].y[0]_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[1].y[1]_0 hier=top.t.p2 +-000002 point: comment=genblk1[0].genblk1[1].y[1]_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[1].y[2]_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[1].y[2]_1 hier=top.t.p2 +-000000 point: comment=genblk1[0].genblk1[2].y[0]_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[2].y[0]_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[2].y[1]_0 hier=top.t.p2 +-000002 point: comment=genblk1[0].genblk1[2].y[1]_1 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[2].y[2]_0 hier=top.t.p2 +-000001 point: comment=genblk1[0].genblk1[2].y[2]_1 hier=top.t.p2 +-000000 point: comment=genblk1[1].genblk1[0].y[0]_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[0].y[0]_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[0].y[1]_0 hier=top.t.p2 +-000002 point: comment=genblk1[1].genblk1[0].y[1]_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[0].y[2]_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[0].y[2]_1 hier=top.t.p2 +-000000 point: comment=genblk1[1].genblk1[1].y[0]_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[1].y[0]_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[1].y[1]_0 hier=top.t.p2 +-000002 point: comment=genblk1[1].genblk1[1].y[1]_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[1].y[2]_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[1].y[2]_1 hier=top.t.p2 +-000000 point: comment=genblk1[1].genblk1[2].y[0]_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[2].y[0]_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[2].y[1]_0 hier=top.t.p2 +-000002 point: comment=genblk1[1].genblk1[2].y[1]_1 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[2].y[2]_0 hier=top.t.p2 +-000001 point: comment=genblk1[1].genblk1[2].y[2]_1 hier=top.t.p2 +-000000 point: comment=genblk1[0].genblk1[0].y[0]_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[0].y[0]_1 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[0].y[1]_0 hier=top.t.p1 +-000002 point: comment=genblk1[0].genblk1[0].y[1]_1 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[0].y[2]_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[0].y[2]_1 hier=top.t.p1 +-000000 point: comment=genblk1[0].genblk1[1].y[0]_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[1].y[0]_1 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[1].y[1]_0 hier=top.t.p1 +-000002 point: comment=genblk1[0].genblk1[1].y[1]_1 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[1].y[2]_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[1].y[2]_1 hier=top.t.p1 +-000000 point: comment=genblk1[0].genblk1[2].y[0]_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[2].y[0]_1 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[2].y[1]_0 hier=top.t.p1 +-000002 point: comment=genblk1[0].genblk1[2].y[1]_1 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[2].y[2]_0 hier=top.t.p1 +-000001 point: comment=genblk1[0].genblk1[2].y[2]_1 hier=top.t.p1 always @ (negedge clk) begin y <= {toggle, ~toggle, 1'b1}; end diff --git a/test_regress/t/t_cover_toggle_min.info.out b/test_regress/t/t_cover_toggle_min.info.out index a5581bcd2..57c5631ef 100644 --- a/test_regress/t/t_cover_toggle_min.info.out +++ b/test_regress/t/t_cover_toggle_min.info.out @@ -1,14 +1,20 @@ TN:verilator_coverage SF:t/t_cover_toggle_min.v DA:10,1 -BRDA:10,0,0,1 -BRDA:10,0,1,0 +BRDA:10,0,0,0 +BRDA:10,0,1,1 +BRDA:10,0,2,0 +BRDA:10,0,3,0 DA:11,1 BRDA:11,0,0,0 -BRDA:11,0,1,1 -DA:12,2 -BRDA:12,0,0,2 +BRDA:11,0,1,0 +BRDA:11,0,2,0 +BRDA:11,0,3,1 +DA:12,1 +BRDA:12,0,0,1 BRDA:12,0,1,1 -BRF:6 +BRDA:12,0,2,0 +BRDA:12,0,3,1 +BRF:12 BRH:0 end_of_record diff --git a/test_regress/t/t_wrapper_context__top0.dat.out b/test_regress/t/t_wrapper_context__top0.dat.out index d4620c660..0b7cc182d 100644 --- a/test_regress/t/t_wrapper_context__top0.dat.out +++ b/test_regress/t/t_wrapper_context__top0.dat.out @@ -1,72 +1,140 @@ # SystemC::Coverage-3 -C 'ft/t_wrapper_context.vl14n22ttogglepagev_toggle/topoclkhtop0.top' 21 -C 'ft/t_wrapper_context.vl15n22ttogglepagev_toggle/toporsthtop0.top' 2 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[0]htop0.top' 1 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[10]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[11]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[12]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[13]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[14]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[15]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[16]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[17]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[18]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[19]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[1]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[20]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[21]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[22]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[23]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[24]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[25]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[26]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[27]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[28]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[29]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[2]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[30]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[31]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[3]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[4]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[5]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[6]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[7]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[8]htop0.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[9]htop0.top' 0 -C 'ft/t_wrapper_context.vl17n22ttogglepagev_toggle/topostophtop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[0]htop0.top' 10 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[10]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[11]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[12]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[13]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[14]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[15]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[16]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[17]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[18]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[19]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[1]htop0.top' 5 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[20]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[21]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[22]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[23]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[24]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[25]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[26]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[27]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[28]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[29]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[2]htop0.top' 2 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[30]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[31]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[3]htop0.top' 1 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[4]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[5]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[6]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[7]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[8]htop0.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[9]htop0.top' 0 -C 'ft/t_wrapper_context.vl19n22ttogglepagev_toggle/topodone_ohtop0.top' 1 +C 'ft/t_wrapper_context.vl14n22ttogglepagev_toggle/topoclk_0htop0.top' 10 +C 'ft/t_wrapper_context.vl14n22ttogglepagev_toggle/topoclk_1htop0.top' 11 +C 'ft/t_wrapper_context.vl15n22ttogglepagev_toggle/toporst_0htop0.top' 1 +C 'ft/t_wrapper_context.vl15n22ttogglepagev_toggle/toporst_1htop0.top' 1 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[0]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[0]_1htop0.top' 1 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[10]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[10]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[11]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[11]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[12]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[12]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[13]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[13]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[14]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[14]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[15]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[15]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[16]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[16]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[17]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[17]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[18]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[18]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[19]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[19]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[1]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[1]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[20]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[20]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[21]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[21]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[22]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[22]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[23]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[23]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[24]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[24]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[25]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[25]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[26]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[26]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[27]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[27]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[28]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[28]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[29]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[29]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[2]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[2]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[30]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[30]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[31]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[31]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[3]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[3]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[4]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[4]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[5]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[5]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[6]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[6]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[7]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[7]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[8]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[8]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[9]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[9]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl17n22ttogglepagev_toggle/topostop_0htop0.top' 0 +C 'ft/t_wrapper_context.vl17n22ttogglepagev_toggle/topostop_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[0]_0htop0.top' 5 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[0]_1htop0.top' 5 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[10]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[10]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[11]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[11]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[12]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[12]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[13]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[13]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[14]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[14]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[15]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[15]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[16]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[16]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[17]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[17]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[18]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[18]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[19]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[19]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[1]_0htop0.top' 2 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[1]_1htop0.top' 3 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[20]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[20]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[21]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[21]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[22]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[22]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[23]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[23]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[24]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[24]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[25]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[25]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[26]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[26]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[27]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[27]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[28]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[28]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[29]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[29]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[2]_0htop0.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[2]_1htop0.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[30]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[30]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[31]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[31]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[3]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[3]_1htop0.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[4]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[4]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[5]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[5]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[6]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[6]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[7]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[7]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[8]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[8]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[9]_0htop0.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[9]_1htop0.top' 0 +C 'ft/t_wrapper_context.vl19n22ttogglepagev_toggle/topodone_o_0htop0.top' 0 +C 'ft/t_wrapper_context.vl19n22ttogglepagev_toggle/topodone_o_1htop0.top' 1 C 'ft/t_wrapper_context.vl22n4tlinepagev_line/topoblockS22,25-29htop0.top' 1 C 'ft/t_wrapper_context.vl32n4tlinepagev_line/topoblockS32htop0.top' 11 C 'ft/t_wrapper_context.vl33n7tbranchpagev_branch/topoifS33-34htop0.top' 1 diff --git a/test_regress/t/t_wrapper_context__top1.dat.out b/test_regress/t/t_wrapper_context__top1.dat.out index 4b335614e..cff521542 100644 --- a/test_regress/t/t_wrapper_context__top1.dat.out +++ b/test_regress/t/t_wrapper_context__top1.dat.out @@ -1,72 +1,140 @@ # SystemC::Coverage-3 -C 'ft/t_wrapper_context.vl14n22ttogglepagev_toggle/topoclkhtop1.top' 11 -C 'ft/t_wrapper_context.vl15n22ttogglepagev_toggle/toporsthtop1.top' 2 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[0]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[10]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[11]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[12]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[13]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[14]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[15]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[16]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[17]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[18]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[19]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[1]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[20]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[21]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[22]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[23]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[24]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[25]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[26]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[27]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[28]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[29]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[2]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[30]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[31]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[3]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[4]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[5]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[6]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[7]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[8]htop1.top' 0 -C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[9]htop1.top' 0 -C 'ft/t_wrapper_context.vl17n22ttogglepagev_toggle/topostophtop1.top' 1 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[0]htop1.top' 5 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[10]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[11]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[12]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[13]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[14]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[15]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[16]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[17]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[18]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[19]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[1]htop1.top' 2 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[20]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[21]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[22]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[23]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[24]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[25]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[26]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[27]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[28]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[29]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[2]htop1.top' 1 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[30]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[31]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[3]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[4]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[5]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[6]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[7]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[8]htop1.top' 0 -C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[9]htop1.top' 0 -C 'ft/t_wrapper_context.vl19n22ttogglepagev_toggle/topodone_ohtop1.top' 1 +C 'ft/t_wrapper_context.vl14n22ttogglepagev_toggle/topoclk_0htop1.top' 5 +C 'ft/t_wrapper_context.vl14n22ttogglepagev_toggle/topoclk_1htop1.top' 6 +C 'ft/t_wrapper_context.vl15n22ttogglepagev_toggle/toporst_0htop1.top' 1 +C 'ft/t_wrapper_context.vl15n22ttogglepagev_toggle/toporst_1htop1.top' 1 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[0]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[0]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[10]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[10]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[11]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[11]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[12]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[12]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[13]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[13]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[14]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[14]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[15]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[15]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[16]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[16]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[17]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[17]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[18]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[18]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[19]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[19]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[1]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[1]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[20]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[20]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[21]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[21]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[22]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[22]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[23]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[23]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[24]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[24]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[25]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[25]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[26]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[26]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[27]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[27]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[28]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[28]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[29]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[29]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[2]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[2]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[30]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[30]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[31]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[31]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[3]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[3]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[4]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[4]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[5]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[5]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[6]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[6]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[7]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[7]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[8]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[8]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[9]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl16n22ttogglepagev_toggle/topotrace_number[9]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl17n22ttogglepagev_toggle/topostop_0htop1.top' 0 +C 'ft/t_wrapper_context.vl17n22ttogglepagev_toggle/topostop_1htop1.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[0]_0htop1.top' 2 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[0]_1htop1.top' 3 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[10]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[10]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[11]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[11]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[12]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[12]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[13]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[13]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[14]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[14]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[15]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[15]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[16]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[16]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[17]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[17]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[18]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[18]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[19]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[19]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[1]_0htop1.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[1]_1htop1.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[20]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[20]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[21]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[21]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[22]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[22]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[23]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[23]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[24]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[24]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[25]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[25]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[26]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[26]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[27]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[27]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[28]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[28]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[29]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[29]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[2]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[2]_1htop1.top' 1 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[30]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[30]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[31]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[31]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[3]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[3]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[4]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[4]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[5]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[5]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[6]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[6]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[7]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[7]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[8]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[8]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[9]_0htop1.top' 0 +C 'ft/t_wrapper_context.vl18n22ttogglepagev_toggle/topocounter[9]_1htop1.top' 0 +C 'ft/t_wrapper_context.vl19n22ttogglepagev_toggle/topodone_o_0htop1.top' 0 +C 'ft/t_wrapper_context.vl19n22ttogglepagev_toggle/topodone_o_1htop1.top' 1 C 'ft/t_wrapper_context.vl22n4tlinepagev_line/topoblockS22,25-29htop1.top' 1 C 'ft/t_wrapper_context.vl32n4tlinepagev_line/topoblockS32htop1.top' 6 C 'ft/t_wrapper_context.vl33n7tbranchpagev_branch/topoifS33-34htop1.top' 1