From a64774726033811dc387c49899e504dba236a5e4 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sun, 21 Sep 2025 19:52:19 -0400 Subject: [PATCH] Add IMPLICITSTATIC also on procedure variables. --- Changes | 1 + src/V3AssertPre.cpp | 6 +- src/V3Ast.h | 22 +- src/V3AstNodes.cpp | 2 +- src/V3Begin.cpp | 2 +- src/V3Fork.cpp | 6 +- src/V3LinkDot.cpp | 6 +- src/V3LinkJump.cpp | 4 +- src/V3LinkLValue.cpp | 2 +- src/V3LinkParse.cpp | 100 +- src/V3ParseGrammar.h | 8 +- src/V3ParseImp.h | 2 +- src/V3Randomize.cpp | 16 +- src/V3Scope.cpp | 7 +- src/V3Unknown.cpp | 2 +- src/V3Width.cpp | 2 +- src/verilog.y | 16 +- test_regress/t/t_assoc_wildcard.v | 4 +- test_regress/t/t_clocking_timing.v | 3 +- test_regress/t/t_constraint_json_only.out | 22 +- test_regress/t/t_cover_line.out | 23 +- test_regress/t/t_cover_line.v | 5 +- test_regress/t/t_cover_line_cc.info.out | 150 +- test_regress/t/t_cover_line_trace.out | 1300 ++++++++--------- test_regress/t/t_covergroup_unsup.v | 5 +- test_regress/t/t_func_no_lifetime_bad.out | 10 +- test_regress/t/t_json_only_begin_hier.out | 4 +- test_regress/t/t_json_only_debugcheck.out | 6 +- test_regress/t/t_json_only_first.out | 24 +- test_regress/t/t_json_only_flat.out | 30 +- .../t/t_json_only_flat_no_inline_mod.out | 6 +- test_regress/t/t_json_only_flat_pub_mod.out | 6 +- test_regress/t/t_json_only_flat_vlvbound.out | 16 +- test_regress/t/t_json_only_output.out | 2 +- test_regress/t/t_json_only_tag.out | 16 +- test_regress/t/t_jumps_do_while.v | 7 +- test_regress/t/t_lint_blkseq_loop.v | 2 + test_regress/t/t_lint_implicitstatic_bad.out | 31 + test_regress/t/t_lint_implicitstatic_bad.py | 19 + test_regress/t/t_lint_implicitstatic_bad.v | 29 + test_regress/t/t_output_groups.v | 2 +- test_regress/t/t_queue.v | 3 +- test_regress/t/t_split_var_1_bad.out | 6 +- test_regress/t/t_split_var_1_bad.v | 2 +- test_regress/t/t_timing_finish2.v | 2 +- test_regress/t/t_var_port_json_only.out | 40 +- test_regress/t/t_var_static_assign_decl_bad.v | 2 +- 47 files changed, 1039 insertions(+), 942 deletions(-) create mode 100644 test_regress/t/t_lint_implicitstatic_bad.out create mode 100755 test_regress/t/t_lint_implicitstatic_bad.py create mode 100644 test_regress/t/t_lint_implicitstatic_bad.v diff --git a/Changes b/Changes index f78996e05..e06146061 100644 --- a/Changes +++ b/Changes @@ -20,6 +20,7 @@ Verilator 5.041 devel * Add $(LDFLAGS) and $(LIBS) to when building shared libraries (#6425) (#6426). [Ahmed El-Mahmoudy] * Add ASSIGNEQEXPR when use `=` inside expressions (#5567). [Ethan Sifferman] * Add error on localparam value from hierarchical path (#6456). [Luca Rufer] +* Add IMPLICITSTATIC also on procedure variables. * Deprecate sensitivity list on public_flat_rw attributes (#6443). [Geza Lore] * Support modports referencing clocking blocks (#4555) (#6436). [Ryszard Rozak, Antmicro Ltd.] * Support digits in `$sscanf` field width formats (#6083). [Iztok Jeras] diff --git a/src/V3AssertPre.cpp b/src/V3AssertPre.cpp index d789a8bbd..c19dd4eaf 100644 --- a/src/V3AssertPre.cpp +++ b/src/V3AssertPre.cpp @@ -208,7 +208,7 @@ private: // A var to keep the previous value of the clockvar AstVar* const prevVarp = new AstVar{ flp, VVarType::MODULETEMP, "__Vclocking_prev__" + varp->name(), exprp->dtypep()}; - prevVarp->lifetime(VLifetime::STATIC); + prevVarp->lifetime(VLifetime::STATIC_EXPLICIT); AstInitialStatic* const initPrevClockvarp = new AstInitialStatic{ flp, new AstAssign{flp, new AstVarRef{flp, prevVarp, VAccess::WRITE}, skewedReadRefp->cloneTreePure(false)}}; @@ -280,7 +280,7 @@ private: m_netlistp->typeTablep()->addTypesp(queueDtp); AstVar* const queueVarp = new AstVar{flp, VVarType::MODULETEMP, "__Vqueue__" + varp->name(), queueDtp}; - queueVarp->lifetime(VLifetime::STATIC); + queueVarp->lifetime(VLifetime::STATIC_EXPLICIT); m_clockingp->addNextHere(queueVarp); // Create a process like this: // always queue.push(); @@ -347,7 +347,7 @@ private: const std::string delayName = m_cycleDlyNames.get(nodep); AstVar* const cntVarp = new AstVar{flp, VVarType::BLOCKTEMP, delayName + "__counter", nodep->findBasicDType(VBasicDTypeKwd::UINT32)}; - cntVarp->lifetime(VLifetime::AUTOMATIC); + cntVarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); cntVarp->funcLocal(true); AstBegin* const beginp = new AstBegin{flp, delayName + "__block", cntVarp, false, true}; beginp->addStmtsp(new AstAssign{flp, new AstVarRef{flp, cntVarp, VAccess::WRITE}, valuep}); diff --git a/src/V3Ast.h b/src/V3Ast.h index 7c5e5788d..22f847e05 100644 --- a/src/V3Ast.h +++ b/src/V3Ast.h @@ -135,10 +135,16 @@ inline std::ostream& operator<<(std::ostream& os, const VNType& rhs) { return os class VLifetime final { public: - enum en : uint8_t { NONE, AUTOMATIC, STATIC }; + enum en : uint8_t { + NONE, + AUTOMATIC_EXPLICIT, // Automatic assigned by user + AUTOMATIC_IMPLICIT, // AUtomatic propagated from above + STATIC_EXPLICIT, // Static assigned by user + STATIC_IMPLICIT + }; // Static propagated from above enum en m_e; const char* ascii() const { - static const char* const names[] = {"NONE", "VAUTOM", "VSTATIC"}; + static const char* const names[] = {"NONE", "VAUTOM", "VAUTOMI", "VSTATIC", "VSTATICI"}; return names[m_e]; } VLifetime() @@ -150,8 +156,16 @@ public: : m_e(static_cast(_e)) {} // Need () or GCC 4.8 false warning constexpr operator en() const { return m_e; } bool isNone() const { return m_e == NONE; } - bool isAutomatic() const { return m_e == AUTOMATIC; } - bool isStatic() const { return m_e == STATIC; } + bool isAutomatic() const { return m_e == AUTOMATIC_EXPLICIT || m_e == AUTOMATIC_IMPLICIT; } + bool isStatic() const { return m_e == STATIC_EXPLICIT || m_e == STATIC_IMPLICIT; } + bool isStaticExplicit() const { return m_e == STATIC_EXPLICIT; } + VLifetime makeImplicit() { + switch (m_e) { + case AUTOMATIC_EXPLICIT: return AUTOMATIC_IMPLICIT; + case STATIC_EXPLICIT: return STATIC_IMPLICIT; + default: return m_e; + } + } }; constexpr bool operator==(const VLifetime& lhs, const VLifetime& rhs) { return lhs.m_e == rhs.m_e; diff --git a/src/V3AstNodes.cpp b/src/V3AstNodes.cpp index 22f818699..415c250b2 100644 --- a/src/V3AstNodes.cpp +++ b/src/V3AstNodes.cpp @@ -351,7 +351,7 @@ AstVar* AstClocking::ensureEventp(bool childDType) { new AstBasicDType{fileline(), VBasicDTypeKwd::EVENT}} : new AstVar{fileline(), VVarType::MODULETEMP, m_name, findBasicDType(VBasicDTypeKwd::EVENT)}; - evp->lifetime(VLifetime::STATIC); + evp->lifetime(VLifetime::STATIC_EXPLICIT); eventp(evp); // Trigger the clocking event in Observed (IEEE 1800-2023 14.13) addNextHere(new AstAlwaysObserved{ diff --git a/src/V3Begin.cpp b/src/V3Begin.cpp index 33a56aa18..4f673211b 100644 --- a/src/V3Begin.cpp +++ b/src/V3Begin.cpp @@ -488,7 +488,7 @@ AstNode* V3Begin::convertToWhile(AstForeach* nodep) { AstVar* const first_varp = new AstVar{ fl, VVarType::BLOCKTEMP, varp->name() + "__Vfirst", VFlagBitPacked{}, 1}; first_varp->usedLoopIdx(true); - first_varp->lifetime(VLifetime::AUTOMATIC); + first_varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); AstNodeExpr* const firstp = new AstCMethodHard{fl, subfromp->cloneTreePure(false), "first", new AstVarRef{fl, varp, VAccess::READWRITE}}; diff --git a/src/V3Fork.cpp b/src/V3Fork.cpp index d5d346474..fc0d54700 100644 --- a/src/V3Fork.cpp +++ b/src/V3Fork.cpp @@ -91,7 +91,7 @@ public: = new AstVar{m_procp->fileline(), VVarType::BLOCKTEMP, generateDynScopeHandleName(m_procp), m_instance.m_refDTypep}; m_instance.m_handlep->funcLocal(true); - m_instance.m_handlep->lifetime(VLifetime::AUTOMATIC); + m_instance.m_handlep->lifetime(VLifetime::AUTOMATIC_EXPLICIT); UINFO(9, "new dynscope var " << m_instance.m_handlep); return m_instance; @@ -118,7 +118,7 @@ public: } varp->funcLocal(false); varp->varType(VVarType::MEMBER); - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); varp->usedLoopIdx(false); // No longer unrollable UINFO(9, "insert DynScope member " << varp); m_instance.m_classp->addStmtsp(varp); @@ -549,7 +549,7 @@ class ForkVisitor final : public VNVisitor { varp = new AstVar{refp->fileline(), VVarType::BLOCKTEMP, refp->name(), refp->dtypep()}; varp->direction(VDirection::INPUT); varp->funcLocal(true); - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); UINFO(9, "new capture var " << varp); m_capturedVarsp = AstNode::addNext(m_capturedVarsp, varp); // Use the original ref as an argument for call diff --git a/src/V3LinkDot.cpp b/src/V3LinkDot.cpp index 95a7496da..5d724e0e1 100644 --- a/src/V3LinkDot.cpp +++ b/src/V3LinkDot.cpp @@ -1347,7 +1347,7 @@ class LinkDotFindVisitor final : public VNVisitor { = new AstVar{nodep->fileline(), VVarType::VAR, nodep->name(), VFlagChildDType{}, dtypep}; // Not dtype resolved yet newvarp->direction(VDirection::OUTPUT); - newvarp->lifetime(VLifetime::AUTOMATIC); + newvarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); newvarp->funcReturn(true); newvarp->trace(false); // Not user visible newvarp->attrIsolateAssign(nodep->attrIsolateAssign()); @@ -1411,7 +1411,7 @@ class LinkDotFindVisitor final : public VNVisitor { } AstVar* const newvarp = new AstVar{nodep->fileline(), VVarType::MODULETEMP, varname, VFlagChildDType{}, dtypep}; - newvarp->lifetime(VLifetime::STATIC); + newvarp->lifetime(VLifetime::STATIC_EXPLICIT); nodep->varp(newvarp); iterate(nodep->exprp()); } @@ -1772,7 +1772,7 @@ class LinkDotFindVisitor final : public VNVisitor { // We use an int type, this might get changed in V3Width when types resolve argrefp = new AstVar{parserefp->fileline(), VVarType::BLOCKTEMP, parserefp->name(), argp->findSigned32DType()}; - argrefp->lifetime(VLifetime::AUTOMATIC); + argrefp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); parserefp->replaceWith(argrefp); VL_DO_DANGLING(parserefp->deleteTree(), parserefp); // Insert argref's name into symbol table diff --git a/src/V3LinkJump.cpp b/src/V3LinkJump.cpp index e552673eb..cc1aa8678 100644 --- a/src/V3LinkJump.cpp +++ b/src/V3LinkJump.cpp @@ -201,7 +201,7 @@ class LinkJumpVisitor final : public VNVisitor { fl, VVarType::VAR, m_queueNames.get(targetName), VFlagChildDType{}, new AstQueueDType{fl, VFlagChildDType{}, new AstClassRefDType{fl, processClassp, nullptr}, nullptr}}; - processQueuep->lifetime(VLifetime::STATIC); + processQueuep->lifetime(VLifetime::STATIC_EXPLICIT); topPkgp->addStmtsp(processQueuep); AstVarRef* const queueWriteRefp @@ -293,7 +293,7 @@ class LinkJumpVisitor final : public VNVisitor { // Spec says value is integral, if negative is ignored AstVar* const varp = new AstVar{nodep->fileline(), VVarType::BLOCKTEMP, name, nodep->findSigned32DType()}; - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); varp->usedLoopIdx(true); beginp->addStmtsp(varp); AstNode* initsp = new AstAssign{ diff --git a/src/V3LinkLValue.cpp b/src/V3LinkLValue.cpp index 6194bb573..331e67056 100644 --- a/src/V3LinkLValue.cpp +++ b/src/V3LinkLValue.cpp @@ -127,7 +127,7 @@ class LinkLValueVisitor final : public VNVisitor { } else { const bool rhsHasAutomatic = nodep->rhsp()->exists([](const AstNodeVarRef* const refp) { - return refp->varp() && refp->varp()->lifetime() == VLifetime::AUTOMATIC; + return refp->varp() && refp->varp()->lifetime().isAutomatic(); }); if (rhsHasAutomatic) { nodep->rhsp()->v3error("Static variable initializer\n" diff --git a/src/V3LinkParse.cpp b/src/V3LinkParse.cpp index 6ec808ef0..7df26971d 100644 --- a/src/V3LinkParse.cpp +++ b/src/V3LinkParse.cpp @@ -53,6 +53,7 @@ class LinkParseVisitor final : public VNVisitor { AstVar* m_varp = nullptr; // Variable we're under AstNodeModule* m_valueModp = nullptr; AstNodeModule* m_modp = nullptr; // Current module + AstNodeProcedure* m_procedurep = nullptr; // Current procedure AstNodeFTask* m_ftaskp = nullptr; // Current task AstNodeDType* m_dtypep = nullptr; // Current data type AstNodeExpr* m_defaultInSkewp = nullptr; // Current default input skew @@ -61,8 +62,7 @@ class LinkParseVisitor final : public VNVisitor { int m_genblkAbove = 0; // Begin block number of if/case/for above int m_genblkNum = 0; // Begin block number, 0=none seen int m_beginDepth = 0; // How many begin blocks above current node within current AstNodeModule - VLifetime m_lifetime = VLifetime::STATIC; // Propagating lifetime - bool m_inAlways = false; // Inside an always + VLifetime m_lifetime = VLifetime::STATIC_IMPLICIT; // Propagating lifetime bool m_insideLoop = false; // True if the node is inside a loop bool m_lifetimeAllowed = false; // True to allow lifetime settings bool m_moduleWithGenericIface = false; // If current module contains generic interface @@ -187,46 +187,21 @@ class LinkParseVisitor final : public VNVisitor { V3Control::applyFTask(m_modp, nodep); cleanFileline(nodep); VL_RESTORER(m_ftaskp); - VL_RESTORER(m_lifetime); m_ftaskp = nodep; + VL_RESTORER(m_lifetime); VL_RESTORER(m_lifetimeAllowed); m_lifetimeAllowed = true; if (!nodep->lifetime().isNone()) { - m_lifetime = nodep->lifetime(); + m_lifetime = nodep->lifetime().makeImplicit(); } else { if (nodep->classMethod()) { // Class methods are automatic by default - m_lifetime = VLifetime::AUTOMATIC; + m_lifetime = VLifetime::AUTOMATIC_IMPLICIT; } else if (nodep->dpiImport() || VN_IS(nodep, Property)) { // DPI-imported functions and properties don't have lifetime specifiers m_lifetime = VLifetime::NONE; } nodep->lifetime(m_lifetime); - for (AstNode* itemp = nodep->stmtsp(); itemp; itemp = itemp->nextp()) { - AstVar* const varp = VN_CAST(itemp, Var); - if (varp && varp->valuep() && varp->lifetime().isNone() - && nodep->lifetime().isStatic() && !varp->isIO()) { - if (VN_IS(m_modp, Module)) { - nodep->v3warn(IMPLICITSTATIC, - "Function/task's lifetime implicitly set to static\n" - << nodep->warnMore() - << "... Suggest use 'function automatic' or " - "'function static'\n" - << nodep->warnContextPrimary() << '\n' - << varp->warnOther() - << "... Location of implicit static variable\n" - << varp->warnContextSecondary() << '\n' - << "... Suggest use 'function automatic' or " - "'function static'"); - } else { - varp->v3warn(IMPLICITSTATIC, - "Variable's lifetime implicitly set to static\n" - << nodep->warnMore() - << "... Suggest use 'static' before " - "variable declaration'"); - } - } - } } if (nodep->classMethod() && nodep->lifetime().isStatic()) { nodep->v3error("Class function/task cannot be static lifetime ('" @@ -236,14 +211,6 @@ class LinkParseVisitor final : public VNVisitor { } iterateChildren(nodep); } - void visit(AstNodeFTaskRef* nodep) override { - if (nodep->user1SetOnce()) return; // Process only once. - cleanFileline(nodep); - UINFO(5, " " << nodep); - VL_RESTORER(m_valueModp); - m_valueModp = nullptr; - iterateChildren(nodep); - } void visit(AstNodeDType* nodep) override { visitIterateNodeDType(nodep); } void visit(AstConstraint* nodep) override { v3Global.useRandomizeMethods(true); @@ -296,29 +263,53 @@ class LinkParseVisitor final : public VNVisitor { void visit(AstVar* nodep) override { cleanFileline(nodep); if (nodep->lifetime().isStatic() && m_insideLoop && nodep->valuep()) { - nodep->lifetime(VLifetime::AUTOMATIC); + nodep->lifetime(VLifetime::AUTOMATIC_IMPLICIT); nodep->v3warn(STATICVAR, "Static variable with assignment declaration declared in a " "loop converted to automatic"); + } else if (nodep->valuep() && nodep->lifetime().isNone() && m_lifetime.isStatic() + && !nodep->isIO() + // In task, or a procedure but not Initial/Final as executed only once + && ((m_ftaskp && !m_ftaskp->lifetime().isStaticExplicit()) + || (m_procedurep && !VN_IS(m_procedurep, Initial) + && !VN_IS(m_procedurep, Final)))) { + if (VN_IS(m_modp, Module) && m_ftaskp) { + m_ftaskp->v3warn( + IMPLICITSTATIC, + "Function/task's lifetime implicitly set to static\n" + << m_ftaskp->warnMore() << "... Suggest use '" << m_ftaskp->verilogKwd() + << " automatic' or '" << m_ftaskp->verilogKwd() << " static'\n" + << m_ftaskp->warnContextPrimary() << '\n' + << nodep->warnOther() << "... Location of implicit static variable\n" + << nodep->warnMore() << "... The initializer value will only be set once\n" + << nodep->warnContextSecondary()); + } else { + nodep->v3warn(IMPLICITSTATIC, + "Variable's lifetime implicitly set to static\n" + << nodep->warnMore() + << "... The initializer value will only be set once\n" + << nodep->warnMore() + << "... Suggest use 'static' before variable declaration'"); + } } if (!m_lifetimeAllowed && nodep->lifetime().isAutomatic()) { nodep->v3error( "Module variables cannot have automatic lifetime (IEEE 1800-2023 6.21): " << nodep->prettyNameQ()); - nodep->lifetime(VLifetime::STATIC); + nodep->lifetime(VLifetime::STATIC_IMPLICIT); } if (!nodep->direction().isAny()) { // Not a port if (nodep->lifetime().isNone()) { if (m_lifetimeAllowed) { nodep->lifetime(m_lifetime); } else { // Module's always static per IEEE 1800-2023 6.21 - nodep->lifetime(VLifetime::STATIC); + nodep->lifetime(VLifetime::STATIC_IMPLICIT); } } } else if (m_ftaskp) { - nodep->lifetime(VLifetime::AUTOMATIC); - } else if (nodep->lifetime() - .isNone()) { // lifetime shouldn't be unknown, set static if none - nodep->lifetime(VLifetime::STATIC); + if (!nodep->lifetime().isAutomatic()) nodep->lifetime(VLifetime::AUTOMATIC_IMPLICIT); + } else if (nodep->lifetime().isNone()) { + // lifetime shouldn't be unknown, set static if none + nodep->lifetime(VLifetime::STATIC_IMPLICIT); } if (nodep->isGParam() && !nodep->isAnsi()) { // shadow some parameters into localparams @@ -383,7 +374,8 @@ class LinkParseVisitor final : public VNVisitor { iterateChildren(nodep); m_varp = nullptr; // temporaries under an always aren't expected to be blocking - if (m_inAlways) nodep->fileline()->modifyWarnOff(V3ErrorCode::BLKSEQ, true); + if (m_procedurep && VN_IS(m_procedurep, Always)) + nodep->fileline()->modifyWarnOff(V3ErrorCode::BLKSEQ, true); if (nodep->valuep()) { // A variable with an = value can be three things: FileLine* const fl = nodep->valuep()->fileline(); @@ -631,11 +623,12 @@ class LinkParseVisitor final : public VNVisitor { m_beginDepth = 0; m_implTypedef.clear(); m_valueModp = nodep; - m_lifetime = nodep->lifetime(); + m_lifetime = nodep->lifetime().makeImplicit(); m_lifetimeAllowed = VN_IS(nodep, Class); m_moduleWithGenericIface = false; if (m_lifetime.isNone()) { - m_lifetime = VN_IS(nodep, Class) ? VLifetime::AUTOMATIC : VLifetime::STATIC; + m_lifetime + = VN_IS(nodep, Class) ? VLifetime::AUTOMATIC_IMPLICIT : VLifetime::STATIC_IMPLICIT; } if (nodep->name() == "TOP") { // May mess up scope resolution and cause infinite loop @@ -648,7 +641,7 @@ class LinkParseVisitor final : public VNVisitor { } } void visitIterateNoValueMod(AstNode* nodep) { - // Iterate a node which any Var within shouldn't create an Initial procedure + // Iterate a node which any Var within shouldn't create an InitialAutomatic procedure cleanFileline(nodep); VL_RESTORER(m_valueModp); m_valueModp = nullptr; @@ -657,13 +650,8 @@ class LinkParseVisitor final : public VNVisitor { void visit(AstNodeProcedure* nodep) override { VL_RESTORER(m_lifetimeAllowed); m_lifetimeAllowed = true; - visitIterateNoValueMod(nodep); - } - void visit(AstAlways* nodep) override { - VL_RESTORER(m_inAlways); - m_inAlways = true; - VL_RESTORER(m_lifetimeAllowed); - m_lifetimeAllowed = true; + VL_RESTORER(m_procedurep); + m_procedurep = nodep; visitIterateNoValueMod(nodep); } void visit(AstCover* nodep) override { visitIterateNoValueMod(nodep); } diff --git a/src/V3ParseGrammar.h b/src/V3ParseGrammar.h index 2462ef0fd..0c391f5a9 100644 --- a/src/V3ParseGrammar.h +++ b/src/V3ParseGrammar.h @@ -96,7 +96,7 @@ public: // Hidden static to take unspecified reference argument results AstVar* const defaultVarp = new AstVar{nodep->fileline(), VVarType::MEMBER, "__Vint", nodep->findIntDType()}; - defaultVarp->lifetime(VLifetime::STATIC); + defaultVarp->lifetime(VLifetime::STATIC_EXPLICIT); nodep->addStmtsp(defaultVarp); // IEEE: function void sample() @@ -125,7 +125,7 @@ public: { AstVar* const varp = new AstVar{nodep->fileline(), VVarType::MEMBER, name, nodep->findDoubleDType()}; - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); varp->funcLocal(true); varp->direction(VDirection::OUTPUT); varp->funcReturn(true); @@ -134,7 +134,7 @@ public: for (const string& varname : {"covered_bins"s, "total_bins"s}) { AstVar* const varp = new AstVar{nodep->fileline(), VVarType::MEMBER, varname, nodep->findStringDType()}; - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); varp->funcLocal(true); varp->direction(VDirection::INPUT); varp->valuep(new AstVarRef{nodep->fileline(), defaultVarp, VAccess::READ}); @@ -150,7 +150,7 @@ public: nodep->addMembersp(funcp); AstVar* const varp = new AstVar{nodep->fileline(), VVarType::MEMBER, "name", nodep->findStringDType()}; - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); varp->funcLocal(true); varp->direction(VDirection::INPUT); funcp->addStmtsp(varp); diff --git a/src/V3ParseImp.h b/src/V3ParseImp.h index df7705388..722896b89 100644 --- a/src/V3ParseImp.h +++ b/src/V3ParseImp.h @@ -93,7 +93,7 @@ struct VMemberQualifiers final { if (m_randc) nodep->rand(VRandAttr::RAND_CYCLIC); if (m_local) nodep->isHideLocal(true); if (m_protected) nodep->isHideProtected(true); - if (m_static) nodep->lifetime(VLifetime::STATIC); + if (m_static) nodep->lifetime(VLifetime::STATIC_EXPLICIT); if (m_const) nodep->isConst(true); if (m_virtual) { nodep->v3error("Syntax error: 'virtual' not allowed before var declaration"); diff --git a/src/V3Randomize.cpp b/src/V3Randomize.cpp index 327617b44..631a70dbf 100644 --- a/src/V3Randomize.cpp +++ b/src/V3Randomize.cpp @@ -1105,7 +1105,7 @@ class CaptureVisitor final : public VNVisitor { newVarp->varType(VVarType::BLOCKTEMP); newVarp->funcLocal(true); newVarp->direction(VDirection::INPUT); - newVarp->lifetime(VLifetime::AUTOMATIC); + newVarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); m_varCloneMap.emplace(varrefp->varp(), newVarp); varp = newVarp; @@ -1133,7 +1133,7 @@ class CaptureVisitor final : public VNVisitor { v3Global.rootp()->typeTablep()->addTypesp(refDTypep); m_thisp = new AstVar{fl, VVarType::BLOCKTEMP, "__Vthis", refDTypep}; m_thisp->funcLocal(true); - m_thisp->lifetime(VLifetime::AUTOMATIC); + m_thisp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); m_thisp->direction(VDirection::INPUT); m_argsp = AstNode::addNext(m_argsp, new AstArg{fl, "", new AstThisRef{fl, refDTypep}}); } @@ -1515,7 +1515,7 @@ class RandomizeVisitor final : public VNVisitor { AstNodeExpr* const rhsp, bool inTask) { AstVar* const iterVarp = new AstVar{fl, VVarType::BLOCKTEMP, "i", lhsp->findUInt32DType()}; iterVarp->funcLocal(inTask); - iterVarp->lifetime(VLifetime::AUTOMATIC); + iterVarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); AstCMethodHard* const sizep = new AstCMethodHard{fl, lhsp, "size", nullptr}; sizep->dtypeSetUInt32(); AstCMethodHard* const setp = new AstCMethodHard{ @@ -1829,7 +1829,7 @@ class RandomizeVisitor final : public VNVisitor { AstVar* const randModeTmpVarp = new AstVar{ fl, VVarType::BLOCKTEMP, m_modeUniqueNames.get(randModeVarp), randModeVarp->dtypep()}; randModeTmpVarp->funcLocal(m_ftaskp); - randModeTmpVarp->lifetime(VLifetime::AUTOMATIC); + randModeTmpVarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); storeStmtspr = AstNode::addNext( storeStmtspr, new AstAssign{fl, new AstVarRef{fl, randModeTmpVarp, VAccess::WRITE}, @@ -2308,7 +2308,7 @@ class RandomizeVisitor final : public VNVisitor { "__Varg"s + std::to_string(++argn), exprp->dtypep()}; refvarp->direction(VDirection::REF); refvarp->funcLocal(true); - refvarp->lifetime(VLifetime::AUTOMATIC); + refvarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); randomizeFuncp->addStmtsp(refvarp); const size_t width = exprp->width(); @@ -2541,7 +2541,7 @@ AstFunc* V3Randomize::newRandomizeFunc(VMemberMap& memberMap, AstClass* nodep, ? new AstVar{nodep->fileline(), VVarType::MEMBER, name, VFlagChildDType{}, dtypep} : new AstVar{nodep->fileline(), VVarType::MEMBER, name, dtypep}; - fvarp->lifetime(VLifetime::AUTOMATIC); + fvarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); fvarp->funcLocal(true); fvarp->funcReturn(true); fvarp->direction(VDirection::OUTPUT); @@ -2562,7 +2562,7 @@ AstFunc* V3Randomize::newRandomizeStdFunc(VMemberMap& memberMap, AstNodeModule* v3Global.useRandomizeMethods(true); AstNodeDType* const dtypep = nodep->findBitDType(32, 32, VSigning::SIGNED); AstVar* const fvarp = new AstVar{nodep->fileline(), VVarType::MEMBER, name, dtypep}; - fvarp->lifetime(VLifetime::AUTOMATIC); + fvarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); fvarp->funcLocal(true); fvarp->funcReturn(true); fvarp->direction(VDirection::OUTPUT); @@ -2586,7 +2586,7 @@ AstFunc* V3Randomize::newSRandomFunc(VMemberMap& memberMap, AstClass* nodep) { AstNodeDType* const dtypep = basep->findBitDType(32, 32, VSigning::SIGNED); // IEEE says argument 0/1 AstVar* const ivarp = new AstVar{basep->fileline(), VVarType::MEMBER, "seed", dtypep}; - ivarp->lifetime(VLifetime::AUTOMATIC); + ivarp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); ivarp->funcLocal(true); ivarp->direction(VDirection::INPUT); funcp = new AstFunc{basep->fileline(), "srandom", ivarp, nullptr}; diff --git a/src/V3Scope.cpp b/src/V3Scope.cpp index f41de7fd7..e2cd02f26 100644 --- a/src/V3Scope.cpp +++ b/src/V3Scope.cpp @@ -35,7 +35,7 @@ VL_DEFINE_DEBUG_FUNCTIONS; class ScopeVisitor final : public VNVisitor { // NODE STATE - // AstVar::user1p -> AstVarScope replacement for this variable + // AstVar::user1p -> AstVarScope*. Replacement for this variable // AstCell::user2p -> AstScope*. The scope created inside the cell // AstTask::user2p -> AstTask*. Replacement task const VNUser1InUse m_inuser1; @@ -47,6 +47,7 @@ class ScopeVisitor final : public VNVisitor { // STATE, inside processing a single module AstNodeModule* m_modp = nullptr; // Current module + AstNodeProcedure* m_procedurep = nullptr; // Current procedure AstScope* m_scopep = nullptr; // Current scope we are building // STATE, for passing down one level of hierarchy (may need save/restore) AstCell* m_aboveCellp = nullptr; // Cell that instantiates this module @@ -197,6 +198,10 @@ class ScopeVisitor final : public VNVisitor { } void visit(AstNodeProcedure* nodep) override { // Add to list of blocks under this scope + // Check don't miss varref scope assignments + UASSERT_OBJ(!m_procedurep, nodep, "prodedure in procedure"); + VL_RESTORER(m_procedurep); + m_procedurep = nodep; UINFO(4, " Move " << nodep); AstNode* const clonep = nodep->cloneTree(false); nodep->user2p(clonep); diff --git a/src/V3Unknown.cpp b/src/V3Unknown.cpp index 44c1289bf..4086bed42 100644 --- a/src/V3Unknown.cpp +++ b/src/V3Unknown.cpp @@ -346,7 +346,7 @@ class UnknownVisitor final : public VNVisitor { AstVar* const newvarp = new AstVar{nodep->fileline(), VVarType::XTEMP, m_xrandNames->get(nullptr), VFlagLogicPacked{}, nodep->width()}; - newvarp->lifetime(VLifetime::STATIC); + newvarp->lifetime(VLifetime::STATIC_EXPLICIT); ++m_statUnkVars; VNRelinker replaceHandle; nodep->unlinkFrBack(&replaceHandle); diff --git a/src/V3Width.cpp b/src/V3Width.cpp index a9696b748..1d0167c52 100644 --- a/src/V3Width.cpp +++ b/src/V3Width.cpp @@ -8436,7 +8436,7 @@ class WidthVisitor final : public VNVisitor { "__Venumtab_" + VString::downcase(attrType.ascii()) + cvtToStr(nodep->uniqueNum()), vardtypep}; - varp->lifetime(VLifetime::STATIC); + varp->lifetime(VLifetime::STATIC_EXPLICIT); varp->isConst(true); varp->isStatic(true); varp->valuep(initp); diff --git a/src/verilog.y b/src/verilog.y index c4d72502d..57655ac5e 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -3952,14 +3952,14 @@ for_initializationItem: // IEEE: variable_assignment + for_varia data_type idAny/*new*/ '=' expr { VARRESET_NONLIST(VAR); VARDTYPE($1); AstVar* const varp = VARDONEA($2, *$2, nullptr, nullptr); - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); $$ = varp; $$->addNext(new AstAssign{$3, new AstParseRef{$2, VParseRefExp::PX_TEXT, *$2}, $4}); } // // IEEE-2012: | yVAR data_type idAny/*new*/ '=' expr { VARRESET_NONLIST(VAR); VARDTYPE($2); AstVar* const varp = VARDONEA($3, *$3, nullptr, nullptr); - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); $$ = varp; $$->addNext(new AstAssign{$4, new AstParseRef{$3, VParseRefExp::PX_TEXT, *$3}, $5}); } // // IEEE: variable_assignment @@ -3967,7 +3967,7 @@ for_initializationItem: // IEEE: variable_assignment + for_varia | id/*newOrExisting*/ '=' expr { if (GRAMMARP->m_varDecl) { AstVar* const varp = VARDONEA($1, *$1, nullptr, nullptr); - varp->lifetime(VLifetime::AUTOMATIC); + varp->lifetime(VLifetime::AUTOMATIC_EXPLICIT); $$ = varp; $$->addNext(new AstAssign{$2, new AstParseRef{$1, VParseRefExp::PX_TEXT, *$1}, $3}); } else { @@ -4538,8 +4538,8 @@ lifetimeE: // IEEE: [lifetime] lifetime: // ==IEEE: lifetime // // Note lifetime used by members is instead under memberQual - ySTATIC__ETC { $$ = VLifetime::STATIC; } - | yAUTOMATIC { $$ = VLifetime::AUTOMATIC; } + ySTATIC__ETC { $$ = VLifetime::STATIC_EXPLICIT; } + | yAUTOMATIC { $$ = VLifetime::AUTOMATIC_EXPLICIT; } ; taskId: @@ -5364,7 +5364,7 @@ let_port_item: // IEEE: let_port_Item { $$ = new AstVar{$2, VVarType::VAR, *$2, VFlagChildDType{}, new AstBasicDType{$2, LOGIC_IMPLICIT}}; $$->direction(VDirection::INOUT); - $$->lifetime(VLifetime::AUTOMATIC); + $$->lifetime(VLifetime::AUTOMATIC_EXPLICIT); if ($4) $$->valuep($4); PINNUMINC(); } | data_type idAny/*formal_port_identifier*/ variable_dimensionListE exprEqE @@ -5372,7 +5372,7 @@ let_port_item: // IEEE: let_port_Item $$ = new AstVar{$2, VVarType::VAR, *$2, VFlagChildDType{}, new AstBasicDType{$2, LOGIC_IMPLICIT}}; $$->direction(VDirection::INOUT); - $$->lifetime(VLifetime::AUTOMATIC); + $$->lifetime(VLifetime::AUTOMATIC_EXPLICIT); if ($4) $$->valuep($4); PINNUMINC(); } | implicit_typeE id/*formal_port_identifier*/ variable_dimensionListE exprEqE @@ -5380,7 +5380,7 @@ let_port_item: // IEEE: let_port_Item $$ = new AstVar{$2, VVarType::VAR, *$2, VFlagChildDType{}, new AstBasicDType{$2, LOGIC_IMPLICIT}}; $$->direction(VDirection::INOUT); - $$->lifetime(VLifetime::AUTOMATIC); + $$->lifetime(VLifetime::AUTOMATIC_EXPLICIT); if ($4) $$->valuep($4); PINNUMINC(); } ; diff --git a/test_regress/t/t_assoc_wildcard.v b/test_regress/t/t_assoc_wildcard.v index 9469243b3..fd7ea4a03 100644 --- a/test_regress/t/t_assoc_wildcard.v +++ b/test_regress/t/t_assoc_wildcard.v @@ -23,8 +23,8 @@ module t (/*AUTOARG*/ begin // Wildcard typedef string dict_t [*]; - string a [*] = '{default: "nope", "BBBBB": "fooing", 23'h434343: "baring"}; - dict_t b = '{default: "nope", "BBBBB": "fooing", 23'h434343: "baring"}; + static string a [*] = '{default: "nope", "BBBBB": "fooing", 23'h434343: "baring"}; + static dict_t b = '{default: "nope", "BBBBB": "fooing", 23'h434343: "baring"}; int k; string v; diff --git a/test_regress/t/t_clocking_timing.v b/test_regress/t/t_clocking_timing.v index f918f5665..0c19d9a0e 100644 --- a/test_regress/t/t_clocking_timing.v +++ b/test_regress/t/t_clocking_timing.v @@ -54,7 +54,8 @@ module t; always begin - sig_t val = '0; + sig_t val; + val = '0; cb.D <= val; for (int i = 0; i < 5; i++) begin ##(`TEST_CYCLE_DELAY+`TEST_OUTPUT_SKEW/`TEST_CLK_PERIOD+1) val = {`TEST_WIDTH{(`TEST_BITS/`TEST_WIDTH)'('ha + i)}}; diff --git a/test_regress/t/t_constraint_json_only.out b/test_regress/t/t_constraint_json_only.out index 3735055c5..7ae46914e 100644 --- a/test_regress/t/t_constraint_json_only.out +++ b/test_regress/t/t_constraint_json_only.out @@ -2,7 +2,7 @@ "modulesp": [ {"type":"MODULE","name":"t","addr":"(F)","loc":"d,67:8,67:9","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"t","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"p","addr":"(G)","loc":"d,69:11,69:12","dtypep":"(H)","origName":"p","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"Packet","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"p","addr":"(G)","loc":"d,69:11,69:12","dtypep":"(H)","origName":"p","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"Packet","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"INITIAL","name":"","addr":"(I)","loc":"d,71:4,71:11","isSuspendable":false,"needProcess":false, "stmtsp": [ {"type":"BEGIN","name":"","addr":"(J)","loc":"d,71:12,71:17","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [], @@ -19,21 +19,21 @@ "stmtsp": [ {"type":"CLASS","name":"Packet","addr":"(O)","loc":"d,7:1,7:6","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"Packet","level":4,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","classOrPackagep":"UNLINKED","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"header","addr":"(P)","loc":"d,8:13,8:19","dtypep":"(Q)","origName":"header","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"int","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"length","addr":"(R)","loc":"d,9:13,9:19","dtypep":"(Q)","origName":"length","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"int","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"sublength","addr":"(S)","loc":"d,10:13,10:22","dtypep":"(Q)","origName":"sublength","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"int","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"if_4","addr":"(T)","loc":"d,11:13,11:17","dtypep":"(U)","origName":"if_4","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"iff_5_6","addr":"(V)","loc":"d,12:13,12:20","dtypep":"(U)","origName":"iff_5_6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"if_state_ok","addr":"(W)","loc":"d,13:13,13:24","dtypep":"(U)","origName":"if_state_ok","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"array","addr":"(X)","loc":"d,15:13,15:18","dtypep":"(Y)","origName":"array","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"state","addr":"(Z)","loc":"d,17:11,17:16","dtypep":"(M)","origName":"state","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"header","addr":"(P)","loc":"d,8:13,8:19","dtypep":"(Q)","origName":"header","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"int","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"length","addr":"(R)","loc":"d,9:13,9:19","dtypep":"(Q)","origName":"length","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"int","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"sublength","addr":"(S)","loc":"d,10:13,10:22","dtypep":"(Q)","origName":"sublength","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"int","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"if_4","addr":"(T)","loc":"d,11:13,11:17","dtypep":"(U)","origName":"if_4","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"iff_5_6","addr":"(V)","loc":"d,12:13,12:20","dtypep":"(U)","origName":"iff_5_6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"if_state_ok","addr":"(W)","loc":"d,13:13,13:24","dtypep":"(U)","origName":"if_state_ok","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"array","addr":"(X)","loc":"d,15:13,15:18","dtypep":"(Y)","origName":"array","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"state","addr":"(Z)","loc":"d,17:11,17:16","dtypep":"(M)","origName":"state","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"FUNC","name":"strings_equal","addr":"(AB)","loc":"d,61:17,61:30","dtypep":"(U)","method":true,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"strings_equal", "fvarp": [ {"type":"VAR","name":"strings_equal","addr":"(BB)","loc":"d,61:17,61:30","dtypep":"(U)","origName":"strings_equal","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":true,"isFuncLocal":true,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ],"classOrPackagep": [], "stmtsp": [ - {"type":"VAR","name":"a","addr":"(CB)","loc":"d,61:38,61:39","dtypep":"(M)","origName":"a","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":true,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"b","addr":"(DB)","loc":"d,61:48,61:49","dtypep":"(M)","origName":"b","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":true,"lifetime":"VAUTOM","varType":"MEMBER","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"a","addr":"(CB)","loc":"d,61:38,61:39","dtypep":"(M)","origName":"a","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":true,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"b","addr":"(DB)","loc":"d,61:48,61:49","dtypep":"(M)","origName":"b","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":true,"lifetime":"VAUTOMI","varType":"MEMBER","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"ASSIGN","name":"","addr":"(EB)","loc":"d,62:7,62:13","dtypep":"(U)", "rhsp": [ {"type":"EQN","name":"","addr":"(FB)","loc":"d,62:16,62:18","dtypep":"(GB)", diff --git a/test_regress/t/t_cover_line.out b/test_regress/t/t_cover_line.out index 484f5c365..820f4f2a7 100644 --- a/test_regress/t/t_cover_line.out +++ b/test_regress/t/t_cover_line.out @@ -258,15 +258,15 @@ class Cls; bit m_toggle; -%000001 function new(bit toggle); --000001 point: comment=block hier=top.$unit::Cls__Vclpkg -%000001 m_toggle = toggle; --000001 point: comment=block hier=top.$unit::Cls__Vclpkg -%000001 if (m_toggle) begin // CHECK_COVER(0,"top.$unit::Cls",1) --000001 point: comment=if hier=top.$unit::Cls__Vclpkg + 000011 function new(bit toggle); ++000011 point: comment=block hier=top.$unit::Cls__Vclpkg + 000011 m_toggle = toggle; ++000011 point: comment=block hier=top.$unit::Cls__Vclpkg +~000011 if (m_toggle) begin // CHECK_COVER(0,"top.$unit::Cls",1) ++000011 point: comment=if hier=top.$unit::Cls__Vclpkg -000000 point: comment=else hier=top.$unit::Cls__Vclpkg -%000001 $write(""); --000001 point: comment=if hier=top.$unit::Cls__Vclpkg + 000011 $write(""); ++000011 point: comment=if hier=top.$unit::Cls__Vclpkg end endfunction 000011 static function void fstatic(bit toggle); @@ -304,7 +304,7 @@ +000010 point: comment=block hier=top.t.t1 end - 000011 task center_task; + 000011 task automatic center_task; +000011 point: comment=block hier=top.t.t1 input external; 000011 begin @@ -324,8 +324,9 @@ end 000011 begin +000011 point: comment=block hier=top.t.t1 -%000001 Cls c = new(1'b1); --000001 point: comment=block hier=top.t.t1 + Cls c; + 000011 c = new(1'b1); ++000011 point: comment=block hier=top.t.t1 000011 c.fauto(); +000011 point: comment=block hier=top.t.t1 000011 Cls::fstatic(1'b1); diff --git a/test_regress/t/t_cover_line.v b/test_regress/t/t_cover_line.v index 391497371..a6df141ce 100644 --- a/test_regress/t/t_cover_line.v +++ b/test_regress/t/t_cover_line.v @@ -216,7 +216,7 @@ module tsk (/*AUTOARG*/ center_task(1'b0); end - task center_task; + task automatic center_task; input external; begin if (toggle) begin // CHECK_COVER(0,"top.t.t1",1) @@ -227,7 +227,8 @@ module tsk (/*AUTOARG*/ end end begin - Cls c = new(1'b1); + Cls c; + c = new(1'b1); c.fauto(); Cls::fstatic(1'b1); end diff --git a/test_regress/t/t_cover_line_cc.info.out b/test_regress/t/t_cover_line_cc.info.out index 72f6b2ce8..d5225250c 100644 --- a/test_regress/t/t_cover_line_cc.info.out +++ b/test_regress/t/t_cover_line_cc.info.out @@ -86,12 +86,12 @@ BRDA:170,0,0,2 BRDA:170,0,1,18 DA:172,2 DA:174,18 -DA:188,1 -DA:189,1 -DA:190,1 -BRDA:190,0,0,1 +DA:188,11 +DA:189,11 +DA:190,11 +BRDA:190,0,0,11 BRDA:190,0,1,0 -DA:191,1 +DA:191,11 DA:194,11 DA:195,11 BRDA:195,0,0,11 @@ -115,97 +115,97 @@ BRDA:225,0,0,1 BRDA:225,0,1,10 DA:226,1 DA:229,11 -DA:230,1 DA:231,11 DA:232,11 -DA:252,10 -DA:253,9 -BRDA:253,0,0,1 -BRDA:253,0,1,9 -DA:255,1 +DA:233,11 +DA:253,10 +DA:254,9 +BRDA:254,0,0,1 +BRDA:254,0,1,9 DA:256,1 -BRDA:256,0,0,0 -BRDA:256,0,1,1 -DA:265,10 +DA:257,1 +BRDA:257,0,0,0 +BRDA:257,0,1,1 DA:266,10 -DA:267,1 +DA:267,10 DA:268,1 DA:269,1 DA:270,1 DA:271,1 -DA:272,5 -DA:276,10 +DA:272,1 +DA:273,5 DA:277,10 -DA:287,0 +DA:278,10 DA:288,0 -BRDA:288,0,0,0 -BRDA:288,0,1,0 DA:289,0 -DA:291,0 +BRDA:289,0,0,0 +BRDA:289,0,1,0 +DA:290,0 DA:292,0 -DA:294,0 -DA:300,1 -DA:303,1 -DA:304,20 +DA:293,0 +DA:295,0 +DA:301,1 +DA:304,1 DA:305,20 -DA:314,1 -DA:317,21 +DA:306,20 +DA:315,1 DA:318,21 DA:319,21 -DA:322,10 -DA:324,10 -DA:327,31 -BRDA:327,0,0,0 -BRDA:327,0,1,31 -DA:328,28 -BRDA:328,0,0,3 -BRDA:328,0,1,28 -DA:329,21 -BRDA:329,0,0,21 -BRDA:329,0,1,0 -DA:330,10 +DA:320,21 +DA:323,10 +DA:325,10 +DA:328,31 +BRDA:328,0,0,0 +BRDA:328,0,1,31 +DA:329,28 +BRDA:329,0,0,3 +BRDA:329,0,1,28 +DA:330,21 +BRDA:330,0,0,21 +BRDA:330,0,1,0 DA:331,10 -BRDA:331,0,0,10 -BRDA:331,0,1,3 -BRDA:331,0,2,7 DA:332,10 BRDA:332,0,0,10 -BRDA:332,0,1,0 -BRDA:332,0,2,10 -DA:334,19 -BRDA:334,0,0,12 -BRDA:334,0,1,19 -BRDA:334,0,2,7 -BRDA:334,0,3,5 -DA:337,11 -BRDA:337,0,0,11 -BRDA:337,0,1,0 -DA:343,11 -BRDA:343,0,0,10 -BRDA:343,0,1,11 -DA:346,11 -DA:347,10 -BRDA:347,0,0,0 -BRDA:347,0,1,1 -BRDA:347,0,2,1 -BRDA:347,0,3,10 +BRDA:332,0,1,3 +BRDA:332,0,2,7 +DA:333,10 +BRDA:333,0,0,10 +BRDA:333,0,1,0 +BRDA:333,0,2,10 +DA:335,19 +BRDA:335,0,0,12 +BRDA:335,0,1,19 +BRDA:335,0,2,7 +BRDA:335,0,3,5 +DA:338,11 +BRDA:338,0,0,11 +BRDA:338,0,1,0 +DA:344,11 +BRDA:344,0,0,10 +BRDA:344,0,1,11 +DA:347,11 DA:348,10 -DA:350,11 -BRDA:350,0,0,11 -BRDA:350,0,1,1 -BRDA:350,0,2,10 -DA:353,55 -BRDA:353,0,0,11 -BRDA:353,0,1,55 +BRDA:348,0,0,0 +BRDA:348,0,1,1 +BRDA:348,0,2,1 +BRDA:348,0,3,10 +DA:349,10 +DA:351,11 +BRDA:351,0,0,11 +BRDA:351,0,1,1 +BRDA:351,0,2,10 DA:354,55 -DA:356,44 -BRDA:356,0,0,11 -BRDA:356,0,1,44 +BRDA:354,0,0,11 +BRDA:354,0,1,55 +DA:355,55 DA:357,44 -DA:360,11 -BRDA:360,0,0,0 -BRDA:360,0,1,11 +BRDA:357,0,0,11 +BRDA:357,0,1,44 +DA:358,44 DA:361,11 +BRDA:361,0,0,0 +BRDA:361,0,1,11 +DA:362,11 BRF:77 -BRH:29 +BRH:30 end_of_record diff --git a/test_regress/t/t_cover_line_trace.out b/test_regress/t/t_cover_line_trace.out index bd95a37b4..654d78ec4 100644 --- a/test_regress/t/t_cover_line_trace.out +++ b/test_regress/t/t_cover_line_trace.out @@ -1,184 +1,183 @@ $version Generated by VerilatedVcd $end $timescale 1ps $end $scope module top $end - $var wire 1 4! clk $end + $var wire 1 2! clk $end $scope module t $end - $var wire 1 4! clk $end - $var wire 1 A toggle $end + $var wire 1 2! clk $end + $var wire 1 ? toggle $end $var wire 32 # vlCoverageLineTrace_t_cover_line__15_block [31:0] $end - $var wire 32 B cyc [31:0] $end + $var wire 32 @ cyc [31:0] $end $var wire 32 $ vlCoverageLineTrace_t_cover_line__18_block [31:0] $end - $var wire 8 C cyc_copy [7:0] $end + $var wire 8 A cyc_copy [7:0] $end $scope module b1 $end - $var wire 1 4! clk $end - $var wire 1 A toggle $end - $var wire 32 (! vlCoverageLineTrace_t_cover_line__164_block [31:0] $end - $var wire 32 )! vlCoverageLineTrace_t_cover_line__166_else [31:0] $end - $var wire 32 L! vlCoverageLineTrace_t_cover_line__166_if [31:0] $end - $var wire 32 *! vlCoverageLineTrace_t_cover_line__170_else [31:0] $end - $var wire 32 +! vlCoverageLineTrace_t_cover_line__170_if [31:0] $end - $var wire 32 ,! vlCoverageLineTrace_t_cover_line__174_else [31:0] $end + $var wire 1 2! clk $end + $var wire 1 ? toggle $end + $var wire 32 &! vlCoverageLineTrace_t_cover_line__164_block [31:0] $end + $var wire 32 '! vlCoverageLineTrace_t_cover_line__166_else [31:0] $end + $var wire 32 K! vlCoverageLineTrace_t_cover_line__166_if [31:0] $end + $var wire 32 (! vlCoverageLineTrace_t_cover_line__170_else [31:0] $end + $var wire 32 )! vlCoverageLineTrace_t_cover_line__170_if [31:0] $end + $var wire 32 *! vlCoverageLineTrace_t_cover_line__174_else [31:0] $end $upscope $end $scope module b2 $end - $var wire 1 4! clk $end - $var wire 1 A toggle $end - $var wire 32 -! vlCoverageLineTrace_t_cover_line__164_block [31:0] $end - $var wire 32 .! vlCoverageLineTrace_t_cover_line__166_else [31:0] $end - $var wire 32 M! vlCoverageLineTrace_t_cover_line__166_if [31:0] $end - $var wire 32 /! vlCoverageLineTrace_t_cover_line__170_else [31:0] $end - $var wire 32 0! vlCoverageLineTrace_t_cover_line__170_if [31:0] $end - $var wire 32 1! vlCoverageLineTrace_t_cover_line__174_else [31:0] $end + $var wire 1 2! clk $end + $var wire 1 ? toggle $end + $var wire 32 +! vlCoverageLineTrace_t_cover_line__164_block [31:0] $end + $var wire 32 ,! vlCoverageLineTrace_t_cover_line__166_else [31:0] $end + $var wire 32 L! vlCoverageLineTrace_t_cover_line__166_if [31:0] $end + $var wire 32 -! vlCoverageLineTrace_t_cover_line__170_else [31:0] $end + $var wire 32 .! vlCoverageLineTrace_t_cover_line__170_if [31:0] $end + $var wire 32 /! vlCoverageLineTrace_t_cover_line__174_else [31:0] $end $upscope $end $scope module t1 $end - $var wire 1 4! clk $end - $var wire 1 A toggle $end - $var wire 32 2! vlCoverageLineTrace_t_cover_line__215_block [31:0] $end - $var wire 32 6! vlCoverageLineTrace_t_cover_line__219_block [31:0] $end - $var wire 32 7! vlCoverageLineTrace_t_cover_line__222_else [31:0] $end - $var wire 32 8! vlCoverageLineTrace_t_cover_line__222_if [31:0] $end - $var wire 32 3! vlCoverageLineTrace_t_cover_line__225_else [31:0] $end - $var wire 32 9! vlCoverageLineTrace_t_cover_line__225_if [31:0] $end - $var wire 32 * vlCoverageLineTrace_t_cover_line__230_block [31:0] $end + $var wire 1 2! clk $end + $var wire 1 ? toggle $end + $var wire 32 0! vlCoverageLineTrace_t_cover_line__215_block [31:0] $end + $var wire 32 5! vlCoverageLineTrace_t_cover_line__219_block [31:0] $end + $var wire 32 6! vlCoverageLineTrace_t_cover_line__222_else [31:0] $end + $var wire 32 7! vlCoverageLineTrace_t_cover_line__222_if [31:0] $end + $var wire 32 1! vlCoverageLineTrace_t_cover_line__225_else [31:0] $end + $var wire 32 8! vlCoverageLineTrace_t_cover_line__225_if [31:0] $end $upscope $end - $var wire 32 D vlCoverageLineTrace_t_cover_line__55_block [31:0] $end - $var wire 32 E vlCoverageLineTrace_t_cover_line__56_else [31:0] $end - $var wire 32 F vlCoverageLineTrace_t_cover_line__56_if [31:0] $end - $var wire 32 G vlCoverageLineTrace_t_cover_line__60_else [31:0] $end - $var wire 32 H vlCoverageLineTrace_t_cover_line__60_if [31:0] $end - $var wire 32 I vlCoverageLineTrace_t_cover_line__61_else [31:0] $end - $var wire 32 J vlCoverageLineTrace_t_cover_line__61_if [31:0] $end - $var wire 32 K vlCoverageLineTrace_t_cover_line__66_else [31:0] $end - $var wire 32 L vlCoverageLineTrace_t_cover_line__66_if [31:0] $end - $var wire 32 M vlCoverageLineTrace_t_cover_line__67_else [31:0] $end - $var wire 32 N vlCoverageLineTrace_t_cover_line__67_if [31:0] $end - $var wire 32 O vlCoverageLineTrace_t_cover_line__73_else [31:0] $end - $var wire 32 P vlCoverageLineTrace_t_cover_line__73_if [31:0] $end - $var wire 32 Q vlCoverageLineTrace_t_cover_line__74_else [31:0] $end - $var wire 32 R vlCoverageLineTrace_t_cover_line__74_if [31:0] $end - $var wire 32 S vlCoverageLineTrace_t_cover_line__83_elsif [31:0] $end - $var wire 32 T vlCoverageLineTrace_t_cover_line__87_elsif [31:0] $end - $var wire 32 U vlCoverageLineTrace_t_cover_line__91_else [31:0] $end - $var wire 32 V vlCoverageLineTrace_t_cover_line__91_if [31:0] $end - $var wire 32 :! vlCoverageLineTrace_t_cover_line__100_block [31:0] $end - $var wire 32 ;! vlCoverageLineTrace_t_cover_line__101_block [31:0] $end - $var wire 32 ! k $end - $var wire 1 ?! l $end - $var wire 1 / m $end - $var wire 6 0 tab [5:0] $end - $var wire 8 f data[0][0] [7:0] $end - $var wire 8 g data[0][1] [7:0] $end - $var wire 8 h data[1][0] [7:0] $end - $var wire 8 i data[1][1] [7:0] $end - $var wire 32 % vlCoverageLineTrace_t_cover_line__314_block [31:0] $end - $var wire 32 1 vlCoverageLineTrace_t_cover_line__317_block [31:0] $end - $var wire 32 j vlCoverageLineTrace_t_cover_line__322_block [31:0] $end - $var wire 8 @! get_arr__Vstatic__arr[0] [7:0] $end - $var wire 8 A! get_arr__Vstatic__arr[1] [7:0] $end - $var wire 32 9 vlCoverageLineTrace_t_cover_line__327_cond_else [31:0] $end - $var wire 32 : vlCoverageLineTrace_t_cover_line__327_cond_then [31:0] $end - $var wire 32 ; vlCoverageLineTrace_t_cover_line__328_cond_else [31:0] $end - $var wire 32 < vlCoverageLineTrace_t_cover_line__328_cond_then [31:0] $end - $var wire 32 2 vlCoverageLineTrace_t_cover_line__329_cond_else [31:0] $end - $var wire 32 3 vlCoverageLineTrace_t_cover_line__329_cond_then [31:0] $end - $var wire 32 k vlCoverageLineTrace_t_cover_line__330_block [31:0] $end - $var wire 32 l vlCoverageLineTrace_t_cover_line__331_cond_else [31:0] $end - $var wire 32 m vlCoverageLineTrace_t_cover_line__331_cond_then [31:0] $end - $var wire 32 n vlCoverageLineTrace_t_cover_line__332_cond_else [31:0] $end - $var wire 32 o vlCoverageLineTrace_t_cover_line__332_cond_then [31:0] $end - $var wire 32 = vlCoverageLineTrace_t_cover_line__334_cond_else_1 [31:0] $end - $var wire 32 > vlCoverageLineTrace_t_cover_line__334_cond_then_1 [31:0] $end - $var wire 32 ? vlCoverageLineTrace_t_cover_line__334_cond_else [31:0] $end - $var wire 32 @ vlCoverageLineTrace_t_cover_line__334_cond_then [31:0] $end - $var wire 32 p vlCoverageLineTrace_t_cover_line__337_cond_else [31:0] $end - $var wire 32 q vlCoverageLineTrace_t_cover_line__337_cond_then [31:0] $end - $var wire 32 B! vlCoverageLineTrace_t_cover_line__343_cond_else [31:0] $end - $var wire 32 4 vlCoverageLineTrace_t_cover_line__343_cond_else_1 [31:0] $end - $var wire 32 C! vlCoverageLineTrace_t_cover_line__343_cond_then [31:0] $end - $var wire 32 5 vlCoverageLineTrace_t_cover_line__343_cond_then_1 [31:0] $end - $var wire 32 & vlCoverageLineTrace_t_cover_line__346_block [31:0] $end - $var wire 32 r vlCoverageLineTrace_t_cover_line__347_else [31:0] $end - $var wire 32 s vlCoverageLineTrace_t_cover_line__347_if [31:0] $end - $var wire 32 t vlCoverageLineTrace_t_cover_line__347_cond_else [31:0] $end - $var wire 32 u vlCoverageLineTrace_t_cover_line__347_cond_then [31:0] $end - $var wire 32 v vlCoverageLineTrace_t_cover_line__350_cond_else [31:0] $end - $var wire 32 w vlCoverageLineTrace_t_cover_line__350_cond_then [31:0] $end - $var wire 32 ' vlCoverageLineTrace_t_cover_line__353_block [31:0] $end - $var wire 32 ( vlCoverageLineTrace_t_cover_line__356_block [31:0] $end - $var wire 32 ) vlCoverageLineTrace_t_cover_line__360_else [31:0] $end - $var wire 32 D! vlCoverageLineTrace_t_cover_line__360_if [31:0] $end + $var wire 1 2! clk $end + $var wire 32 @ cyc [31:0] $end + $var wire 1 4 a $end + $var wire 1 5 b $end + $var wire 1 , c $end + $var wire 1 a d $end + $var wire 1 6 e $end + $var wire 1 b f $end + $var wire 1 - g $end + $var wire 1 c h $end + $var wire 1 =! k $end + $var wire 1 >! l $end + $var wire 1 4! m $end + $var wire 6 . tab [5:0] $end + $var wire 8 d data[0][0] [7:0] $end + $var wire 8 e data[0][1] [7:0] $end + $var wire 8 f data[1][0] [7:0] $end + $var wire 8 g data[1][1] [7:0] $end + $var wire 32 % vlCoverageLineTrace_t_cover_line__315_block [31:0] $end + $var wire 32 / vlCoverageLineTrace_t_cover_line__318_block [31:0] $end + $var wire 32 h vlCoverageLineTrace_t_cover_line__323_block [31:0] $end + $var wire 8 ?! get_arr__Vstatic__arr[0] [7:0] $end + $var wire 8 @! get_arr__Vstatic__arr[1] [7:0] $end + $var wire 32 7 vlCoverageLineTrace_t_cover_line__328_cond_else [31:0] $end + $var wire 32 8 vlCoverageLineTrace_t_cover_line__328_cond_then [31:0] $end + $var wire 32 9 vlCoverageLineTrace_t_cover_line__329_cond_else [31:0] $end + $var wire 32 : vlCoverageLineTrace_t_cover_line__329_cond_then [31:0] $end + $var wire 32 0 vlCoverageLineTrace_t_cover_line__330_cond_else [31:0] $end + $var wire 32 1 vlCoverageLineTrace_t_cover_line__330_cond_then [31:0] $end + $var wire 32 i vlCoverageLineTrace_t_cover_line__331_block [31:0] $end + $var wire 32 j vlCoverageLineTrace_t_cover_line__332_cond_else [31:0] $end + $var wire 32 k vlCoverageLineTrace_t_cover_line__332_cond_then [31:0] $end + $var wire 32 l vlCoverageLineTrace_t_cover_line__333_cond_else [31:0] $end + $var wire 32 m vlCoverageLineTrace_t_cover_line__333_cond_then [31:0] $end + $var wire 32 ; vlCoverageLineTrace_t_cover_line__335_cond_else_1 [31:0] $end + $var wire 32 < vlCoverageLineTrace_t_cover_line__335_cond_then_1 [31:0] $end + $var wire 32 = vlCoverageLineTrace_t_cover_line__335_cond_else [31:0] $end + $var wire 32 > vlCoverageLineTrace_t_cover_line__335_cond_then [31:0] $end + $var wire 32 n vlCoverageLineTrace_t_cover_line__338_cond_else [31:0] $end + $var wire 32 o vlCoverageLineTrace_t_cover_line__338_cond_then [31:0] $end + $var wire 32 A! vlCoverageLineTrace_t_cover_line__344_cond_else [31:0] $end + $var wire 32 2 vlCoverageLineTrace_t_cover_line__344_cond_else_1 [31:0] $end + $var wire 32 B! vlCoverageLineTrace_t_cover_line__344_cond_then [31:0] $end + $var wire 32 3 vlCoverageLineTrace_t_cover_line__344_cond_then_1 [31:0] $end + $var wire 32 & vlCoverageLineTrace_t_cover_line__347_block [31:0] $end + $var wire 32 p vlCoverageLineTrace_t_cover_line__348_else [31:0] $end + $var wire 32 q vlCoverageLineTrace_t_cover_line__348_if [31:0] $end + $var wire 32 r vlCoverageLineTrace_t_cover_line__348_cond_else [31:0] $end + $var wire 32 s vlCoverageLineTrace_t_cover_line__348_cond_then [31:0] $end + $var wire 32 t vlCoverageLineTrace_t_cover_line__351_cond_else [31:0] $end + $var wire 32 u vlCoverageLineTrace_t_cover_line__351_cond_then [31:0] $end + $var wire 32 ' vlCoverageLineTrace_t_cover_line__354_block [31:0] $end + $var wire 32 ( vlCoverageLineTrace_t_cover_line__357_block [31:0] $end + $var wire 32 ) vlCoverageLineTrace_t_cover_line__361_else [31:0] $end + $var wire 32 C! vlCoverageLineTrace_t_cover_line__361_if [31:0] $end $scope module unnamedblk1 $end - $var wire 32 E! i [31:0] $end + $var wire 32 D! i [31:0] $end $upscope $end $scope module unnamedblk2 $end - $var wire 32 F! i [31:0] $end + $var wire 32 E! i [31:0] $end $upscope $end $upscope $end $scope module o1 $end - $var wire 1 4! clk $end - $var wire 1 A toggle $end - $var wire 32 x vlCoverageLineTrace_t_cover_line__252_block [31:0] $end - $var wire 32 y vlCoverageLineTrace_t_cover_line__253_else [31:0] $end - $var wire 32 z vlCoverageLineTrace_t_cover_line__253_if [31:0] $end - $var wire 32 { vlCoverageLineTrace_t_cover_line__256_else [31:0] $end - $var wire 32 G! vlCoverageLineTrace_t_cover_line__256_if [31:0] $end + $var wire 1 2! clk $end + $var wire 1 ? toggle $end + $var wire 32 v vlCoverageLineTrace_t_cover_line__253_block [31:0] $end + $var wire 32 w vlCoverageLineTrace_t_cover_line__254_else [31:0] $end + $var wire 32 x vlCoverageLineTrace_t_cover_line__254_if [31:0] $end + $var wire 32 y vlCoverageLineTrace_t_cover_line__257_else [31:0] $end + $var wire 32 F! vlCoverageLineTrace_t_cover_line__257_if [31:0] $end $upscope $end $scope module par1 $end - $var wire 32 H! CALLS_FUNC [31:0] $end - $var wire 32 I! vlCoverageLineTrace_t_cover_line__287_block [31:0] $end - $var wire 32 J! vlCoverageLineTrace_t_cover_line__288_else [31:0] $end - $var wire 32 K! vlCoverageLineTrace_t_cover_line__288_if [31:0] $end + $var wire 32 G! CALLS_FUNC [31:0] $end + $var wire 32 H! vlCoverageLineTrace_t_cover_line__288_block [31:0] $end + $var wire 32 I! vlCoverageLineTrace_t_cover_line__289_else [31:0] $end + $var wire 32 J! vlCoverageLineTrace_t_cover_line__289_if [31:0] $end $upscope $end $scope module tab1 $end - $var wire 1 4! clk $end - $var wire 4 | cyc4 [3:0] $end - $var wire 32 } decoded [31:0] $end - $var wire 32 ~ vlCoverageLineTrace_t_cover_line__265_block [31:0] $end - $var wire 32 !! vlCoverageLineTrace_t_cover_line__267_case [31:0] $end - $var wire 32 "! vlCoverageLineTrace_t_cover_line__268_case [31:0] $end - $var wire 32 #! vlCoverageLineTrace_t_cover_line__269_case [31:0] $end - $var wire 32 $! vlCoverageLineTrace_t_cover_line__270_case [31:0] $end - $var wire 32 %! vlCoverageLineTrace_t_cover_line__271_case [31:0] $end - $var wire 32 &! vlCoverageLineTrace_t_cover_line__272_case [31:0] $end - $var wire 32 '! vlCoverageLineTrace_t_cover_line__276_block [31:0] $end + $var wire 1 2! clk $end + $var wire 4 z cyc4 [3:0] $end + $var wire 32 { decoded [31:0] $end + $var wire 32 | vlCoverageLineTrace_t_cover_line__266_block [31:0] $end + $var wire 32 } vlCoverageLineTrace_t_cover_line__268_case [31:0] $end + $var wire 32 ~ vlCoverageLineTrace_t_cover_line__269_case [31:0] $end + $var wire 32 !! vlCoverageLineTrace_t_cover_line__270_case [31:0] $end + $var wire 32 "! vlCoverageLineTrace_t_cover_line__271_case [31:0] $end + $var wire 32 #! vlCoverageLineTrace_t_cover_line__272_case [31:0] $end + $var wire 32 $! vlCoverageLineTrace_t_cover_line__273_case [31:0] $end + $var wire 32 %! vlCoverageLineTrace_t_cover_line__277_block [31:0] $end $upscope $end $upscope $end $scope module my_pkg $end - $var wire 32 + x [31:0] $end - $var wire 32 , vlCoverageLineTrace_t_cover_line__300_block [31:0] $end + $var wire 32 * x [31:0] $end + $var wire 32 + vlCoverageLineTrace_t_cover_line__301_block [31:0] $end $upscope $end $upscope $end $enddefinitions $end @@ -194,30 +193,30 @@ b00000000000000000000000000000100 ( b00000000000000000000000000000001 ) b00000000000000000000000000000001 * b00000000000000000000000000000001 + -b00000000000000000000000000000001 , +0, 0- -0. -0/ -b000001 0 +b000001 . +b00000000000000000000000000000010 / +b00000000000000000000000000000000 0 b00000000000000000000000000000010 1 -b00000000000000000000000000000000 2 -b00000000000000000000000000000010 3 -b00000000000000000000000000000010 4 -b00000000000000000000000000000000 5 +b00000000000000000000000000000010 2 +b00000000000000000000000000000000 3 +04 +05 06 -07 -08 -b00000000000000000000000000000010 9 -b00000000000000000000000000000000 : +b00000000000000000000000000000010 7 +b00000000000000000000000000000000 8 +b00000000000000000000000000000000 9 +b00000000000000000000000000000010 : b00000000000000000000000000000000 ; b00000000000000000000000000000010 < -b00000000000000000000000000000000 = -b00000000000000000000000000000010 > -b00000000000000000000000000000010 ? -b00000000000000000000000000000000 @ -0A -b00000000000000000000000000000001 B -b00000001 C +b00000000000000000000000000000010 = +b00000000000000000000000000000000 > +0? +b00000000000000000000000000000001 @ +b00000001 A +b00000000000000000000000000000000 B +b00000000000000000000000000000000 C b00000000000000000000000000000000 D b00000000000000000000000000000000 E b00000000000000000000000000000000 F @@ -247,34 +246,34 @@ b00000000000000000000000000000000 ] b00000000000000000000000000000000 ^ b00000000000000000000000000000000 _ b00000000000000000000000000000000 ` -b00000000000000000000000000000000 a -b00000000000000000000000000000000 b -0c -1d -1e +0a +1b +1c +b00000000 d +b00000000 e b00000000 f b00000000 g -b00000000 h -b00000000 i -b00000000000000000000000000000001 j +b00000000000000000000000000000001 h +b00000000000000000000000000000000 i +b00000000000000000000000000000000 j b00000000000000000000000000000000 k b00000000000000000000000000000000 l b00000000000000000000000000000000 m b00000000000000000000000000000000 n -b00000000000000000000000000000000 o -b00000000000000000000000000000000 p -b00000000000000000000000000000001 q -b00000000000000000000000000000001 r +b00000000000000000000000000000001 o +b00000000000000000000000000000001 p +b00000000000000000000000000000000 q +b00000000000000000000000000000000 r b00000000000000000000000000000000 s -b00000000000000000000000000000000 t +b00000000000000000000000000000001 t b00000000000000000000000000000000 u -b00000000000000000000000000000001 v +b00000000000000000000000000000000 v b00000000000000000000000000000000 w b00000000000000000000000000000000 x b00000000000000000000000000000000 y -b00000000000000000000000000000000 z +b0000 z b00000000000000000000000000000000 { -b0000 | +b00000000000000000000000000000000 | b00000000000000000000000000000000 } b00000000000000000000000000000000 ~ b00000000000000000000000000000000 !! @@ -294,7 +293,7 @@ b00000000000000000000000000000000 .! b00000000000000000000000000000000 /! b00000000000000000000000000000000 0! b00000000000000000000000000000000 1! -b00000000000000000000000000000000 2! +02! b00000000000000000000000000000000 3! 04! b00000000000000000000000000000000 5! @@ -305,685 +304,684 @@ b00000000000000000000000000000000 9! b00000000000000000000000000000000 :! b00000000000000000000000000000000 ;! b00000000000000000000000000000000 ! -0?! +b00000000 ?! b00000000 @! -b00000000 A! +b00000000000000000000000000000000 A! b00000000000000000000000000000000 B! b00000000000000000000000000000000 C! -b00000000000000000000000000000000 D! -b00000000000000000000000000000101 E! -b00000000000000000000000000000111 F! -b00000000000000000000000000000000 G! -b00000000000000000000000000000010 H! +b00000000000000000000000000000101 D! +b00000000000000000000000000000111 E! +b00000000000000000000000000000000 F! +b00000000000000000000000000000010 G! +b00000000000000000000000000000000 H! b00000000000000000000000000000000 I! b00000000000000000000000000000000 J! b00000000000000000000000000000000 K! b00000000000000000000000000000000 L! -b00000000000000000000000000000000 M! #10 +1, 1- -1. -b000011 0 +b000011 . +b00000000000000000000000000000011 / b00000000000000000000000000000011 1 -b00000000000000000000000000000011 3 -b00000000000000000000000000000001 5 -18 -b00000000000000000000000000000100 9 +b00000000000000000000000000000001 3 +16 +b00000000000000000000000000000100 7 +b00000000000000000000000000000001 9 +b00000000000000000000000000000011 : b00000000000000000000000000000001 ; b00000000000000000000000000000011 < -b00000000000000000000000000000001 = -b00000000000000000000000000000011 > -b00000000000000000000000000000001 @ -b00000000000000000000000000000010 B -b00000010 C +b00000000000000000000000000000001 > +b00000000000000000000000000000010 @ +b00000010 A +b00000000000000000000000000000001 B b00000000000000000000000000000001 D -b00000000000000000000000000000001 F +b00000000000000000000000000000001 E b00000000000000000000000000000001 G b00000000000000000000000000000001 I b00000000000000000000000000000001 K b00000000000000000000000000000001 M b00000000000000000000000000000001 O -b00000000000000000000000000000001 Q -b00000000000000000000000000000001 U +b00000000000000000000000000000001 S +b00000000000000000000000000000001 W b00000000000000000000000000000001 Y -b00000000000000000000000000000001 [ +b00000000000000000000000000000001 Z b00000000000000000000000000000001 \ +b00000000000000000000000000000001 ] b00000000000000000000000000000001 ^ -b00000000000000000000000000000001 _ b00000000000000000000000000000001 ` -b00000000000000000000000000000001 b -b00000010 f -b00000001 g -b00000000000000000000000000000001 k +b00000010 d +b00000001 e +b00000000000000000000000000000001 i +b00000000000000000000000000000001 j b00000000000000000000000000000001 l -b00000000000000000000000000000001 n -b00000000000000000000000000000010 q -b00000000000000000000000000000010 r +b00000000000000000000000000000010 o +b00000000000000000000000000000010 p +b00000000000000000000000000000001 u +b00000000000000000000000000000001 v b00000000000000000000000000000001 w -b00000000000000000000000000000001 x -b00000000000000000000000000000001 y -b0001 | -b00000000000000000000000000000001 ~ +b0001 z +b00000000000000000000000000000001 | +b00000000000000000000000000000001 $! +b00000000000000000000000000000001 %! b00000000000000000000000000000001 &! b00000000000000000000000000000001 '! b00000000000000000000000000000001 (! -b00000000000000000000000000000001 )! b00000000000000000000000000000001 *! +b00000000000000000000000000000001 +! b00000000000000000000000000000001 ,! b00000000000000000000000000000001 -! -b00000000000000000000000000000001 .! b00000000000000000000000000000001 /! +b00000000000000000000000000000001 0! b00000000000000000000000000000001 1! -b00000000000000000000000000000001 2! -b00000000000000000000000000000001 3! -14! +12! +b00000000000000000000000000000001 5! b00000000000000000000000000000001 6! -b00000000000000000000000000000001 7! #15 +0, 0- -0. +b00000000000000000000000000000100 / b00000000000000000000000000000100 1 -b00000000000000000000000000000100 3 -b00000000000000000000000000000011 4 -b00000000000000000000000000000101 9 +b00000000000000000000000000000011 2 +b00000000000000000000000000000101 7 +b00000000000000000000000000000010 9 b00000000000000000000000000000010 ; -b00000000000000000000000000000010 = -04! +02! #20 +1, 1- -1. +b00000000000000000000000000000101 / b00000000000000000000000000000101 1 -b00000000000000000000000000000101 3 -b00000000000000000000000000000010 5 -b00000000000000000000000000000111 9 +b00000000000000000000000000000010 3 +b00000000000000000000000000000111 7 +b00000000000000000000000000000100 9 b00000000000000000000000000000100 ; -b00000000000000000000000000000100 = -b00000000000000000000000000000011 B -b00000011 C +b00000000000000000000000000000011 @ +b00000011 A +b00000000000000000000000000000010 B b00000000000000000000000000000010 D -b00000000000000000000000000000010 F +b00000000000000000000000000000010 E b00000000000000000000000000000010 G b00000000000000000000000000000010 I b00000000000000000000000000000010 K b00000000000000000000000000000010 M b00000000000000000000000000000010 O -b00000000000000000000000000000010 Q -b00000000000000000000000000000010 U +b00000000000000000000000000000010 S +b00000000000000000000000000000010 W b00000000000000000000000000000010 Y -b00000000000000000000000000000010 [ +b00000000000000000000000000000010 Z b00000000000000000000000000000010 \ +b00000000000000000000000000000010 ] b00000000000000000000000000000010 ^ -b00000000000000000000000000000010 _ b00000000000000000000000000000010 ` -b00000000000000000000000000000010 b -b00000000 f -b00000000 g +b00000000 d +b00000000 e +b00000000000000000000000000000010 h +b00000000000000000000000000000010 i b00000000000000000000000000000010 j -b00000000000000000000000000000010 k b00000000000000000000000000000010 l -b00000000000000000000000000000010 n -b00000000000000000000000000000011 q -b00000000000000000000000000000011 r +b00000000000000000000000000000011 o +b00000000000000000000000000000011 p +b00000000000000000000000000000010 t b00000000000000000000000000000010 v -b00000000000000000000000000000010 x -b00000000000000000000000000000010 y -b0010 | -b00000000000000000000000000001010 } -b00000000000000000000000000000010 ~ -b00000000000000000000000000000001 !! +b00000000000000000000000000000010 w +b0010 z +b00000000000000000000000000001010 { +b00000000000000000000000000000010 | +b00000000000000000000000000000001 } +b00000000000000000000000000000010 %! +b00000000000000000000000000000010 &! b00000000000000000000000000000010 '! b00000000000000000000000000000010 (! -b00000000000000000000000000000010 )! b00000000000000000000000000000010 *! +b00000000000000000000000000000010 +! b00000000000000000000000000000010 ,! b00000000000000000000000000000010 -! -b00000000000000000000000000000010 .! b00000000000000000000000000000010 /! +b00000000000000000000000000000010 0! b00000000000000000000000000000010 1! -b00000000000000000000000000000010 2! -b00000000000000000000000000000010 3! -14! +12! +b00000000000000000000000000000010 5! b00000000000000000000000000000010 6! -b00000000000000000000000000000010 7! #25 +0, 0- -0. +b00000000000000000000000000000110 / b00000000000000000000000000000110 1 -b00000000000000000000000000000110 3 -b00000000000000000000000000000100 4 -b00000000000000000000000000001000 9 +b00000000000000000000000000000100 2 +b00000000000000000000000000001000 7 +b00000000000000000000000000000101 9 b00000000000000000000000000000101 ; -b00000000000000000000000000000101 = -04! +02! #30 +1, 1- -1. +b00000000000000000000000000000111 / b00000000000000000000000000000111 1 -b00000000000000000000000000000111 3 -b00000000000000000000000000000011 5 -b00000000000000000000000000001010 9 -b00000000000000000000000000000111 ; -b00000000000000000000000000000110 = -b00000000000000000000000000000100 > -b00000000000000000000000000000010 @ -1A -b00000000000000000000000000000100 B -b00000100 C +b00000000000000000000000000000011 3 +b00000000000000000000000000001010 7 +b00000000000000000000000000000111 9 +b00000000000000000000000000000110 ; +b00000000000000000000000000000100 < +b00000000000000000000000000000010 > +1? +b00000000000000000000000000000100 @ +b00000100 A +b00000000000000000000000000000011 B b00000000000000000000000000000011 D -b00000000000000000000000000000011 F +b00000000000000000000000000000001 F b00000000000000000000000000000001 H b00000000000000000000000000000001 J b00000000000000000000000000000001 L b00000000000000000000000000000001 N b00000000000000000000000000000001 P -b00000000000000000000000000000001 R -b00000000000000000000000000000001 S -b00000000000000000000000000000001 W -b00000000000000000000000000000011 [ +b00000000000000000000000000000001 Q +b00000000000000000000000000000001 U +b00000000000000000000000000000011 Y +b00000000000000000000000000000011 Z b00000000000000000000000000000011 \ +b00000000000000000000000000000011 ] b00000000000000000000000000000011 ^ -b00000000000000000000000000000011 _ b00000000000000000000000000000011 ` -b00000000000000000000000000000011 b -1c -b00000000000000000000000000000011 j -b00000000000000000000000000000011 k -b00000000000000000000000000000001 m -b00000000000000000000000000000011 n -b00000000000000000000000000000100 q -b00000000000000000000000000000100 r +1a +b00000000000000000000000000000011 h +b00000000000000000000000000000011 i +b00000000000000000000000000000001 k +b00000000000000000000000000000011 l +b00000000000000000000000000000100 o +b00000000000000000000000000000100 p +b00000000000000000000000000000011 t b00000000000000000000000000000011 v -b00000000000000000000000000000011 x -b00000000000000000000000000000011 y -b0011 | -b00000000000000000000000000010100 } -b00000000000000000000000000000011 ~ -b00000000000000000000000000000001 "! +b00000000000000000000000000000011 w +b0011 z +b00000000000000000000000000010100 { +b00000000000000000000000000000011 | +b00000000000000000000000000000001 ~ +b00000000000000000000000000000011 %! +b00000000000000000000000000000011 &! b00000000000000000000000000000011 '! b00000000000000000000000000000011 (! -b00000000000000000000000000000011 )! b00000000000000000000000000000011 *! +b00000000000000000000000000000011 +! b00000000000000000000000000000011 ,! b00000000000000000000000000000011 -! -b00000000000000000000000000000011 .! b00000000000000000000000000000011 /! +b00000000000000000000000000000011 0! b00000000000000000000000000000011 1! -b00000000000000000000000000000011 2! -b00000000000000000000000000000011 3! -14! +12! +b00000000000000000000000000000011 5! b00000000000000000000000000000011 6! -b00000000000000000000000000000011 7! #35 +0, 0- -0. +b00000000000000000000000000001000 / b00000000000000000000000000001000 1 -b00000000000000000000000000001000 3 -b00000000000000000000000000000101 4 -08 -b00000000000000000000000000001011 9 -b00000000000000000000000000001000 ; -b00000000000000000000000000000101 > -b00000000000000000000000000000011 ? -04! +b00000000000000000000000000000101 2 +06 +b00000000000000000000000000001011 7 +b00000000000000000000000000001000 9 +b00000000000000000000000000000101 < +b00000000000000000000000000000011 = +02! #40 +1, 1- -1. +b00000000000000000000000000001001 / b00000000000000000000000000001001 1 -b00000000000000000000000000001001 3 -b00000000000000000000000000000100 5 -18 -b00000000000000000000000000001101 9 -b00000000000000000000000000001010 ; -b00000000000000000000000000000111 = -b00000000000000000000000000000110 > -b00000000000000000000000000000011 @ -0A -b00000000000000000000000000000101 B -b00000101 C +b00000000000000000000000000000100 3 +16 +b00000000000000000000000000001101 7 +b00000000000000000000000000001010 9 +b00000000000000000000000000000111 ; +b00000000000000000000000000000110 < +b00000000000000000000000000000011 > +0? +b00000000000000000000000000000101 @ +b00000101 A +b00000000000000000000000000000100 B b00000000000000000000000000000100 D -b00000000000000000000000000000100 F +b00000000000000000000000000000011 E b00000000000000000000000000000011 G b00000000000000000000000000000011 I b00000000000000000000000000000011 K b00000000000000000000000000000011 M b00000000000000000000000000000011 O -b00000000000000000000000000000011 Q -b00000000000000000000000000000001 T -b00000000000000000000000000000011 Y -b00000000000000000000000000000100 [ -b00000000000000000000000000000001 ] -b00000000000000000000000000000100 _ -b00000000000000000000000000000001 a +b00000000000000000000000000000001 R +b00000000000000000000000000000011 W +b00000000000000000000000000000100 Y +b00000000000000000000000000000001 [ +b00000000000000000000000000000100 ] +b00000000000000000000000000000001 _ +0a 0c -0e -b00000000000000000000000000000100 j -b00000000000000000000000000000100 k -b00000000000000000000000000000011 l -b00000000000000000000000000000100 n -b00000000000000000000000000000101 q -b00000000000000000000000000000001 s -b00000000000000000000000000000001 t +b00000000000000000000000000000100 h +b00000000000000000000000000000100 i +b00000000000000000000000000000011 j +b00000000000000000000000000000100 l +b00000000000000000000000000000101 o +b00000000000000000000000000000001 q +b00000000000000000000000000000001 r +b00000000000000000000000000000100 t b00000000000000000000000000000100 v -b00000000000000000000000000000100 x -b00000000000000000000000000000001 z -b00000000000000000000000000000001 { -b0100 | -b00000000000000000000000000011110 } -b00000000000000000000000000000100 ~ -b00000000000000000000000000000001 #! +b00000000000000000000000000000001 x +b00000000000000000000000000000001 y +b0100 z +b00000000000000000000000000011110 { +b00000000000000000000000000000100 | +b00000000000000000000000000000001 !! +b00000000000000000000000000000100 %! +b00000000000000000000000000000100 &! b00000000000000000000000000000100 '! -b00000000000000000000000000000100 (! -b00000000000000000000000000000100 )! -b00000000000000000000000000000001 +! -b00000000000000000000000000000100 -! -b00000000000000000000000000000100 .! -b00000000000000000000000000000001 0! -b00000000000000000000000000000100 2! -b00000000000000000000000000000100 3! -14! -b00000000000000000000000000000100 6! -b00000000000000000000000000000001 8! +b00000000000000000000000000000001 )! +b00000000000000000000000000000100 +! +b00000000000000000000000000000100 ,! +b00000000000000000000000000000001 .! +b00000000000000000000000000000100 0! +b00000000000000000000000000000100 1! +12! +b00000000000000000000000000000100 5! +b00000000000000000000000000000001 7! #45 +0, 0- -0. +b00000000000000000000000000001010 / b00000000000000000000000000001010 1 -b00000000000000000000000000001010 3 -b00000000000000000000000000000110 4 -b00000000000000000000000000001110 9 -b00000000000000000000000000001011 ; -b00000000000000000000000000001000 = -04! +b00000000000000000000000000000110 2 +b00000000000000000000000000001110 7 +b00000000000000000000000000001011 9 +b00000000000000000000000000001000 ; +02! #50 +1, 1- -1. +b00000000000000000000000000001011 / b00000000000000000000000000001011 1 -b00000000000000000000000000001011 3 -b00000000000000000000000000000101 5 -b00000000000000000000000000010000 9 -b00000000000000000000000000001101 ; -b00000000000000000000000000001010 = -b00000000000000000000000000000110 B -b00000110 C +b00000000000000000000000000000101 3 +b00000000000000000000000000010000 7 +b00000000000000000000000000001101 9 +b00000000000000000000000000001010 ; +b00000000000000000000000000000110 @ +b00000110 A +b00000000000000000000000000000101 B b00000000000000000000000000000101 D -b00000000000000000000000000000101 F +b00000000000000000000000000000100 E b00000000000000000000000000000100 G b00000000000000000000000000000100 I b00000000000000000000000000000100 K b00000000000000000000000000000100 M b00000000000000000000000000000100 O -b00000000000000000000000000000100 Q +b00000000000000000000000000000001 T b00000000000000000000000000000001 V -b00000000000000000000000000000001 X -b00000000000000000000000000000101 [ +b00000000000000000000000000000101 Y +b00000000000000000000000000000100 Z b00000000000000000000000000000100 \ +b00000000000000000000000000000101 ] b00000000000000000000000000000100 ^ -b00000000000000000000000000000101 _ b00000000000000000000000000000100 ` -b00000000000000000000000000000100 b -1e -b00000000000000000000000000000101 j -b00000000000000000000000000000101 k -b00000000000000000000000000000100 l -b00000000000000000000000000000101 n -b00000000000000000000000000000110 q -b00000000000000000000000000000101 r +1c +b00000000000000000000000000000101 h +b00000000000000000000000000000101 i +b00000000000000000000000000000100 j +b00000000000000000000000000000101 l +b00000000000000000000000000000110 o +b00000000000000000000000000000101 p +b00000000000000000000000000000101 t b00000000000000000000000000000101 v -b00000000000000000000000000000101 x -b00000000000000000000000000000100 y -b0101 | -b00000000000000000000000000101000 } -b00000000000000000000000000000101 ~ -b00000000000000000000000000000001 $! +b00000000000000000000000000000100 w +b0101 z +b00000000000000000000000000101000 { +b00000000000000000000000000000101 | +b00000000000000000000000000000001 "! +b00000000000000000000000000000101 %! +b00000000000000000000000000000101 &! b00000000000000000000000000000101 '! -b00000000000000000000000000000101 (! -b00000000000000000000000000000101 )! +b00000000000000000000000000000100 (! b00000000000000000000000000000100 *! -b00000000000000000000000000000100 ,! -b00000000000000000000000000000101 -! -b00000000000000000000000000000101 .! +b00000000000000000000000000000101 +! +b00000000000000000000000000000101 ,! +b00000000000000000000000000000100 -! b00000000000000000000000000000100 /! -b00000000000000000000000000000100 1! -b00000000000000000000000000000101 2! -b00000000000000000000000000000101 3! -14! -b00000000000000000000000000000001 5! -b00000000000000000000000000000110 6! -b00000000000000000000000000000101 7! -b00000000000000000000000000000001 9! +b00000000000000000000000000000101 0! +b00000000000000000000000000000101 1! +12! +b00000000000000000000000000000001 3! +b00000000000000000000000000000110 5! +b00000000000000000000000000000101 6! +b00000000000000000000000000000001 8! #55 +0, 0- -0. +b00000000000000000000000000001100 / b00000000000000000000000000001100 1 -b00000000000000000000000000001100 3 -b00000000000000000000000000000111 4 -b00000000000000000000000000010001 9 -b00000000000000000000000000001110 ; -b00000000000000000000000000001011 = -04! +b00000000000000000000000000000111 2 +b00000000000000000000000000010001 7 +b00000000000000000000000000001110 9 +b00000000000000000000000000001011 ; +02! #60 +1, 1- -1. +b00000000000000000000000000001101 / b00000000000000000000000000001101 1 -b00000000000000000000000000001101 3 -b00000000000000000000000000000110 5 -b00000000000000000000000000010011 9 -b00000000000000000000000000010000 ; -b00000000000000000000000000001100 = -b00000000000000000000000000000111 > -b00000000000000000000000000000100 @ -b00000000000000000000000000000111 B -b00000111 C +b00000000000000000000000000000110 3 +b00000000000000000000000000010011 7 +b00000000000000000000000000010000 9 +b00000000000000000000000000001100 ; +b00000000000000000000000000000111 < +b00000000000000000000000000000100 > +b00000000000000000000000000000111 @ +b00000111 A +b00000000000000000000000000000110 B b00000000000000000000000000000110 D -b00000000000000000000000000000110 F +b00000000000000000000000000000101 E b00000000000000000000000000000101 G b00000000000000000000000000000101 I b00000000000000000000000000000101 K b00000000000000000000000000000101 M b00000000000000000000000000000101 O -b00000000000000000000000000000101 Q -b00000000000000000000000000000011 U -b00000000000000000000000000000100 Y -b00000000000000000000000000000110 [ +b00000000000000000000000000000011 S +b00000000000000000000000000000100 W +b00000000000000000000000000000110 Y +b00000000000000000000000000000101 Z b00000000000000000000000000000101 \ +b00000000000000000000000000000110 ] b00000000000000000000000000000101 ^ -b00000000000000000000000000000110 _ b00000000000000000000000000000101 ` -b00000000000000000000000000000101 b -1c -b00000000000000000000000000000110 j -b00000000000000000000000000000110 k -b00000000000000000000000000000010 m -b00000000000000000000000000000110 n -b00000000000000000000000000000111 q -b00000000000000000000000000000110 r +1a +b00000000000000000000000000000110 h +b00000000000000000000000000000110 i +b00000000000000000000000000000010 k +b00000000000000000000000000000110 l +b00000000000000000000000000000111 o +b00000000000000000000000000000110 p +b00000000000000000000000000000110 t b00000000000000000000000000000110 v -b00000000000000000000000000000110 x -b00000000000000000000000000000101 y -b0110 | -b00000000000000000000000000110010 } -b00000000000000000000000000000110 ~ -b00000000000000000000000000000001 %! +b00000000000000000000000000000101 w +b0110 z +b00000000000000000000000000110010 { +b00000000000000000000000000000110 | +b00000000000000000000000000000001 #! +b00000000000000000000000000000110 %! +b00000000000000000000000000000110 &! b00000000000000000000000000000110 '! -b00000000000000000000000000000110 (! -b00000000000000000000000000000110 )! +b00000000000000000000000000000101 (! b00000000000000000000000000000101 *! -b00000000000000000000000000000101 ,! -b00000000000000000000000000000110 -! -b00000000000000000000000000000110 .! +b00000000000000000000000000000110 +! +b00000000000000000000000000000110 ,! +b00000000000000000000000000000101 -! b00000000000000000000000000000101 /! -b00000000000000000000000000000101 1! -b00000000000000000000000000000110 2! -b00000000000000000000000000000110 3! -14! -b00000000000000000000000000000111 6! -b00000000000000000000000000000110 7! +b00000000000000000000000000000110 0! +b00000000000000000000000000000110 1! +12! +b00000000000000000000000000000111 5! +b00000000000000000000000000000110 6! #65 +0, 0- -0. +b00000000000000000000000000001110 / b00000000000000000000000000001110 1 -b00000000000000000000000000001110 3 -b00000000000000000000000000001000 4 -08 -b00000000000000000000000000010100 9 -b00000000000000000000000000010001 ; -b00000000000000000000000000001000 > -b00000000000000000000000000000100 ? -04! +b00000000000000000000000000001000 2 +06 +b00000000000000000000000000010100 7 +b00000000000000000000000000010001 9 +b00000000000000000000000000001000 < +b00000000000000000000000000000100 = +02! #70 +1, 1- -1. +b00000000000000000000000000001111 / b00000000000000000000000000001111 1 -b00000000000000000000000000001111 3 -b00000000000000000000000000000111 5 -18 -b00000000000000000000000000010110 9 -b00000000000000000000000000010011 ; -b00000000000000000000000000001101 = -b00000000000000000000000000001001 > -b00000000000000000000000000000101 @ -b00000000000000000000000000001000 B -b00001000 C +b00000000000000000000000000000111 3 +16 +b00000000000000000000000000010110 7 +b00000000000000000000000000010011 9 +b00000000000000000000000000001101 ; +b00000000000000000000000000001001 < +b00000000000000000000000000000101 > +b00000000000000000000000000001000 @ +b00001000 A +b00000000000000000000000000000111 B b00000000000000000000000000000111 D -b00000000000000000000000000000111 F +b00000000000000000000000000000110 E b00000000000000000000000000000110 G b00000000000000000000000000000110 I b00000000000000000000000000000110 K b00000000000000000000000000000110 M b00000000000000000000000000000110 O -b00000000000000000000000000000110 Q -b00000000000000000000000000000100 U -b00000000000000000000000000000101 Y -b00000000000000000000000000000111 [ +b00000000000000000000000000000100 S +b00000000000000000000000000000101 W +b00000000000000000000000000000111 Y +b00000000000000000000000000000110 Z b00000000000000000000000000000110 \ +b00000000000000000000000000000111 ] b00000000000000000000000000000110 ^ -b00000000000000000000000000000111 _ b00000000000000000000000000000110 ` -b00000000000000000000000000000110 b -0c -b00000000000000000000000000000111 j -b00000000000000000000000000000111 k -b00000000000000000000000000000101 l -b00000000000000000000000000000111 n -b00000000000000000000000000001000 q -b00000000000000000000000000000111 r +0a +b00000000000000000000000000000111 h +b00000000000000000000000000000111 i +b00000000000000000000000000000101 j +b00000000000000000000000000000111 l +b00000000000000000000000000001000 o +b00000000000000000000000000000111 p +b00000000000000000000000000000111 t b00000000000000000000000000000111 v -b00000000000000000000000000000111 x -b00000000000000000000000000000110 y -b0111 | -b00000000000000000000000000000000 } -b00000000000000000000000000000111 ~ -b00000000000000000000000000000010 &! +b00000000000000000000000000000110 w +b0111 z +b00000000000000000000000000000000 { +b00000000000000000000000000000111 | +b00000000000000000000000000000010 $! +b00000000000000000000000000000111 %! +b00000000000000000000000000000111 &! b00000000000000000000000000000111 '! -b00000000000000000000000000000111 (! -b00000000000000000000000000000111 )! +b00000000000000000000000000000110 (! b00000000000000000000000000000110 *! -b00000000000000000000000000000110 ,! -b00000000000000000000000000000111 -! -b00000000000000000000000000000111 .! +b00000000000000000000000000000111 +! +b00000000000000000000000000000111 ,! +b00000000000000000000000000000110 -! b00000000000000000000000000000110 /! -b00000000000000000000000000000110 1! -b00000000000000000000000000000111 2! -b00000000000000000000000000000111 3! -14! -b00000000000000000000000000001000 6! -b00000000000000000000000000000111 7! +b00000000000000000000000000000111 0! +b00000000000000000000000000000111 1! +12! +b00000000000000000000000000001000 5! +b00000000000000000000000000000111 6! #75 +0, 0- -0. +b00000000000000000000000000010000 / b00000000000000000000000000010000 1 -b00000000000000000000000000010000 3 -b00000000000000000000000000001001 4 -b00000000000000000000000000010111 9 -b00000000000000000000000000010100 ; -b00000000000000000000000000001110 = -04! +b00000000000000000000000000001001 2 +b00000000000000000000000000010111 7 +b00000000000000000000000000010100 9 +b00000000000000000000000000001110 ; +02! #80 +1, 1- -1. +b00000000000000000000000000010001 / b00000000000000000000000000010001 1 -b00000000000000000000000000010001 3 -b00000000000000000000000000001000 5 -b00000000000000000000000000011001 9 -b00000000000000000000000000010110 ; -b00000000000000000000000000010000 = -b00000000000000000000000000001001 B -b00001001 C +b00000000000000000000000000001000 3 +b00000000000000000000000000011001 7 +b00000000000000000000000000010110 9 +b00000000000000000000000000010000 ; +b00000000000000000000000000001001 @ +b00001001 A +b00000000000000000000000000001000 B b00000000000000000000000000001000 D -b00000000000000000000000000001000 F +b00000000000000000000000000000111 E b00000000000000000000000000000111 G b00000000000000000000000000000111 I b00000000000000000000000000000111 K b00000000000000000000000000000111 M b00000000000000000000000000000111 O -b00000000000000000000000000000111 Q -b00000000000000000000000000000101 U -b00000000000000000000000000000110 Y -b00000000000000000000000000001000 [ +b00000000000000000000000000000101 S +b00000000000000000000000000000110 W +b00000000000000000000000000001000 Y +b00000000000000000000000000000111 Z b00000000000000000000000000000111 \ +b00000000000000000000000000001000 ] b00000000000000000000000000000111 ^ -b00000000000000000000000000001000 _ b00000000000000000000000000000111 ` -b00000000000000000000000000000111 b -b00000000000000000000000000001000 j -b00000000000000000000000000001000 k -b00000000000000000000000000000110 l -b00000000000000000000000000001000 n -b00000000000000000000000000001001 q -b00000000000000000000000000001000 r +b00000000000000000000000000001000 h +b00000000000000000000000000001000 i +b00000000000000000000000000000110 j +b00000000000000000000000000001000 l +b00000000000000000000000000001001 o +b00000000000000000000000000001000 p +b00000000000000000000000000001000 t b00000000000000000000000000001000 v -b00000000000000000000000000001000 x -b00000000000000000000000000000111 y -b1000 | -b00000000000000000000000000001000 ~ -b00000000000000000000000000000011 &! +b00000000000000000000000000000111 w +b1000 z +b00000000000000000000000000001000 | +b00000000000000000000000000000011 $! +b00000000000000000000000000001000 %! +b00000000000000000000000000001000 &! b00000000000000000000000000001000 '! -b00000000000000000000000000001000 (! -b00000000000000000000000000001000 )! +b00000000000000000000000000000111 (! b00000000000000000000000000000111 *! -b00000000000000000000000000000111 ,! -b00000000000000000000000000001000 -! -b00000000000000000000000000001000 .! +b00000000000000000000000000001000 +! +b00000000000000000000000000001000 ,! +b00000000000000000000000000000111 -! b00000000000000000000000000000111 /! -b00000000000000000000000000000111 1! -b00000000000000000000000000001000 2! -b00000000000000000000000000001000 3! -14! -b00000000000000000000000000001001 6! -b00000000000000000000000000001000 7! +b00000000000000000000000000001000 0! +b00000000000000000000000000001000 1! +12! +b00000000000000000000000000001001 5! +b00000000000000000000000000001000 6! #85 +0, 0- -0. +b00000000000000000000000000010010 / b00000000000000000000000000010010 1 -b00000000000000000000000000010010 3 -b00000000000000000000000000001010 4 -b00000000000000000000000000011010 9 -b00000000000000000000000000010111 ; -b00000000000000000000000000010001 = -04! +b00000000000000000000000000001010 2 +b00000000000000000000000000011010 7 +b00000000000000000000000000010111 9 +b00000000000000000000000000010001 ; +02! #90 +1, 1- -1. +b00000000000000000000000000010011 / b00000000000000000000000000010011 1 -b00000000000000000000000000010011 3 -b00000000000000000000000000001001 5 -b00000000000000000000000000011100 9 -b00000000000000000000000000011001 ; -b00000000000000000000000000010010 = -b00000000000000000000000000001010 > -b00000000000000000000000000000110 @ -b00000000000000000000000000001010 B -b00001010 C +b00000000000000000000000000001001 3 +b00000000000000000000000000011100 7 +b00000000000000000000000000011001 9 +b00000000000000000000000000010010 ; +b00000000000000000000000000001010 < +b00000000000000000000000000000110 > +b00000000000000000000000000001010 @ +b00001010 A +b00000000000000000000000000001001 B b00000000000000000000000000001001 D -b00000000000000000000000000001001 F +b00000000000000000000000000001000 E b00000000000000000000000000001000 G b00000000000000000000000000001000 I b00000000000000000000000000001000 K b00000000000000000000000000001000 M b00000000000000000000000000001000 O -b00000000000000000000000000001000 Q -b00000000000000000000000000000110 U -b00000000000000000000000000000111 Y -b00000000000000000000000000001001 [ +b00000000000000000000000000000110 S +b00000000000000000000000000000111 W +b00000000000000000000000000001001 Y +b00000000000000000000000000001000 Z b00000000000000000000000000001000 \ +b00000000000000000000000000001001 ] b00000000000000000000000000001000 ^ -b00000000000000000000000000001001 _ b00000000000000000000000000001000 ` -b00000000000000000000000000001000 b -1c -b00000000000000000000000000001001 j -b00000000000000000000000000001001 k -b00000000000000000000000000000011 m -b00000000000000000000000000001001 n -b00000000000000000000000000001010 q -b00000000000000000000000000001001 r +1a +b00000000000000000000000000001001 h +b00000000000000000000000000001001 i +b00000000000000000000000000000011 k +b00000000000000000000000000001001 l +b00000000000000000000000000001010 o +b00000000000000000000000000001001 p +b00000000000000000000000000001001 t b00000000000000000000000000001001 v -b00000000000000000000000000001001 x -b00000000000000000000000000001000 y -b1001 | -b00000000000000000000000000001001 ~ -b00000000000000000000000000000100 &! +b00000000000000000000000000001000 w +b1001 z +b00000000000000000000000000001001 | +b00000000000000000000000000000100 $! +b00000000000000000000000000001001 %! +b00000000000000000000000000001001 &! b00000000000000000000000000001001 '! -b00000000000000000000000000001001 (! -b00000000000000000000000000001001 )! +b00000000000000000000000000001000 (! b00000000000000000000000000001000 *! -b00000000000000000000000000001000 ,! -b00000000000000000000000000001001 -! -b00000000000000000000000000001001 .! +b00000000000000000000000000001001 +! +b00000000000000000000000000001001 ,! +b00000000000000000000000000001000 -! b00000000000000000000000000001000 /! -b00000000000000000000000000001000 1! -b00000000000000000000000000001001 2! -b00000000000000000000000000001001 3! -14! -b00000000000000000000000000001010 6! -b00000000000000000000000000001001 7! +b00000000000000000000000000001001 0! +b00000000000000000000000000001001 1! +12! +b00000000000000000000000000001010 5! +b00000000000000000000000000001001 6! #95 +0, 0- -0. +b00000000000000000000000000010100 / b00000000000000000000000000010100 1 -b00000000000000000000000000010100 3 -b00000000000000000000000000001011 4 -08 -b00000000000000000000000000011101 9 -b00000000000000000000000000011010 ; -b00000000000000000000000000001011 > -b00000000000000000000000000000101 ? -04! +b00000000000000000000000000001011 2 +06 +b00000000000000000000000000011101 7 +b00000000000000000000000000011010 9 +b00000000000000000000000000001011 < +b00000000000000000000000000000101 = +02! #100 +1, 1- -1. +b00000000000000000000000000010101 / b00000000000000000000000000010101 1 -b00000000000000000000000000010101 3 -b00000000000000000000000000001010 5 -18 -b00000000000000000000000000011111 9 -b00000000000000000000000000011100 ; -b00000000000000000000000000010011 = -b00000000000000000000000000001100 > -b00000000000000000000000000000111 @ -b00000000000000000000000000001011 B -b00001011 C +b00000000000000000000000000001010 3 +16 +b00000000000000000000000000011111 7 +b00000000000000000000000000011100 9 +b00000000000000000000000000010011 ; +b00000000000000000000000000001100 < +b00000000000000000000000000000111 > +b00000000000000000000000000001011 @ +b00001011 A +b00000000000000000000000000001010 B b00000000000000000000000000001010 D -b00000000000000000000000000001010 F +b00000000000000000000000000001001 E b00000000000000000000000000001001 G b00000000000000000000000000001001 I b00000000000000000000000000001001 K b00000000000000000000000000001001 M b00000000000000000000000000001001 O -b00000000000000000000000000001001 Q -b00000000000000000000000000000111 U -b00000000000000000000000000000001 Z -b00000000000000000000000000001010 [ +b00000000000000000000000000000111 S +b00000000000000000000000000000001 X +b00000000000000000000000000001010 Y +b00000000000000000000000000001001 Z b00000000000000000000000000001001 \ +b00000000000000000000000000001010 ] b00000000000000000000000000001001 ^ -b00000000000000000000000000001010 _ b00000000000000000000000000001001 ` -b00000000000000000000000000001001 b -0c -b00000000000000000000000000001010 j -b00000000000000000000000000001010 k -b00000000000000000000000000000111 l -b00000000000000000000000000001010 n -b00000000000000000000000000001011 q -b00000000000000000000000000001010 r +0a +b00000000000000000000000000001010 h +b00000000000000000000000000001010 i +b00000000000000000000000000000111 j +b00000000000000000000000000001010 l +b00000000000000000000000000001011 o +b00000000000000000000000000001010 p +b00000000000000000000000000001010 t b00000000000000000000000000001010 v -b00000000000000000000000000001010 x -b00000000000000000000000000001001 y -b1010 | -b00000000000000000000000000001010 ~ -b00000000000000000000000000000101 &! +b00000000000000000000000000001001 w +b1010 z +b00000000000000000000000000001010 | +b00000000000000000000000000000101 $! +b00000000000000000000000000001010 %! +b00000000000000000000000000001010 &! b00000000000000000000000000001010 '! -b00000000000000000000000000001010 (! -b00000000000000000000000000001010 )! +b00000000000000000000000000001001 (! b00000000000000000000000000001001 *! -b00000000000000000000000000001001 ,! -b00000000000000000000000000001010 -! -b00000000000000000000000000001010 .! +b00000000000000000000000000001010 +! +b00000000000000000000000000001010 ,! +b00000000000000000000000000001001 -! b00000000000000000000000000001001 /! -b00000000000000000000000000001001 1! -b00000000000000000000000000001010 2! -b00000000000000000000000000001010 3! -14! -b00000000000000000000000000001011 6! -b00000000000000000000000000001010 7! +b00000000000000000000000000001010 0! +b00000000000000000000000000001010 1! +12! +b00000000000000000000000000001011 5! +b00000000000000000000000000001010 6! diff --git a/test_regress/t/t_covergroup_unsup.v b/test_regress/t/t_covergroup_unsup.v index 104fcc82f..a68f1e5df 100644 --- a/test_regress/t/t_covergroup_unsup.v +++ b/test_regress/t/t_covergroup_unsup.v @@ -179,11 +179,14 @@ module t (/*AUTOARG*/ endgroup endclass - always @(posedge clk) begin + initial begin cg_empty cov1 = new; `ifndef T_COVERGROUP_UNSUP_IGN cgArgs cov2 = new(2); `endif + end + + always @(posedge clk) begin if (cyc == 10) begin $write("*-* All Finished *-*\n"); $finish; diff --git a/test_regress/t/t_func_no_lifetime_bad.out b/test_regress/t/t_func_no_lifetime_bad.out index b4e8bb538..148325abf 100644 --- a/test_regress/t/t_func_no_lifetime_bad.out +++ b/test_regress/t/t_func_no_lifetime_bad.out @@ -3,24 +3,26 @@ 26 | function int f_implicit_static(); | ^~~~~~~~~~~~~~~~~ t/t_func_no_lifetime_bad.v:27:11: ... Location of implicit static variable + : ... The initializer value will only be set once 27 | int cnt = 0; | ^~~ -... Suggest use 'function automatic' or 'function static' ... For warning description see https://verilator.org/warn/IMPLICITSTATIC?v=latest ... Use "/* verilator lint_off IMPLICITSTATIC */" and lint_on around source to disable this message. %Warning-IMPLICITSTATIC: t/t_func_no_lifetime_bad.v:31:9: Function/task's lifetime implicitly set to static - : ... Suggest use 'function automatic' or 'function static' + : ... Suggest use 'task automatic' or 'task static' 31 | task t_implicit_static(); | ^~~~~~~~~~~~~~~~~ t/t_func_no_lifetime_bad.v:32:11: ... Location of implicit static variable + : ... The initializer value will only be set once 32 | int cnt = 0; | ^~~ -... Suggest use 'function automatic' or 'function static' %Warning-IMPLICITSTATIC: t/t_func_no_lifetime_bad.v:9:8: Variable's lifetime implicitly set to static - : ... Suggest use 'static' before variable declaration' + : ... The initializer value will only be set once + : ... Suggest use 'static' before variable declaration' 9 | int cnt = 0; | ^~~ %Warning-IMPLICITSTATIC: t/t_func_no_lifetime_bad.v:15:8: Variable's lifetime implicitly set to static + : ... The initializer value will only be set once : ... Suggest use 'static' before variable declaration' 15 | int cnt = 0; | ^~~ diff --git a/test_regress/t/t_json_only_begin_hier.out b/test_regress/t/t_json_only_begin_hier.out index 277aba9b0..452f2903d 100644 --- a/test_regress/t/t_json_only_begin_hier.out +++ b/test_regress/t/t_json_only_begin_hier.out @@ -2,7 +2,7 @@ "modulesp": [ {"type":"MODULE","name":"test","addr":"(E)","loc":"d,22:8,22:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"test","level":2,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"N","addr":"(F)","loc":"d,24:12,24:13","dtypep":"(G)","origName":"N","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":true,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"GENVAR","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"N","addr":"(F)","loc":"d,24:12,24:13","dtypep":"(G)","origName":"N","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":true,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"GENVAR","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"BEGIN","name":"FOR_GENERATE","addr":"(H)","loc":"d,25:14,25:17","generate":true,"genfor":false,"implied":true,"needProcess":false,"unnamed":false,"genforp": [],"stmtsp": []}, {"type":"BEGIN","name":"FOR_GENERATE[0]","addr":"(I)","loc":"d,27:21,27:31","generate":true,"genfor":false,"implied":false,"needProcess":false,"unnamed":false,"genforp": [], "stmtsp": [ @@ -27,7 +27,7 @@ "stmtsp": [ {"type":"BEGIN","name":"submod_gen","addr":"(T)","loc":"d,12:19,12:29","generate":true,"genfor":false,"implied":false,"needProcess":false,"unnamed":false,"genforp": [], "stmtsp": [ - {"type":"VAR","name":"l1_sig","addr":"(U)","loc":"d,13:14,13:20","dtypep":"(V)","origName":"l1_sig","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"l1_sig","addr":"(U)","loc":"d,13:14,13:20","dtypep":"(V)","origName":"l1_sig","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"BEGIN","name":"nested_gen","addr":"(W)","loc":"d,14:23,14:33","generate":true,"genfor":false,"implied":false,"needProcess":false,"unnamed":false,"genforp": [], "stmtsp": [ {"type":"CELL","name":"submod_nested","addr":"(X)","loc":"d,15:21,15:34","origName":"submod_nested","recursive":false,"modp":"(Y)","pinsp": [],"paramsp": [],"rangep": [],"intfRefsp": []} diff --git a/test_regress/t/t_json_only_debugcheck.out b/test_regress/t/t_json_only_debugcheck.out index f003a9509..c68132e4e 100644 --- a/test_regress/t/t_json_only_debugcheck.out +++ b/test_regress/t/t_json_only_debugcheck.out @@ -2,11 +2,11 @@ "modulesp": [ {"type":"MODULE","name":"$root","addr":"(I)","loc":"d,11:8,11:9","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"$root","level":1,"modPublic":true,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"clk","addr":"(J)","loc":"d,15:10,15:13","dtypep":"(K)","origName":"clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":true,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.e","addr":"(L)","loc":"d,24:9,24:10","dtypep":"(M)","origName":"e","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"my_t","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"clk","addr":"(J)","loc":"d,15:10,15:13","dtypep":"(K)","origName":"clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":true,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.e","addr":"(L)","loc":"d,24:9,24:10","dtypep":"(M)","origName":"e","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"my_t","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"__Vtrigprevexpr___TOP__clk__0","addr":"(N)","loc":"d,11:8,11:9","dtypep":"(K)","origName":"__Vtrigprevexpr___TOP__clk__0","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"NONE","varType":"MODULETEMP","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"__VactContinue","addr":"(O)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VactContinue","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":true,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"NONE","varType":"MODULETEMP","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cyc","addr":"(Q)","loc":"d,23:17,23:20","dtypep":"(R)","origName":"cyc","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cyc","addr":"(Q)","loc":"d,23:17,23:20","dtypep":"(R)","origName":"cyc","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"__VactIterCount","addr":"(S)","loc":"d,11:8,11:9","dtypep":"(T)","origName":"__VactIterCount","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":true,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"NONE","varType":"MODULETEMP","dtypeName":"bit","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"__VactTriggered","addr":"(U)","loc":"d,11:8,11:9","dtypep":"(V)","origName":"__VactTriggered","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"NONE","varType":"MODULETEMP","dtypeName":"VlTriggerVec","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"__VnbaTriggered","addr":"(W)","loc":"d,11:8,11:9","dtypep":"(V)","origName":"__VnbaTriggered","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"NONE","varType":"MODULETEMP","dtypeName":"VlTriggerVec","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, diff --git a/test_regress/t/t_json_only_first.out b/test_regress/t/t_json_only_first.out index 185d8f441..85161d3f7 100644 --- a/test_regress/t/t_json_only_first.out +++ b/test_regress/t/t_json_only_first.out @@ -2,10 +2,10 @@ "modulesp": [ {"type":"MODULE","name":"t","addr":"(E)","loc":"d,7:8,7:9","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"t","level":2,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"q","addr":"(F)","loc":"d,15:22,15:23","dtypep":"(G)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"clk","addr":"(H)","loc":"d,13:10,13:13","dtypep":"(I)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"d","addr":"(J)","loc":"d,14:16,14:17","dtypep":"(G)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"between","addr":"(K)","loc":"d,17:22,17:29","dtypep":"(G)","origName":"between","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"q","addr":"(F)","loc":"d,15:22,15:23","dtypep":"(G)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"clk","addr":"(H)","loc":"d,13:10,13:13","dtypep":"(I)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"d","addr":"(J)","loc":"d,14:16,14:17","dtypep":"(G)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"between","addr":"(K)","loc":"d,17:22,17:29","dtypep":"(G)","origName":"between","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"CELL","name":"cell1","addr":"(L)","loc":"d,20:4,20:9","origName":"cell1","recursive":false,"modp":"(M)", "pinsp": [ {"type":"PIN","name":"q","addr":"(N)","loc":"d,20:12,20:13","svDotName":true,"svImplicit":false,"modVarp":"(O)","modPTypep":"UNLINKED", @@ -39,9 +39,9 @@ ]}, {"type":"MODULE","name":"mod2","addr":"(X)","loc":"d,46:8,46:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mod2","level":3,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"clk","addr":"(FB)","loc":"d,48:10,48:13","dtypep":"(I)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"d","addr":"(Z)","loc":"d,49:16,49:17","dtypep":"(G)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"q","addr":"(CB)","loc":"d,50:22,50:23","dtypep":"(G)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"clk","addr":"(FB)","loc":"d,48:10,48:13","dtypep":"(I)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"d","addr":"(Z)","loc":"d,49:16,49:17","dtypep":"(G)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"q","addr":"(CB)","loc":"d,50:22,50:23","dtypep":"(G)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"ASSIGNW","name":"","addr":"(HB)","loc":"d,53:13,53:14","dtypep":"(G)", "rhsp": [ {"type":"VARREF","name":"d","addr":"(IB)","loc":"d,49:16,49:17","dtypep":"(G)","access":"RD","varp":"(Z)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} @@ -52,14 +52,14 @@ ]}, {"type":"MODULE","name":"mod1__W4","addr":"(M)","loc":"d,31:8,31:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mod1","level":3,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"WIDTH","addr":"(KB)","loc":"d,32:15,32:20","dtypep":"(LB)","origName":"WIDTH","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"GPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":true,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"WIDTH","addr":"(KB)","loc":"d,32:15,32:20","dtypep":"(LB)","origName":"WIDTH","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"GPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":true,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ {"type":"CONST","name":"32'sh4","addr":"(MB)","loc":"d,19:18,19:19","dtypep":"(LB)"} ],"attrsp": []}, - {"type":"VAR","name":"clk","addr":"(R)","loc":"d,34:24,34:27","dtypep":"(I)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"d","addr":"(U)","loc":"d,35:30,35:31","dtypep":"(G)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"q","addr":"(O)","loc":"d,36:30,36:31","dtypep":"(G)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"IGNORED","addr":"(NB)","loc":"d,39:15,39:22","dtypep":"(LB)","origName":"IGNORED","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"LPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"clk","addr":"(R)","loc":"d,34:24,34:27","dtypep":"(I)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"d","addr":"(U)","loc":"d,35:30,35:31","dtypep":"(G)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"q","addr":"(O)","loc":"d,36:30,36:31","dtypep":"(G)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"IGNORED","addr":"(NB)","loc":"d,39:15,39:22","dtypep":"(LB)","origName":"IGNORED","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ {"type":"CONST","name":"32'sh1","addr":"(OB)","loc":"d,39:25,39:26","dtypep":"(LB)"} ],"attrsp": []}, diff --git a/test_regress/t/t_json_only_flat.out b/test_regress/t/t_json_only_flat.out index b6b9849c5..50a393a5e 100644 --- a/test_regress/t/t_json_only_flat.out +++ b/test_regress/t/t_json_only_flat.out @@ -2,27 +2,27 @@ "modulesp": [ {"type":"MODULE","name":"$root","addr":"(F)","loc":"d,7:8,7:9","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"$root","level":1,"modPublic":true,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"q","addr":"(G)","loc":"d,15:22,15:23","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"clk","addr":"(I)","loc":"d,13:10,13:13","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"d","addr":"(K)","loc":"d,14:16,14:17","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.q","addr":"(L)","loc":"d,15:22,15:23","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.clk","addr":"(M)","loc":"d,13:10,13:13","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.d","addr":"(N)","loc":"d,14:16,14:17","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.between","addr":"(O)","loc":"d,17:22,17:29","dtypep":"(H)","origName":"between","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.WIDTH","addr":"(P)","loc":"d,32:15,32:20","dtypep":"(Q)","origName":"WIDTH","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"GPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":true,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"q","addr":"(G)","loc":"d,15:22,15:23","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"clk","addr":"(I)","loc":"d,13:10,13:13","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"d","addr":"(K)","loc":"d,14:16,14:17","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.q","addr":"(L)","loc":"d,15:22,15:23","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.clk","addr":"(M)","loc":"d,13:10,13:13","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.d","addr":"(N)","loc":"d,14:16,14:17","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.between","addr":"(O)","loc":"d,17:22,17:29","dtypep":"(H)","origName":"between","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.WIDTH","addr":"(P)","loc":"d,32:15,32:20","dtypep":"(Q)","origName":"WIDTH","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"GPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":true,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ {"type":"CONST","name":"32'sh4","addr":"(R)","loc":"d,19:18,19:19","dtypep":"(Q)"} ],"attrsp": []}, - {"type":"VAR","name":"t.cell1.clk","addr":"(S)","loc":"d,34:24,34:27","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.d","addr":"(T)","loc":"d,35:30,35:31","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.q","addr":"(U)","loc":"d,36:30,36:31","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.IGNORED","addr":"(V)","loc":"d,39:15,39:22","dtypep":"(Q)","origName":"IGNORED","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"LPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"t.cell1.clk","addr":"(S)","loc":"d,34:24,34:27","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.d","addr":"(T)","loc":"d,35:30,35:31","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.q","addr":"(U)","loc":"d,36:30,36:31","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.IGNORED","addr":"(V)","loc":"d,39:15,39:22","dtypep":"(Q)","origName":"IGNORED","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ {"type":"CONST","name":"32'sh1","addr":"(W)","loc":"d,39:25,39:26","dtypep":"(Q)"} ],"attrsp": []}, - {"type":"VAR","name":"t.cell2.clk","addr":"(X)","loc":"d,48:10,48:13","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell2.d","addr":"(Y)","loc":"d,49:16,49:17","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell2.q","addr":"(Z)","loc":"d,50:22,50:23","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell2.clk","addr":"(X)","loc":"d,48:10,48:13","dtypep":"(J)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell2.d","addr":"(Y)","loc":"d,49:16,49:17","dtypep":"(H)","origName":"d","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell2.q","addr":"(Z)","loc":"d,50:22,50:23","dtypep":"(H)","origName":"q","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"TOPSCOPE","name":"","addr":"(E)","loc":"d,7:8,7:9","senTreesp": [], "scopep": [ {"type":"SCOPE","name":"TOP","addr":"(AB)","loc":"d,7:8,7:9","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(F)", diff --git a/test_regress/t/t_json_only_flat_no_inline_mod.out b/test_regress/t/t_json_only_flat_no_inline_mod.out index 9a61549f7..fe1543da6 100644 --- a/test_regress/t/t_json_only_flat_no_inline_mod.out +++ b/test_regress/t/t_json_only_flat_no_inline_mod.out @@ -2,9 +2,9 @@ "modulesp": [ {"type":"MODULE","name":"$root","addr":"(F)","loc":"d,11:8,11:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"$root","level":1,"modPublic":true,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"i_clk","addr":"(G)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"top.i_clk","addr":"(I)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"top.f.i_clk","addr":"(J)","loc":"d,7:24,7:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"i_clk","addr":"(G)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"top.i_clk","addr":"(I)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"top.f.i_clk","addr":"(J)","loc":"d,7:24,7:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"TOPSCOPE","name":"","addr":"(E)","loc":"d,11:8,11:11","senTreesp": [], "scopep": [ {"type":"SCOPE","name":"TOP","addr":"(K)","loc":"d,11:8,11:11","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(F)", diff --git a/test_regress/t/t_json_only_flat_pub_mod.out b/test_regress/t/t_json_only_flat_pub_mod.out index 9a61549f7..fe1543da6 100644 --- a/test_regress/t/t_json_only_flat_pub_mod.out +++ b/test_regress/t/t_json_only_flat_pub_mod.out @@ -2,9 +2,9 @@ "modulesp": [ {"type":"MODULE","name":"$root","addr":"(F)","loc":"d,11:8,11:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"$root","level":1,"modPublic":true,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"i_clk","addr":"(G)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"top.i_clk","addr":"(I)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"top.f.i_clk","addr":"(J)","loc":"d,7:24,7:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"i_clk","addr":"(G)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"top.i_clk","addr":"(I)","loc":"d,11:24,11:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"top.f.i_clk","addr":"(J)","loc":"d,7:24,7:29","dtypep":"(H)","origName":"i_clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"TOPSCOPE","name":"","addr":"(E)","loc":"d,11:8,11:11","senTreesp": [], "scopep": [ {"type":"SCOPE","name":"TOP","addr":"(K)","loc":"d,11:8,11:11","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(F)", diff --git a/test_regress/t/t_json_only_flat_vlvbound.out b/test_regress/t/t_json_only_flat_vlvbound.out index 9484c0cb3..dc8f3b13e 100644 --- a/test_regress/t/t_json_only_flat_vlvbound.out +++ b/test_regress/t/t_json_only_flat_vlvbound.out @@ -2,14 +2,14 @@ "modulesp": [ {"type":"MODULE","name":"$root","addr":"(F)","loc":"d,7:8,7:21","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"$root","level":1,"modPublic":true,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"i_a","addr":"(G)","loc":"d,9:25,9:28","dtypep":"(H)","origName":"i_a","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"i_b","addr":"(I)","loc":"d,10:25,10:28","dtypep":"(H)","origName":"i_b","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"o_a","addr":"(J)","loc":"d,11:25,11:28","dtypep":"(K)","origName":"o_a","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"o_b","addr":"(L)","loc":"d,12:25,12:28","dtypep":"(K)","origName":"o_b","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"vlvbound_test.i_a","addr":"(M)","loc":"d,9:25,9:28","dtypep":"(H)","origName":"i_a","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"vlvbound_test.i_b","addr":"(N)","loc":"d,10:25,10:28","dtypep":"(H)","origName":"i_b","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"vlvbound_test.o_a","addr":"(O)","loc":"d,11:25,11:28","dtypep":"(K)","origName":"o_a","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"vlvbound_test.o_b","addr":"(P)","loc":"d,12:25,12:28","dtypep":"(K)","origName":"o_b","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"i_a","addr":"(G)","loc":"d,9:25,9:28","dtypep":"(H)","origName":"i_a","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"i_b","addr":"(I)","loc":"d,10:25,10:28","dtypep":"(H)","origName":"i_b","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"o_a","addr":"(J)","loc":"d,11:25,11:28","dtypep":"(K)","origName":"o_a","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"o_b","addr":"(L)","loc":"d,12:25,12:28","dtypep":"(K)","origName":"o_b","isSc":false,"isPrimaryIO":true,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":true,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"vlvbound_test.i_a","addr":"(M)","loc":"d,9:25,9:28","dtypep":"(H)","origName":"i_a","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"vlvbound_test.i_b","addr":"(N)","loc":"d,10:25,10:28","dtypep":"(H)","origName":"i_b","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"vlvbound_test.o_a","addr":"(O)","loc":"d,11:25,11:28","dtypep":"(K)","origName":"o_a","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"vlvbound_test.o_b","addr":"(P)","loc":"d,12:25,12:28","dtypep":"(K)","origName":"o_b","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"TOPSCOPE","name":"","addr":"(E)","loc":"d,7:8,7:21","senTreesp": [], "scopep": [ {"type":"SCOPE","name":"TOP","addr":"(Q)","loc":"d,7:8,7:21","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(F)", diff --git a/test_regress/t/t_json_only_output.out b/test_regress/t/t_json_only_output.out index 71b7819ac..81ce5f529 100644 --- a/test_regress/t/t_json_only_output.out +++ b/test_regress/t/t_json_only_output.out @@ -2,7 +2,7 @@ "modulesp": [ {"type":"MODULE","name":"m","addr":"(E)","loc":"d,7:8,7:9","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"m","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"clk","addr":"(F)","loc":"d,8:10,8:13","dtypep":"(G)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"clk","addr":"(F)","loc":"d,8:10,8:13","dtypep":"(G)","origName":"clk","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]} ],"filesp": [], "miscsp": [ diff --git a/test_regress/t/t_json_only_tag.out b/test_regress/t/t_json_only_tag.out index 722936103..a74077111 100644 --- a/test_regress/t/t_json_only_tag.out +++ b/test_regress/t/t_json_only_tag.out @@ -2,14 +2,14 @@ "modulesp": [ {"type":"MODULE","name":"m","addr":"(E)","loc":"d,12:8,12:9","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"m","level":2,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"clk_ip","addr":"(F)","loc":"d,14:11,14:17","dtypep":"(G)","origName":"clk_ip","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"rst_ip","addr":"(H)","loc":"d,15:11,15:17","dtypep":"(G)","origName":"rst_ip","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"foo_op","addr":"(I)","loc":"d,16:11,16:17","dtypep":"(G)","origName":"foo_op","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"clk_ip","addr":"(F)","loc":"d,14:11,14:17","dtypep":"(G)","origName":"clk_ip","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"rst_ip","addr":"(H)","loc":"d,15:11,15:17","dtypep":"(G)","origName":"rst_ip","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"foo_op","addr":"(I)","loc":"d,16:11,16:17","dtypep":"(G)","origName":"foo_op","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"TYPEDEF","name":"my_struct","addr":"(J)","loc":"d,25:6,25:15","dtypep":"(K)","attrPublic":false,"isUnderClass":false,"childDTypep": [],"attrsp": []}, {"type":"CELL","name":"itop","addr":"(L)","loc":"d,29:8,29:12","origName":"itop","recursive":false,"modp":"(M)","pinsp": [],"paramsp": [],"rangep": [],"intfRefsp": []}, - {"type":"VAR","name":"itop","addr":"(N)","loc":"d,29:8,29:12","dtypep":"(O)","origName":"itop__Viftop","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"IFACEREF","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"this_struct","addr":"(P)","loc":"d,31:14,31:25","dtypep":"(Q)","origName":"this_struct","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"dotted","addr":"(R)","loc":"d,33:16,33:22","dtypep":"(S)","origName":"dotted","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"itop","addr":"(N)","loc":"d,29:8,29:12","dtypep":"(O)","origName":"itop__Viftop","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"IFACEREF","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"this_struct","addr":"(P)","loc":"d,31:14,31:25","dtypep":"(Q)","origName":"this_struct","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"dotted","addr":"(R)","loc":"d,33:16,33:22","dtypep":"(S)","origName":"dotted","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"ASSIGNW","name":"","addr":"(T)","loc":"d,33:23,33:24","dtypep":"(S)", "rhsp": [ {"type":"VARXREF","name":"value","addr":"(U)","loc":"d,33:30,33:35","dtypep":"(V)","containsGenBlock":false,"dotted":"itop","inlinedDots":"","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} @@ -22,7 +22,7 @@ {"type":"VAR","name":"f","addr":"(Z)","loc":"d,35:13,35:14","dtypep":"(G)","origName":"f","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":true,"isFuncLocal":true,"lifetime":"VAUTOM","varType":"VAR","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ],"classOrPackagep": [], "stmtsp": [ - {"type":"VAR","name":"m","addr":"(AB)","loc":"d,35:28,35:29","dtypep":"(BB)","origName":"m","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":true,"lifetime":"VAUTOM","varType":"PORT","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"m","addr":"(AB)","loc":"d,35:28,35:29","dtypep":"(BB)","origName":"m","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":true,"lifetime":"VAUTOMI","varType":"PORT","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"DISPLAY","name":"","addr":"(CB)","loc":"d,36:7,36:15", "fmtp": [ {"type":"SFORMATF","name":"%@","addr":"(DB)","loc":"d,36:7,36:15","dtypep":"(BB)", @@ -50,7 +50,7 @@ ]}, {"type":"IFACE","name":"ifc","addr":"(M)","loc":"d,7:11,7:14","origName":"ifc","level":3,"modPublic":false,"inLibrary":true,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"value","addr":"(W)","loc":"d,8:12,8:17","dtypep":"(V)","origName":"value","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"VAR","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"value","addr":"(W)","loc":"d,8:12,8:17","dtypep":"(V)","origName":"value","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"VAR","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"MODPORT","name":"out_modport","addr":"(MB)","loc":"d,9:12,9:23", "varsp": [ {"type":"MODPORTVARREF","name":"value","addr":"(NB)","loc":"d,9:32,9:37","direction":"OUTPUT","varp":"(W)"} diff --git a/test_regress/t/t_jumps_do_while.v b/test_regress/t/t_jumps_do_while.v index 0f9705487..8920dfac1 100644 --- a/test_regress/t/t_jumps_do_while.v +++ b/test_regress/t/t_jumps_do_while.v @@ -157,9 +157,10 @@ module t (/*AUTOARG*/ endfunction always @(posedge clk) begin - bit [11:0] results = {test_1(), test_2(), test_3(), test_4(), test_5(), - test_6(), test_7(), test_8(), test_9(), test_10(), - test_11(), test_12()}; + bit [11:0] results; + results = {test_1(), test_2(), test_3(), test_4(), test_5(), + test_6(), test_7(), test_8(), test_9(), test_10(), + test_11(), test_12()}; if (results == '1) begin $write("*-* All Finished *-*\n"); diff --git a/test_regress/t/t_lint_blkseq_loop.v b/test_regress/t/t_lint_blkseq_loop.v index c6564a957..1d112dfb0 100644 --- a/test_regress/t/t_lint_blkseq_loop.v +++ b/test_regress/t/t_lint_blkseq_loop.v @@ -76,7 +76,9 @@ module reg_1r1w // Message 679 always @(posedge clk) begin + // verilator lint_off IMPLICITSTATIC int tmp = x + 1; + // verilator lint_on IMPLICITSTATIC if (tmp !== x + 1) $stop; end diff --git a/test_regress/t/t_lint_implicitstatic_bad.out b/test_regress/t/t_lint_implicitstatic_bad.out new file mode 100644 index 000000000..648098edb --- /dev/null +++ b/test_regress/t/t_lint_implicitstatic_bad.out @@ -0,0 +1,31 @@ +%Warning-IMPLICITSTATIC: t/t_lint_implicitstatic_bad.v:16:9: Variable's lifetime implicitly set to static + : ... The initializer value will only be set once + : ... Suggest use 'static' before variable declaration' + 16 | int implicit_warn = 1; + | ^~~~~~~~~~~~~ + ... For warning description see https://verilator.org/warn/IMPLICITSTATIC?v=latest + ... Use "/* verilator lint_off IMPLICITSTATIC */" and lint_on around source to disable this message. +%Warning-IMPLICITSTATIC: t/t_lint_implicitstatic_bad.v:19:16: Function/task's lifetime implicitly set to static + : ... Suggest use 'function automatic' or 'function static' + 19 | function int f_implicit_static(); + | ^~~~~~~~~~~~~~~~~ + t/t_lint_implicitstatic_bad.v:20:9: ... Location of implicit static variable + : ... The initializer value will only be set once + 20 | int cnt = 0; + | ^~~ +%Warning-IMPLICITSTATIC: t/t_lint_implicitstatic_bad.v:24:8: Function/task's lifetime implicitly set to static + : ... Suggest use 'task automatic' or 'task static' + 24 | task f_implicit_static(); + | ^~~~~~~~~~~~~~~~~ + t/t_lint_implicitstatic_bad.v:25:9: ... Location of implicit static variable + : ... The initializer value will only be set once + 25 | int cnt = 0; + | ^~~ +%Error: t/t_lint_implicitstatic_bad.v:24:8: Unsupported in C: Task has the same name as function: 'f_implicit_static' + 24 | task f_implicit_static(); + | ^~~~~~~~~~~~~~~~~ + t/t_lint_implicitstatic_bad.v:19:16: ... Location of original declaration + 19 | function int f_implicit_static(); + | ^~~~~~~~~~~~~~~~~ + ... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance. +%Error: Exiting due to diff --git a/test_regress/t/t_lint_implicitstatic_bad.py b/test_regress/t/t_lint_implicitstatic_bad.py new file mode 100755 index 000000000..966dc53da --- /dev/null +++ b/test_regress/t/t_lint_implicitstatic_bad.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +# DESCRIPTION: Verilator: Verilog Test driver/expect definition +# +# Copyright 2024 by Wilson Snyder. This program is free software; you +# can redistribute it and/or modify it under the terms of either the GNU +# Lesser General Public License Version 3 or the Perl Artistic License +# Version 2.0. +# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 + +import vltest_bootstrap + +test.scenarios('simulator') + +test.compile(fails=test.vlt_all, expect_filename=test.golden_filename) + +if not test.vlt_all: + test.execute() + +test.passes() diff --git a/test_regress/t/t_lint_implicitstatic_bad.v b/test_regress/t/t_lint_implicitstatic_bad.v new file mode 100644 index 000000000..dea1220ad --- /dev/null +++ b/test_regress/t/t_lint_implicitstatic_bad.v @@ -0,0 +1,29 @@ +// DESCRIPTION: Verilator: Verilog Test module +// +// This file ONLY is placed under the Creative Commons Public Domain, for +// any use, without warranty, 2025 by Wilson Snyder. +// SPDX-License-Identifier: CC0-1.0 + +module t ( + input clk +); + + initial begin + int static_ok = 1; // Obvious as is in initial + end + + always @(posedge clk) begin + int implicit_warn = 1; // <--- Warning: IMPLICITSTATIC + end + + function int f_implicit_static(); + int cnt = 0; // <--- Warning: IMPLICIT STATIC + return ++cnt; + endfunction + + task f_implicit_static(); + int cnt = 0; // <--- Warning: IMPLICIT STATIC + ++cnt; + endtask + +endmodule diff --git a/test_regress/t/t_output_groups.v b/test_regress/t/t_output_groups.v index 7b44e03df..49e2ee98a 100644 --- a/test_regress/t/t_output_groups.v +++ b/test_regress/t/t_output_groups.v @@ -32,7 +32,7 @@ module t (/*AUTOARG*/ end endgenerate always @(posedge clk) begin - int sum = 0; + static int sum = 0; foreach (q[i]) sum += q[i].get_param(); if (sum != MAX * (MAX - 1) / 2) $stop; diff --git a/test_regress/t/t_queue.v b/test_regress/t/t_queue.v index 140561649..e54cda217 100644 --- a/test_regress/t/t_queue.v +++ b/test_regress/t/t_queue.v @@ -121,7 +121,7 @@ module t (/*AUTOARG*/ string q[$]; string p[$:3]; string v; - int j = 0; + int j; // Empty queue checks `checkh($left(q), 0); @@ -160,6 +160,7 @@ module t (/*AUTOARG*/ //v = q[0]; `checks(v, "ins0"); //v = q[3]; `checks(v, "ins3"); + j = 0; foreach (q[i]) begin j++; v = q[i]; diff --git a/test_regress/t/t_split_var_1_bad.out b/test_regress/t/t_split_var_1_bad.out index a48e80f5e..2ff9868da 100644 --- a/test_regress/t/t_split_var_1_bad.out +++ b/test_regress/t/t_split_var_1_bad.out @@ -72,10 +72,10 @@ : ... note: In instance 't.i_sub1' 62 | genvar cannot_split_genvar /*verilator split_var*/ ; | ^~~~~~~~~~~~~~~~~~~ -%Warning-SPLITVAR: t/t_split_var_1_bad.v:65:65: 'cannot_split' has split_var metacomment but will not be split because its bit range cannot be determined statically. +%Warning-SPLITVAR: t/t_split_var_1_bad.v:65:72: 'cannot_split' has split_var metacomment but will not be split because its bit range cannot be determined statically. : ... note: In instance 't.i_sub1' - 65 | logic [8:0] rd_tmp /*verilator split_var*/ = cannot_split[addr]; - | ^ + 65 | static logic [8:0] rd_tmp /*verilator split_var*/ = cannot_split[addr]; + | ^ %Warning-SPLITVAR: t/t_split_var_1_bad.v:66:23: 'rd_tmp' has split_var metacomment but will not be split because its bit range cannot be determined statically. : ... note: In instance 't.i_sub1' 66 | rd_data = rd_tmp[{3'b0, addr[0]}+:8]; diff --git a/test_regress/t/t_split_var_1_bad.v b/test_regress/t/t_split_var_1_bad.v index 32f1f2107..f31bddcb4 100644 --- a/test_regress/t/t_split_var_1_bad.v +++ b/test_regress/t/t_split_var_1_bad.v @@ -62,7 +62,7 @@ module sub1(input [3:0]addr, output logic [7:0] rd_data); genvar cannot_split_genvar /*verilator split_var*/; logic [15:0] [8:0] cannot_split /*verilator split_var*/; always_comb begin - logic [8:0] rd_tmp /*verilator split_var*/ = cannot_split[addr]; + static logic [8:0] rd_tmp /*verilator split_var*/ = cannot_split[addr]; rd_data = rd_tmp[{3'b0, addr[0]}+:8]; end diff --git a/test_regress/t/t_timing_finish2.v b/test_regress/t/t_timing_finish2.v index c252cf453..f715adbcb 100644 --- a/test_regress/t/t_timing_finish2.v +++ b/test_regress/t/t_timing_finish2.v @@ -16,7 +16,7 @@ module tb2 (); always #(CLK_PERIOD / 2) clk = ~clk; always begin - int counter = 0; + static int counter = 0; while (counter < 3) begin counter += 1; $display("[%0t] Running loop %0d", $time, counter); diff --git a/test_regress/t/t_var_port_json_only.out b/test_regress/t/t_var_port_json_only.out index e5be3bfd0..17d4d2fb4 100644 --- a/test_regress/t/t_var_port_json_only.out +++ b/test_regress/t/t_var_port_json_only.out @@ -2,68 +2,68 @@ "modulesp": [ {"type":"MODULE","name":"mh2","addr":"(E)","loc":"d,18:8,18:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh2","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_inout_wire_integer","addr":"(F)","loc":"d,18:27,18:47","dtypep":"(G)","origName":"x_inout_wire_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INOUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_inout_wire_integer","addr":"(F)","loc":"d,18:27,18:47","dtypep":"(G)","origName":"x_inout_wire_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INOUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh5","addr":"(H)","loc":"d,24:8,24:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh5","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_input_wire_logic","addr":"(I)","loc":"d,24:19,24:37","dtypep":"(J)","origName":"x_input_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_input_wire_logic","addr":"(I)","loc":"d,24:19,24:37","dtypep":"(J)","origName":"x_input_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh6","addr":"(K)","loc":"d,26:8,26:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh6","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_input_var_logic","addr":"(L)","loc":"d,26:23,26:40","dtypep":"(J)","origName":"x_input_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_input_var_logic","addr":"(L)","loc":"d,26:23,26:40","dtypep":"(J)","origName":"x_input_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh7","addr":"(M)","loc":"d,28:8,28:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh7","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_input_var_integer","addr":"(N)","loc":"d,28:31,28:50","dtypep":"(G)","origName":"x_input_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_input_var_integer","addr":"(N)","loc":"d,28:31,28:50","dtypep":"(G)","origName":"x_input_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh8","addr":"(O)","loc":"d,30:8,30:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh8","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_output_wire_logic","addr":"(P)","loc":"d,30:20,30:39","dtypep":"(J)","origName":"x_output_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_output_wire_logic","addr":"(P)","loc":"d,30:20,30:39","dtypep":"(J)","origName":"x_output_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh9","addr":"(Q)","loc":"d,32:8,32:11","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh9","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_output_var_logic","addr":"(R)","loc":"d,32:24,32:42","dtypep":"(J)","origName":"x_output_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_output_var_logic","addr":"(R)","loc":"d,32:24,32:42","dtypep":"(J)","origName":"x_output_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh10","addr":"(S)","loc":"d,34:8,34:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh10","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_output_wire_logic_signed_p6","addr":"(T)","loc":"d,34:33,34:62","dtypep":"(U)","origName":"x_output_wire_logic_signed_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_output_wire_logic_signed_p6","addr":"(T)","loc":"d,34:33,34:62","dtypep":"(U)","origName":"x_output_wire_logic_signed_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh11","addr":"(V)","loc":"d,36:8,36:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh11","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_output_var_integer","addr":"(W)","loc":"d,36:28,36:48","dtypep":"(G)","origName":"x_output_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_output_var_integer","addr":"(W)","loc":"d,36:28,36:48","dtypep":"(G)","origName":"x_output_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh12","addr":"(X)","loc":"d,38:8,38:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh12","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_ref_logic_p6","addr":"(Y)","loc":"d,38:23,38:37","dtypep":"(Z)","origName":"x_ref_logic_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_ref_logic_p6","addr":"(Y)","loc":"d,38:23,38:37","dtypep":"(Z)","origName":"x_ref_logic_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh13","addr":"(AB)","loc":"d,40:8,40:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh13","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_ref_var_logic_u6","addr":"(BB)","loc":"d,40:17,40:35","dtypep":"(CB)","origName":"x_ref_var_logic_u6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_ref_var_logic_u6","addr":"(BB)","loc":"d,40:17,40:35","dtypep":"(CB)","origName":"x_ref_var_logic_u6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh17","addr":"(DB)","loc":"d,50:8,50:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh17","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_input_var_integer","addr":"(EB)","loc":"d,50:31,50:50","dtypep":"(G)","origName":"x_input_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"y_input_wire_logic","addr":"(FB)","loc":"d,50:57,50:75","dtypep":"(J)","origName":"y_input_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_input_var_integer","addr":"(EB)","loc":"d,50:31,50:50","dtypep":"(G)","origName":"x_input_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"y_input_wire_logic","addr":"(FB)","loc":"d,50:57,50:75","dtypep":"(J)","origName":"y_input_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh18","addr":"(GB)","loc":"d,52:8,52:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh18","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_output_var_logic","addr":"(HB)","loc":"d,52:24,52:42","dtypep":"(J)","origName":"x_output_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"y_input_wire_logic","addr":"(IB)","loc":"d,52:50,52:68","dtypep":"(J)","origName":"y_input_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_output_var_logic","addr":"(HB)","loc":"d,52:24,52:42","dtypep":"(J)","origName":"x_output_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"y_input_wire_logic","addr":"(IB)","loc":"d,52:50,52:68","dtypep":"(J)","origName":"y_input_wire_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh19","addr":"(JB)","loc":"d,54:8,54:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh19","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_output_wire_logic_signed_p6","addr":"(KB)","loc":"d,54:33,54:62","dtypep":"(U)","origName":"x_output_wire_logic_signed_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"y_output_var_integer","addr":"(LB)","loc":"d,54:72,54:92","dtypep":"(G)","origName":"y_output_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_output_wire_logic_signed_p6","addr":"(KB)","loc":"d,54:33,54:62","dtypep":"(U)","origName":"x_output_wire_logic_signed_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"y_output_var_integer","addr":"(LB)","loc":"d,54:72,54:92","dtypep":"(G)","origName":"y_output_var_integer","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"OUTPUT","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"integer","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh20","addr":"(MB)","loc":"d,56:8,56:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh20","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"x_ref_var_logic_p6","addr":"(NB)","loc":"d,56:23,56:41","dtypep":"(Z)","origName":"x_ref_var_logic_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"y_ref_var_logic_p6","addr":"(OB)","loc":"d,56:43,56:61","dtypep":"(Z)","origName":"y_ref_var_logic_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"x_ref_var_logic_p6","addr":"(NB)","loc":"d,56:23,56:41","dtypep":"(Z)","origName":"x_ref_var_logic_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"y_ref_var_logic_p6","addr":"(OB)","loc":"d,56:43,56:61","dtypep":"(Z)","origName":"y_ref_var_logic_p6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]}, {"type":"MODULE","name":"mh21","addr":"(PB)","loc":"d,58:8,58:12","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"mh21","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"ref_var_logic_u6","addr":"(QB)","loc":"d,58:17,58:33","dtypep":"(RB)","origName":"ref_var_logic_u6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"y_ref_var_logic","addr":"(SB)","loc":"d,58:41,58:56","dtypep":"(J)","origName":"y_ref_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATIC","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} + {"type":"VAR","name":"ref_var_logic_u6","addr":"(QB)","loc":"d,58:17,58:33","dtypep":"(RB)","origName":"ref_var_logic_u6","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"y_ref_var_logic","addr":"(SB)","loc":"d,58:41,58:56","dtypep":"(J)","origName":"y_ref_var_logic","isSc":false,"isPrimaryIO":false,"isPrimaryClock":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ]} ],"filesp": [], "miscsp": [ diff --git a/test_regress/t/t_var_static_assign_decl_bad.v b/test_regress/t/t_var_static_assign_decl_bad.v index db25de778..6e0f5b260 100644 --- a/test_regress/t/t_var_static_assign_decl_bad.v +++ b/test_regress/t/t_var_static_assign_decl_bad.v @@ -91,7 +91,7 @@ module no_warn#(PARAM = 1)(input in, input clk); end always @(posedge clk) begin - logic always_tmp = in; + static logic always_tmp = in; end endmodule