This commit is contained in:
Ryszard Rozak 2025-07-19 17:43:29 +03:00 committed by GitHub
commit 5bfa11114f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 670 additions and 363 deletions

View File

@ -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:

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -662,9 +662,17 @@ public:
iterateChildrenConst(nodep);
}
void visit(AstCoverDecl* nodep) override {
std::vector<string> 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()));
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
@ -684,19 +692,28 @@ public:
puts(", ");
putsQuoted(protectWordsIf(nodep->page(), nodep->protect()));
puts(", ");
putsQuoted(protectWordsIf(nodep->comment(), nodep->protect()));
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");
}
}

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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