diff --git a/src/V3Assert.cpp b/src/V3Assert.cpp index a0c82ad26..7f2c31754 100644 --- a/src/V3Assert.cpp +++ b/src/V3Assert.cpp @@ -152,7 +152,8 @@ class AssertVisitor final : public VNVisitor { case VAssertDirectiveType::INTRINSIC: return new AstConst{fl, AstConst::BitTrue{}}; case VAssertDirectiveType::VIOLATION_CASE: { if (v3Global.opt.assertCase()) { - return new AstCExpr{fl, "vlSymsp->_vm_contextp__->assertOn()", 1}; + return new AstCExpr{fl, AstCExpr::Pure{}, "vlSymsp->_vm_contextp__->assertOn()", + 1}; } // If assertions are off, have constant propagation rip them out later // This allows syntax errors and such to be detected normally. @@ -162,7 +163,7 @@ class AssertVisitor final : public VNVisitor { case VAssertDirectiveType::COVER: case VAssertDirectiveType::ASSUME: { if (v3Global.opt.assertOn()) { - return new AstCExpr{fl, + return new AstCExpr{fl, AstCExpr::Pure{}, "vlSymsp->_vm_contextp__->assertOnGet("s + std::to_string(type) + ", "s + std::to_string(directiveType) + ")"s, 1}; @@ -173,7 +174,8 @@ class AssertVisitor final : public VNVisitor { case VAssertDirectiveType::VIOLATION_IF: case VAssertDirectiveType::RESTRICT: { if (v3Global.opt.assertOn()) { - return new AstCExpr{fl, "vlSymsp->_vm_contextp__->assertOn()", 1}; + return new AstCExpr{fl, AstCExpr::Pure{}, "vlSymsp->_vm_contextp__->assertOn()", + 1}; } return new AstConst{fl, AstConst::BitFalse{}}; } diff --git a/src/V3Ast.h b/src/V3Ast.h index 223d44d2f..ae039639d 100644 --- a/src/V3Ast.h +++ b/src/V3Ast.h @@ -900,8 +900,6 @@ public: virtual bool isPure() { return true; } // Iff isPure on current node and any nextp() bool isPureAndNext() { return isPure() && (!nextp() || nextp()->isPure()); } - // Else a AstTime etc that can't be substituted out - virtual bool isSubstOptimizable() const { return true; } // An event control, delay, wait, etc. virtual bool isTimingControl() const { return false; } // isUnlikely handles $stop or similar statement which means an above IF @@ -1556,11 +1554,13 @@ AstNode* VNVisitor::iterateSubtreeReturnEdits(AstNode* nodep) { // For precise details please read the generated macros. #include "V3Ast__gen_macros.h" -// AstNode subclasses +// AstNode subclasses - dependency order matters, so fmt off +// clang-format off #include "V3AstNodeDType.h" -#include "V3AstNodeExpr.h" #include "V3AstNodeOther.h" +#include "V3AstNodeExpr.h" #include "V3AstNodeStmt.h" +// clang-format on // Inline function definitions need to go last #include "V3AstInlines.h" diff --git a/src/V3AstInlines.h b/src/V3AstInlines.h index b1f6ee69b..1043bf4cd 100644 --- a/src/V3AstInlines.h +++ b/src/V3AstInlines.h @@ -154,18 +154,6 @@ AstElabDisplay::AstElabDisplay(FileLine* fl, VDisplayType dispType, AstNodeExpr* m_displayType = dispType; } -AstCStmt::AstCStmt(FileLine* fl, const string& textStmt) - : ASTGEN_SUPER_CStmt(fl) { - addExprsp(new AstText{fl, textStmt, true}); -} - -AstCExpr::AstCExpr(FileLine* fl, const string& textStmt, int setwidth) - : ASTGEN_SUPER_CExpr(fl) - , m_pure{true} { - addExprsp(new AstText{fl, textStmt, true}); - if (setwidth) dtypeSetLogicSized(setwidth, VSigning::UNSIGNED); -} - bool AstVar::sameNode(const AstNode* samep) const { const AstVar* const asamep = VN_DBG_AS(samep, Var); return m_name == asamep->m_name && varType() == asamep->varType(); diff --git a/src/V3AstNodeExpr.h b/src/V3AstNodeExpr.h index 41d2d298a..9ff15e003 100644 --- a/src/V3AstNodeExpr.h +++ b/src/V3AstNodeExpr.h @@ -563,27 +563,67 @@ public: bool cleanOut() const override { V3ERROR_NA_RETURN(true); } }; class AstCExpr final : public AstNodeExpr { - // @astgen op1 := exprsp : List[AstNode] // Expressions to print - bool m_pure; // Pure optimizable + // C expression emitted into output, with some arbitrary nodes interspersed + // @astgen op1 := nodesp : List[AstNode] + const bool m_pure; // Pure optimizable + + void init(const string& text, int setwidth) { + if (!text.empty()) add(text); + if (setwidth) { + dtypeSetLogicSized(setwidth, VSigning::UNSIGNED); + } else { + dtypeSetVoid(); // Caller to override if necessary + } + } + public: - // Emit C textual expr function (like AstUCFunc) - AstCExpr(FileLine* fl, AstNode* exprsp) + class Pure {}; + AstCExpr(FileLine* fl, const string& text = "", int setwidth = 0) : ASTGEN_SUPER_CExpr(fl) , m_pure{false} { - addExprsp(exprsp); - dtypeFrom(exprsp); + init(text, setwidth); + } + AstCExpr(FileLine* fl, Pure, const string& text = "", int setwidth = 0) + : ASTGEN_SUPER_CExpr(fl) + , m_pure{true} { + init(text, setwidth); } - inline AstCExpr(FileLine* fl, const string& textStmt, int setwidth); ASTGEN_MEMBERS_AstCExpr; - bool isGateOptimizable() const override { return m_pure; } - bool isPredictOptimizable() const override { return m_pure; } + // METHODS bool cleanOut() const override { return true; } - string emitVerilog() override { V3ERROR_NA_RETURN(""); } - string emitC() override { V3ERROR_NA_RETURN(""); } + std::string emitC() override { V3ERROR_NA_RETURN(""); } + std::string emitVerilog() override { V3ERROR_NA_RETURN(""); } + bool isGateOptimizable() const override { return m_pure; } + bool isOutputter() override { return true; } + bool isPredictOptimizable() const override { return m_pure; } + bool isPure() override { return m_pure; } bool sameNode(const AstNode* /*samep*/) const override { return true; } - bool isPure() override { return pure(); } - bool pure() const { return m_pure; } - void pure(bool flag) { m_pure = flag; } + // Add some text, or a node to this expression + void add(const std::string& text) { addNodesp(new AstText{fileline(), text}); } + void add(AstNode* nodep) { addNodesp(nodep); } +}; +class AstCExprUser final : public AstNodeExpr { + // User '$c' statement - Like AstCStmt, with text tracking and optimizations disabled. + // + // Use AstCExpr instead, unless the text is from user input. + // + // @astgen op1 := nodesp : List[AstNode] +public: + AstCExprUser(FileLine* fl) + : ASTGEN_SUPER_CExprUser(fl) {} + ASTGEN_MEMBERS_AstCExprUser; + // METHODS + bool cleanOut() const override { return false; } + std::string emitC() override { V3ERROR_NA_RETURN(""); } + std::string emitVerilog() override { V3ERROR_NA_RETURN(""); } + bool isGateOptimizable() const override { return false; } + bool isOutputter() override { return true; } + bool isPredictOptimizable() const override { return false; } + bool isPure() override { return false; } + bool sameNode(const AstNode* /*samep*/) const override { return true; } + // Add some text, or a node to this expression + void add(const std::string& text) { addNodesp(new AstText{fileline(), text}); } + void add(AstNode* nodep) { addNodesp(nodep); } }; class AstCMethodHard final : public AstNodeExpr { // A reference to a "C" hardcoded member task (or function) @@ -2354,26 +2394,6 @@ public: VTimescale timeunit() const { return m_timeunit; } void timeunit(const VTimescale& flag) { m_timeunit = flag; } }; -class AstUCFunc final : public AstNodeExpr { - // User's $c function - // @astgen op1 := exprsp : List[AstNode] // Expressions to print (some are AstText) -public: - AstUCFunc(FileLine* fl, AstNode* exprsp) - : ASTGEN_SUPER_UCFunc(fl) { - addExprsp(exprsp); - } - ASTGEN_MEMBERS_AstUCFunc; - bool cleanOut() const override { return false; } - string emitVerilog() override { V3ERROR_NA_RETURN(""); } - string emitC() override { V3ERROR_NA_RETURN(""); } - bool isPure() override { return false; } // SPECIAL: User may order w/other sigs - bool isOutputter() override { return true; } - bool isGateOptimizable() const override { return false; } - bool isSubstOptimizable() const override { return false; } - bool isPredictOptimizable() const override { return false; } - int instrCount() const override { return INSTR_COUNT_PLI; } - bool sameNode(const AstNode* /*samep*/) const override { return true; } -}; class AstUnbounded final : public AstNodeExpr { // A $ in the parser, used for unbounded and queues // Due to where is used, treated as Signed32 diff --git a/src/V3AstNodeOther.h b/src/V3AstNodeOther.h index 97e8959bf..94cba40eb 100644 --- a/src/V3AstNodeOther.h +++ b/src/V3AstNodeOther.h @@ -385,37 +385,6 @@ public: void dump(std::ostream& str) const override; void dumpJson(std::ostream& str) const override; }; -class AstNodeText VL_NOT_FINAL : public AstNode { - string m_text; - // METHODS - string shortText() const; - -protected: - // Node that puts text into the output stream - AstNodeText(VNType t, FileLine* fl, const string& text) - : AstNode{t, fl} - , m_text{text} {} - -public: - ASTGEN_MEMBERS_AstNodeText; - void dump(std::ostream& str = std::cout) const override; - void dumpJson(std::ostream& str = std::cout) const override; - bool sameNode(const AstNode* samep) const override { - const AstNodeText* asamep = VN_DBG_AS(samep, NodeText); - return text() == asamep->text(); - } - const string& text() const VL_MT_SAFE { return m_text; } - void text(const string& value) { m_text = value; } -}; -class AstNodeSimpleText VL_NOT_FINAL : public AstNodeText { - const bool m_tracking; // When emit, it's ok to parse the string to do indentation -public: - AstNodeSimpleText(VNType t, FileLine* fl, const string& textp, bool tracking = false) - : AstNodeText{t, fl, textp} - , m_tracking{tracking} {} - ASTGEN_MEMBERS_AstNodeSimpleText; - bool tracking() const { return m_tracking; } -}; // === Concrete node types ===================================================== @@ -1666,6 +1635,49 @@ public: bool isPure() override { return false; } bool isOutputter() override { return true; } }; +class AstText final : public AstNode { + // Represents a piece of text to be emitted into the output + // + // Avoid using this directly, internally usually want + // AstCStmt::add("text") or AstCExpr::add("text") instead + // + std::string m_text; // The text to emit +public: + AstText(FileLine* fl, const std::string& text) + : ASTGEN_SUPER_Text(fl) + , m_text{text} {} + ASTGEN_MEMBERS_AstText; + void dump(std::ostream& str = std::cout) const override; + void dumpJson(std::ostream& str = std::cout) const override; + bool sameNode(const AstNode* samep) const override { + return text() == VN_DBG_AS(samep, Text)->text(); + } + const std::string& text() const VL_MT_SAFE { return m_text; } + void text(const string& value) { m_text = value; } +}; +class AstTextBlock final : public AstNode { + // Text block emitted into output, with some arbitrary nodes interspersed + // @astgen op1 := nodesp : List[AstNode] // Nodes to print + const std::string m_prefix; // Prefix to print before first element in 'nodesp' + const std::string m_separator; // Separator to print between each element in 'nodesp' + const std::string m_suffix; // Suffix to pring after last element in 'nodesp' +public: + AstTextBlock(FileLine* fl, // + const std::string& prefix = "", // + const std::string& separator = "", // + const std::string& suffix = "") + : ASTGEN_SUPER_TextBlock(fl) + , m_prefix{prefix} + , m_separator{separator} + , m_suffix{suffix} {} + ASTGEN_MEMBERS_AstTextBlock; + const std::string& prefix() const { return m_prefix; } + const std::string& separator() const { return m_separator; } + const std::string& suffix() const { return m_suffix; } + // Add some text, or a node to this block + void add(const string& text) { addNodesp(new AstText{fileline(), text}); } + void add(AstNode* nodep) { addNodesp(nodep); } +}; class AstTopScope final : public AstNode { // A singleton, held under the top level AstModule. Holds the top level // AstScope, and after V3ActiveTop, the global list of AstSenTrees (list of @@ -2831,27 +2843,4 @@ public: bool sameNode(const AstNode* /*samep*/) const override { return true; } }; -// === AstNodeSimpleText === -class AstText final : public AstNodeSimpleText { -public: - AstText(FileLine* fl, const string& textp, bool tracking = false) - : ASTGEN_SUPER_Text(fl, textp, tracking) {} - ASTGEN_MEMBERS_AstText; -}; -class AstTextBlock final : public AstNodeSimpleText { - // @astgen op1 := nodesp : List[AstNode] - bool m_commas; // Comma separate emitted children -public: - explicit AstTextBlock(FileLine* fl, const string& textp = "", bool tracking = false, - bool commas = false) - : ASTGEN_SUPER_TextBlock(fl, textp, tracking) - , m_commas{commas} {} - ASTGEN_MEMBERS_AstTextBlock; - bool commas() const { return m_commas; } - void commas(bool flag) { m_commas = flag; } - void addText(FileLine* fl, const string& textp, bool tracking = false) { - addNodesp(new AstText{fl, textp, tracking}); - } -}; - #endif // Guard diff --git a/src/V3AstNodeStmt.h b/src/V3AstNodeStmt.h index 5efe38ccc..db2fab8b3 100644 --- a/src/V3AstNodeStmt.h +++ b/src/V3AstNodeStmt.h @@ -289,18 +289,49 @@ public: bool sameNode(const AstNode* /*samep*/) const override { return true; } }; class AstCStmt final : public AstNodeStmt { - // Emit C statement - // @astgen op1 := exprsp : List[AstNode] + // C statement emitted into output, with some arbitrary nodes interspersed + // @astgen op1 := nodesp : List[AstNode] public: - AstCStmt(FileLine* fl, AstNode* exprsp) + AstCStmt(FileLine* fl, const std::string& text = "") : ASTGEN_SUPER_CStmt(fl) { - addExprsp(exprsp); + if (!text.empty()) add(text); } - inline AstCStmt(FileLine* fl, const string& textStmt); ASTGEN_MEMBERS_AstCStmt; bool isGateOptimizable() const override { return false; } + bool isOutputter() override { return true; } bool isPredictOptimizable() const override { return false; } - bool sameNode(const AstNode* /*samep*/) const override { return true; } + bool isPure() override { return false; } + bool sameNode(const AstNode*) const override { return true; } + // Add some text, or a node to this statement + void add(const std::string& text) { addNodesp(new AstText{fileline(), text}); } + void add(AstNode* nodep) { addNodesp(nodep); } +}; +class AstCStmtUser final : public AstNodeStmt { + // User '$c' statement, also used for handling some AstSystemCSection. + // Same as AstCStmt, with text tracking disabled. + // + // Note this cannot be modelled as AstStmtExpr(AstCExprUser) because the + // latter would have an extra semicolon emitted, which might be undesirable. + // + // Use AstCStmt instead, unless the text is from user input. + // + // @astgen op1 := nodesp : List[AstNode] + const bool m_fromDollarC; // Is from source '$c', emit decoration +public: + AstCStmtUser(FileLine* fl, bool fromDollarC = false) + : ASTGEN_SUPER_CStmtUser(fl) + , m_fromDollarC{fromDollarC} {} + ASTGEN_MEMBERS_AstCStmtUser; + // METHODS + bool isGateOptimizable() const override { return false; } + bool isOutputter() override { return true; } + bool isPredictOptimizable() const override { return false; } + bool isPure() override { return false; } + bool sameNode(const AstNode*) const override { return true; } + bool fromDollarC() const { return m_fromDollarC; } + // Add some text, or a node to this statement + void add(const std::string& text) { addNodesp(new AstText{fileline(), text}); } + void add(AstNode* nodep) { addNodesp(nodep); } }; class AstCase final : public AstNodeStmt { // Case statement @@ -1201,21 +1232,6 @@ public: string prefix() const { return m_prefix; } VTracePrefixType prefixType() const { return m_prefixType; } }; -class AstUCStmt final : public AstNodeStmt { - // User $c statement - // @astgen op1 := exprsp : List[AstNode] // (some are AstText) -public: - AstUCStmt(FileLine* fl, AstNode* exprsp) - : ASTGEN_SUPER_UCStmt(fl) { - addExprsp(exprsp); - } - ASTGEN_MEMBERS_AstUCStmt; - bool isGateOptimizable() const override { return false; } - bool isPredictOptimizable() const override { return false; } - bool isPure() override { return false; } - bool isOutputter() override { return true; } - bool sameNode(const AstNode* /*samep*/) const override { return true; } -}; class AstWait final : public AstNodeStmt { // @astgen op1 := condp : AstNodeExpr // @astgen op2 := stmtsp : List[AstNode] diff --git a/src/V3AstNodes.cpp b/src/V3AstNodes.cpp index a7ef87ae0..fe69fe405 100644 --- a/src/V3AstNodes.cpp +++ b/src/V3AstNodes.cpp @@ -3071,21 +3071,21 @@ void AstTraceInc::dump(std::ostream& str) const { } } void AstTraceInc::dumpJson(std::ostream& str) const { dumpJsonGen(str); } -string AstNodeText::shortText() const { - string out = text(); - string::size_type pos; - if ((pos = out.find('\n')) != string::npos) { - out.erase(pos, out.length() - pos); - out += "..."; - } - return out; -} -void AstNodeText::dump(std::ostream& str) const { +void AstText::dump(std::ostream& str) const { this->AstNode::dump(str); - str << " \"" << shortText() << "\""; + std::string txt = text(); + if (txt.size() > 120) { + txt.resize(120); + txt += " ... omitted ..."; + } + txt = VString::replaceSubstr(txt, "\\", "\\\\"); + txt = VString::replaceSubstr(txt, "\"", "\\\""); + txt = VString::replaceSubstr(txt, "\n", "\\n"); + txt = VString::replaceSubstr(txt, "\t", "\\t"); + str << " \"" << txt << "\""; } -void AstNodeText::dumpJson(std::ostream& str) const { - dumpJsonStrFunc(str, shortText); +void AstText::dumpJson(std::ostream& str) const { + dumpJsonStrFunc(str, text); dumpJsonGen(str); } diff --git a/src/V3CCtors.cpp b/src/V3CCtors.cpp index 8bb64bcf1..87860ae0d 100644 --- a/src/V3CCtors.cpp +++ b/src/V3CCtors.cpp @@ -139,12 +139,12 @@ class CCtorsVisitor final : public VNVisitor { // METHODS static void insertSc(AstCFunc* cfuncp, const AstNodeModule* modp, VSystemCSectionType type) { - auto textAndFileline = EmitCBaseVisitorConst::scSection(modp, type); - if (!textAndFileline.first.empty()) { - AstTextBlock* const newp - = new AstTextBlock{textAndFileline.second, textAndFileline.first, false, false}; - cfuncp->addStmtsp(newp); - } + const auto txtAndFlp = EmitCBaseVisitorConst::scSection(modp, type); + if (txtAndFlp.first.empty()) return; + // Use an AstCStmtUser as this is from user input + AstCStmtUser* const cstmtp = new AstCStmtUser{txtAndFlp.second}; + cstmtp->add(txtAndFlp.first); + cfuncp->addStmtsp(cstmtp); } // VISITORS diff --git a/src/V3Clean.cpp b/src/V3Clean.cpp index 39f922aeb..186014a8a 100644 --- a/src/V3Clean.cpp +++ b/src/V3Clean.cpp @@ -219,9 +219,6 @@ class CleanVisitor final : public VNVisitor { computeCppWidth(nodep); if (nodep->cleanRhs()) ensureClean(nodep->rhsp()); } - void visit(AstText* nodep) override { // - setClean(nodep, true); - } void visit(AstScopeName* nodep) override { // setClean(nodep, true); } @@ -238,13 +235,13 @@ class CleanVisitor final : public VNVisitor { operandBiop(nodep); setClean(nodep, nodep->cleanOut()); } - void visit(AstUCFunc* nodep) override { + void visit(AstCExprUser* nodep) override { iterateChildren(nodep); computeCppWidth(nodep); setClean(nodep, false); // We always clean, as we don't trust those pesky users. if (!VN_IS(nodep->backp(), And)) insertClean(nodep); - for (AstNode* argp = nodep->exprsp(); argp; argp = argp->nextp()) { + for (AstNode* argp = nodep->nodesp(); argp; argp = argp->nextp()) { if (AstNodeExpr* const exprp = VN_CAST(argp, NodeExpr)) ensureClean(exprp); } } @@ -282,9 +279,9 @@ class CleanVisitor final : public VNVisitor { ensureCleanAndNext(nodep->exprsp()); setClean(nodep, true); // generates a string, so not relevant } - void visit(AstUCStmt* nodep) override { + void visit(AstCStmtUser* nodep) override { iterateChildren(nodep); - for (AstNode* argp = nodep->exprsp(); argp; argp = argp->nextp()) { + for (AstNode* argp = nodep->nodesp(); argp; argp = argp->nextp()) { if (AstNodeExpr* const exprp = VN_CAST(argp, NodeExpr)) ensureClean(exprp); } } diff --git a/src/V3Common.cpp b/src/V3Common.cpp index 0b6b4082d..835ae0b6f 100644 --- a/src/V3Common.cpp +++ b/src/V3Common.cpp @@ -58,7 +58,7 @@ static void makeVlToString(AstClass* nodep) { funcp->isStatic(false); funcp->protect(false); AstNodeExpr* const exprp - = new AstCExpr{nodep->fileline(), "obj ? obj->to_string() : \"null\"", 0}; + = new AstCExpr{nodep->fileline(), "obj ? obj->to_string() : \"null\""}; exprp->dtypeSetString(); funcp->addStmtsp(new AstCReturn{nodep->fileline(), exprp}); nodep->addStmtsp(funcp); @@ -71,7 +71,7 @@ static void makeVlToString(AstIface* nodep) { funcp->isConst(false); funcp->isStatic(false); funcp->protect(false); - AstNodeExpr* const exprp = new AstCExpr{nodep->fileline(), "obj ? obj->name() : \"null\"", 0}; + AstNodeExpr* const exprp = new AstCExpr{nodep->fileline(), "obj ? obj->name() : \"null\""}; exprp->dtypeSetString(); funcp->addStmtsp(new AstCReturn{nodep->fileline(), exprp}); nodep->addStmtsp(funcp); @@ -102,7 +102,7 @@ static void makeVlToString(AstNodeUOrStructDType* nodep) { } funcp->addStmtsp(new AstCStmt{nodep->fileline(), "out += \"}\";"}); - AstCExpr* const exprp = new AstCExpr{nodep->fileline(), "out", 0}; + AstCExpr* const exprp = new AstCExpr{nodep->fileline(), "out"}; exprp->dtypeSetString(); funcp->addStmtsp(new AstCReturn{nodep->fileline(), exprp}); @@ -113,8 +113,7 @@ static void makeToString(AstClass* nodep) { funcp->isConst(true); funcp->isStatic(false); funcp->protect(false); - AstCExpr* const exprp - = new AstCExpr{nodep->fileline(), R"("'{"s + to_string_middle() + "}")", 0}; + AstCExpr* const exprp = new AstCExpr{nodep->fileline(), R"("'{"s + to_string_middle() + "}")"}; exprp->dtypeSetString(); funcp->addStmtsp(new AstCReturn{nodep->fileline(), exprp}); nodep->addStmtsp(funcp); @@ -155,7 +154,7 @@ static void makeToStringMiddle(AstClass* nodep) { funcp->addStmtsp(new AstCStmt{nodep->fileline(), stmt}); } - AstCExpr* const exprp = new AstCExpr{nodep->fileline(), "out", 0}; + AstCExpr* const exprp = new AstCExpr{nodep->fileline(), "out"}; exprp->dtypeSetString(); funcp->addStmtsp(new AstCReturn{nodep->fileline(), exprp}); diff --git a/src/V3Delayed.cpp b/src/V3Delayed.cpp index 557bc14d8..4aedfbfc7 100644 --- a/src/V3Delayed.cpp +++ b/src/V3Delayed.cpp @@ -1159,12 +1159,12 @@ class DelayedVisitor final : public VNVisitor { AstNodeExpr* const eventp = nodep->operandp()->unlinkFrBack(); // Enqueue for clearing 'triggered' state on next eval - AstTextBlock* const blockp = new AstTextBlock{flp}; - blockp->addText(flp, "vlSymsp->fireEvent(", true); - blockp->addNodesp(eventp); - blockp->addText(flp, ");", true); + AstCStmt* const cstmtp = new AstCStmt{flp}; + cstmtp->add("vlSymsp->fireEvent("); + cstmtp->add(eventp); + cstmtp->add(");"); - AstNode* newp = new AstCStmt{flp, blockp}; + AstNode* newp = cstmtp; if (nodep->isDelayed()) { const AstVarRef* const vrefp = VN_AS(eventp, VarRef); const std::string newvarname = "__Vdly__" + vrefp->varp()->shortName(); diff --git a/src/V3Depth.cpp b/src/V3Depth.cpp index 7ff71ecdd..14a8cff47 100644 --- a/src/V3Depth.cpp +++ b/src/V3Depth.cpp @@ -131,11 +131,11 @@ class DepthVisitor final : public VNVisitor { m_cfuncp->isStatic(false); } } - void visit(AstUCFunc* nodep) override { + void visit(AstCExprUser* nodep) override { needNonStaticFunc(nodep); iterateChildren(nodep); } - void visit(AstUCStmt* nodep) override { + void visit(AstCStmtUser* nodep) override { needNonStaticFunc(nodep); visitStmt(nodep); } diff --git a/src/V3EmitCBase.h b/src/V3EmitCBase.h index 6d89dd187..dc5886ce8 100644 --- a/src/V3EmitCBase.h +++ b/src/V3EmitCBase.h @@ -90,7 +90,6 @@ public: V3OutCFile* m_ofp = nullptr; AstCFile* m_outFileNodep = nullptr; int m_splitSize = 0; // # of cfunc nodes placed into output file - bool m_trackText = false; // Always track AstText nodes // METHODS // Returns pointer to current output file object. diff --git a/src/V3EmitCFunc.h b/src/V3EmitCFunc.h index 22b94af43..d9e96ecd8 100644 --- a/src/V3EmitCFunc.h +++ b/src/V3EmitCFunc.h @@ -119,7 +119,6 @@ class EmitCFunc VL_NOT_FINAL : public EmitCConstInit { VMemberMap m_memberMap; AstVarRef* m_wideTempRefp = nullptr; // Variable that _WW macros should be setting std::unordered_map m_labelNumbers; // Label numbers for AstJumpBlocks - bool m_inUC = false; // Inside an AstUCStmt or AstUCExpr bool m_createdScopeHash = false; // Already created a scope hash // State associated with processing $display style string formatting @@ -320,6 +319,24 @@ public: } } + void emitNodesWithText(AstNode* nodesp, bool useSelfForThis, bool tracking, + const std::string& separator) { + for (AstNode* nodep = nodesp; nodep; nodep = nodep->nextp()) { + if (const AstText* const textp = VN_CAST(nodep, Text)) { + const std::string text + = VSelfPointerText::replaceThis(useSelfForThis, textp->text()); + if (tracking) { + puts(text); + } else { + ofp()->putsNoTracking(text); + } + } else { + iterateConst(nodep); + } + if (nodep->nextp()) puts(separator); + } + } + void putConstructorSubinit(const AstClass* classp, AstCFunc* cfuncp) { // Virtual bases in depth-first left-to-right order std::vector virtualBases; @@ -433,8 +450,8 @@ public: return true; }); if (m_instantiatesOwnProcess) { - AstNode* const vlprocp = new AstCStmt{ - nodep->fileline(), "VlProcessRef vlProcess = std::make_shared();"}; + AstCStmt* const vlprocp = new AstCStmt{nodep->fileline()}; + vlprocp->add("VlProcessRef vlProcess = std::make_shared();"); nodep->stmtsp()->addHereThisAsNext(vlprocp); } @@ -1330,48 +1347,43 @@ public: void visit(AstTimePrecision* nodep) override { putns(nodep, "vlSymsp->_vm_contextp__->timeprecision()"); } - void visit(AstNodeSimpleText* nodep) override { - const string text - = VSelfPointerText::replaceThis(m_inUC && m_useSelfForThis, nodep->text()); - if (nodep->tracking() || m_trackText) { - puts(text); - } else { - ofp()->putsNoTracking(text); - } + + // Nodes involing AstText + void visit(AstText* nodep) override { + // All Text should be under TextBlock/CStmt/CStmtUser/CExpr/CExprUser + nodep->v3fatalSrc("Text node in unexpected position"); } void visit(AstTextBlock* nodep) override { - visit(static_cast(nodep)); - for (AstNode* childp = nodep->nodesp(); childp; childp = childp->nextp()) { - iterateConst(childp); - if (nodep->commas() && childp->nextp()) puts(", "); - } + putnbs(nodep, ""); + puts(nodep->prefix()); + emitNodesWithText(nodep->nodesp(), false, true, nodep->separator()); + puts(nodep->suffix()); } void visit(AstCStmt* nodep) override { putnbs(nodep, ""); - iterateAndNextConstNull(nodep->exprsp()); - puts("\n"); + emitNodesWithText(nodep->nodesp(), false, true, ""); + ensureNewLine(); } void visit(AstCExpr* nodep) override { putnbs(nodep, ""); - iterateAndNextConstNull(nodep->exprsp()); + emitNodesWithText(nodep->nodesp(), false, true, ""); } - void visit(AstUCStmt* nodep) override { - VL_RESTORER(m_inUC); - m_inUC = true; + void visit(AstCStmtUser* nodep) override { putnbs(nodep, ""); - putsDecoration(nodep, VIdProtect::ifNoProtect("// $c statement at " - + nodep->fileline()->ascii() + "\n")); - iterateAndNextConstNull(nodep->exprsp()); + ofp()->putsNoTracking("\n"); + if (nodep->fromDollarC() && v3Global.opt.decoration() && !v3Global.opt.protectIds()) { + ofp()->putsNoTracking("// $c statement at " + nodep->fileline()->ascii() + "\n"); + } + emitNodesWithText(nodep->nodesp(), m_useSelfForThis, false, ""); puts("\n"); } - void visit(AstUCFunc* nodep) override { - VL_RESTORER(m_inUC); - m_inUC = true; - puts("\n"); + void visit(AstCExprUser* nodep) override { putnbs(nodep, ""); - putsDecoration(nodep, VIdProtect::ifNoProtect("// $c function at " - + nodep->fileline()->ascii() + "\n")); - iterateAndNextConstNull(nodep->exprsp()); + ofp()->putsNoTracking("\n"); + if (/* is always from $c */ v3Global.opt.decoration() && !v3Global.opt.protectIds()) { + ofp()->putsNoTracking("// $c expression at " + nodep->fileline()->ascii() + "\n"); + } + emitNodesWithText(nodep->nodesp(), m_useSelfForThis, false, ""); puts("\n"); } @@ -1729,10 +1741,9 @@ public: EmitCFunc() : m_lazyDecls{*this} {} - EmitCFunc(AstNode* nodep, V3OutCFile* ofp, AstCFile* cfilep, bool trackText = false) + EmitCFunc(AstNode* nodep, V3OutCFile* ofp, AstCFile* cfilep) : EmitCFunc{} { setOutputFile(ofp, cfilep); - m_trackText = trackText; iterateConst(nodep); } ~EmitCFunc() override = default; diff --git a/src/V3EmitCImp.cpp b/src/V3EmitCImp.cpp index 7edf35d0b..7f36e32ea 100644 --- a/src/V3EmitCImp.cpp +++ b/src/V3EmitCImp.cpp @@ -928,14 +928,14 @@ void V3EmitC::emitcImp() { void V3EmitC::emitcFiles() { UINFO(2, __FUNCTION__ << ":"); - for (AstNodeFile* filep = v3Global.rootp()->filesp(); filep; - filep = VN_AS(filep->nextp(), NodeFile)) { + for (AstNodeFile *filep = v3Global.rootp()->filesp(), *nextp; filep; filep = nextp) { + nextp = VN_AS(filep->nextp(), NodeFile); AstCFile* const cfilep = VN_CAST(filep, CFile); if (cfilep && cfilep->tblockp()) { V3OutCFile of{cfilep->name()}; of.puts("// DESCR" "IPTION: Verilator generated C++\n"); - const EmitCFunc visitor{cfilep->tblockp(), &of, cfilep, true}; + EmitCFunc{cfilep->tblockp(), &of, cfilep}; } } } diff --git a/src/V3EmitV.cpp b/src/V3EmitV.cpp index da66640a5..b00c3bb25 100644 --- a/src/V3EmitV.cpp +++ b/src/V3EmitV.cpp @@ -30,7 +30,6 @@ VL_DEFINE_DEBUG_FUNCTIONS; class EmitVBaseVisitorConst VL_NOT_FINAL : public VNVisitorConst { // STATE - across all visitors - const bool m_alwaysTrackText; // Always track all NodeSimpleText const bool m_suppressUnknown; // Do not error on unknown node // STATE - for current visit position (use VL_RESTORER) @@ -71,6 +70,20 @@ class EmitVBaseVisitorConst VL_NOT_FINAL : public VNVisitorConst { } m_packedps.clear(); } + void emitNodesWithText(AstNode* nodesp, bool tracking, const std::string& separator) { + for (AstNode* nodep = nodesp; nodep; nodep = nodep->nextp()) { + if (const AstText* const textp = VN_CAST(nodep, Text)) { + if (tracking) { + puts(textp->text()); + } else { + putsNoTracking(textp->text()); + } + } else { + iterateConst(nodep); + } + if (nodep->nextp()) puts(separator); + } + } // VISITORS void visit(AstNetlist* nodep) override { iterateAndNextConstNull(nodep->modulesp()); } @@ -561,43 +574,41 @@ class EmitVBaseVisitorConst VL_NOT_FINAL : public VNVisitorConst { iterateConst(nodep->exprp()); puts(";\n"); } - void visit(AstNodeSimpleText* nodep) override { - if (nodep->tracking() || m_alwaysTrackText) { - puts(nodep->text()); - } else { - putsNoTracking(nodep->text()); - } + + // Nodes involing AstText + void visit(AstText* nodep) override { + // All Text should be under TextBlock/CStmt/CStmtUser/CExpr/CExprUser + nodep->v3fatalSrc("Text node in unexpected position"); } void visit(AstTextBlock* nodep) override { - visit(static_cast(nodep)); VL_RESTORER(m_suppressVarSemi); - m_suppressVarSemi = nodep->commas(); - for (AstNode* childp = nodep->nodesp(); childp; childp = childp->nextp()) { - iterateConst(childp); - if (nodep->commas() && childp->nextp()) puts(", "); - } + m_suppressVarSemi = !nodep->separator().empty(); + puts(nodep->prefix()); + emitNodesWithText(nodep->nodesp(), true, nodep->separator()); + puts(nodep->suffix()); } - void visit(AstScopeName* nodep) override {} void visit(AstCStmt* nodep) override { putfs(nodep, "$_CSTMT("); - iterateAndCommaConstNull(nodep->exprsp()); + emitNodesWithText(nodep->nodesp(), true, ""); puts(");\n"); } void visit(AstCExpr* nodep) override { putfs(nodep, "$_CEXPR("); - iterateAndCommaConstNull(nodep->exprsp()); + emitNodesWithText(nodep->nodesp(), true, ""); puts(")"); } - void visit(AstUCStmt* nodep) override { + void visit(AstCStmtUser* nodep) override { putfs(nodep, "$c("); - iterateAndCommaConstNull(nodep->exprsp()); + emitNodesWithText(nodep->nodesp(), false, ""); puts(");\n"); } - void visit(AstUCFunc* nodep) override { + void visit(AstCExprUser* nodep) override { putfs(nodep, "$c("); - iterateAndNextConstNull(nodep->exprsp()); + emitNodesWithText(nodep->nodesp(), false, ""); puts(")"); } + + void visit(AstScopeName* nodep) override {} void visit(AstExprStmt* nodep) override { putfs(nodep, "$_EXPRSTMT(\n"); iterateAndNextConstNull(nodep->stmtsp()); @@ -1129,7 +1140,6 @@ class EmitVBaseVisitorConst VL_NOT_FINAL : public VNVisitorConst { iterateConst(methodp->pinsp()); } void visit(AstParseRef* nodep) override { puts(nodep->prettyName()); } - void visit(AstNodeText*) override {} void visit(AstVarScope*) override {} void visit(AstTraceDecl*) override {} void visit(AstTraceInc*) override {} @@ -1148,9 +1158,8 @@ class EmitVBaseVisitorConst VL_NOT_FINAL : public VNVisitorConst { } public: - explicit EmitVBaseVisitorConst(bool alwaysTrackText, bool suppressUnknown) - : m_alwaysTrackText{alwaysTrackText} - , m_suppressUnknown{suppressUnknown} {} + explicit EmitVBaseVisitorConst(bool suppressUnknown) + : m_suppressUnknown{suppressUnknown} {} ~EmitVBaseVisitorConst() override = default; }; @@ -1168,8 +1177,8 @@ class EmitVFileVisitor final : public EmitVBaseVisitorConst { void putqs(AstNode*, const string& str) override { putbs(str); } public: - EmitVFileVisitor(AstNode* nodep, V3OutVFile& of, bool alwaysTrackText, bool suppressUnknown) - : EmitVBaseVisitorConst{alwaysTrackText, suppressUnknown} + EmitVFileVisitor(AstNode* nodep, V3OutVFile& of, bool suppressUnknown) + : EmitVBaseVisitorConst{suppressUnknown} , m_of{of} { iterateConst(nodep); } @@ -1182,7 +1191,7 @@ public: class EmitVStreamVisitor final : public EmitVBaseVisitorConst { // STATE V3OutStream m_os; // The output stream formatter - bool m_tracking; // Use line tracking + const bool m_tracking; // Use line tracking // METHODS void putsNoTracking(const string& str) override { m_os.putsNoTracking(str); } void puts(const string& str) override { @@ -1196,7 +1205,7 @@ class EmitVStreamVisitor final : public EmitVBaseVisitorConst { public: EmitVStreamVisitor(const AstNode* nodep, std::ostream& os, bool tracking, bool suppressUnknown) - : EmitVBaseVisitorConst{false, suppressUnknown} + : EmitVBaseVisitorConst{suppressUnknown} , m_os{os, V3OutFormatter::LA_VERILOG} , m_tracking{tracking} { iterateConst(const_cast(nodep)); @@ -1223,7 +1232,7 @@ void V3EmitV::emitvFiles() { if (vfilep && vfilep->tblockp()) { V3OutVFile of{vfilep->name()}; of.puts("// DESCRIPTION: Verilator generated Verilog\n"); - { EmitVFileVisitor{vfilep->tblockp(), of, true, false}; } + EmitVFileVisitor{vfilep->tblockp(), of, false}; } } } @@ -1231,5 +1240,5 @@ void V3EmitV::emitvFiles() { void V3EmitV::debugEmitV(const string& filename) { UINFO(2, __FUNCTION__ << ":"); V3OutVFile of{filename}; - { EmitVFileVisitor{v3Global.rootp(), of, true, true}; } + EmitVFileVisitor{v3Global.rootp(), of, true}; } diff --git a/src/V3ExecGraph.cpp b/src/V3ExecGraph.cpp index 427d7959a..a269ebe66 100644 --- a/src/V3ExecGraph.cpp +++ b/src/V3ExecGraph.cpp @@ -911,7 +911,7 @@ void addMTaskToFunction(const ThreadSchedule& schedule, const uint32_t threadId, FileLine* const fl = modp->fileline(); // Helper function to make the code a bit more legible - const auto addStrStmt = [=](const string& stmt) -> void { // + const auto addCStmt = [=](const string& stmt) -> void { // funcp->addStmtsp(new AstCStmt{fl, stmt}); }; @@ -923,21 +923,21 @@ void addMTaskToFunction(const ThreadSchedule& schedule, const uint32_t threadId, = v3Global.rootp()->typeTablep()->findBasicDType(fl, VBasicDTypeKwd::MTASKSTATE); AstVar* const varp = new AstVar{fl, VVarType::MODULETEMP, name, mtaskStateDtypep}; varp->valuep(new AstConst{fl, nDependencies}); - varp->protect(false); // Do not protect as we still have references in AstText + varp->protect(false); // Do not protect as we have references in text modp->addStmtsp(varp); // For now, reference is still via text bashing if (v3Global.opt.profExec()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitBegin();"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitBegin();"); } - addStrStmt("vlSelf->" + name + +".waitUntilUpstreamDone(even_cycle);"); + addCStmt("vlSelf->" + name + +".waitUntilUpstreamDone(even_cycle);"); if (v3Global.opt.profExec()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitEnd();"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitEnd();"); } } if (v3Global.opt.profPgo()) { // No lock around startCounter, as counter numbers are unique per thread - addStrStmt("vlSymsp->_vm_pgoProfiler.startCounter(" + std::to_string(mtaskp->id()) + ");"); + addCStmt("vlSymsp->_vm_pgoProfiler.startCounter(" + std::to_string(mtaskp->id()) + ");"); } // Move the actual body into this function @@ -945,15 +945,15 @@ void addMTaskToFunction(const ThreadSchedule& schedule, const uint32_t threadId, if (v3Global.opt.profPgo()) { // No lock around stopCounter, as counter numbers are unique per thread - addStrStmt("vlSymsp->_vm_pgoProfiler.stopCounter(" + std::to_string(mtaskp->id()) + ");"); + addCStmt("vlSymsp->_vm_pgoProfiler.stopCounter(" + std::to_string(mtaskp->id()) + ");"); } // For any dependent mtask that's on another thread, signal one dependency completion. for (const V3GraphEdge& edge : mtaskp->outEdges()) { const ExecMTask* const nextp = edge.top()->as(); if (schedule.threadId(nextp) != threadId && schedule.contains(nextp)) { - addStrStmt("vlSelf->__Vm_mtaskstate_" + cvtToStr(nextp->id()) - + ".signalUpstreamDone(even_cycle);"); + addCStmt("vlSelf->__Vm_mtaskstate_" + cvtToStr(nextp->id()) + + ".signalUpstreamDone(even_cycle);"); } } } @@ -1001,7 +1001,7 @@ const std::vector createThreadFunctions(const ThreadSchedule& schedul = new AstVar{fl, VVarType::MODULETEMP, "__Vm_mtaskstate_final__" + cvtToStr(schedule.id()) + tag, mtaskStateDtypep}; varp->valuep(new AstConst(fl, funcps.size())); - varp->protect(false); // Do not protect as we still have references in AstText + varp->protect(false); // Do not protect as we have references in text modp->addStmtsp(varp); return funcps; @@ -1013,30 +1013,28 @@ void addThreadStartWrapper(AstExecGraph* const execGraphp) { const string& tag = execGraphp->name(); // Add thread function invocations to execGraph - const auto addStrStmt = [=](const string& stmt) -> void { // + const auto addCStmt = [=](const string& stmt) -> void { // execGraphp->addStmtsp(new AstCStmt{fl, stmt}); }; if (v3Global.opt.profExec()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).execGraphBegin();"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).execGraphBegin();"); } - addStrStmt("vlSymsp->__Vm_even_cycle__" + tag + " = !vlSymsp->__Vm_even_cycle__" + tag + ";"); + addCStmt("vlSymsp->__Vm_even_cycle__" + tag + " = !vlSymsp->__Vm_even_cycle__" + tag + ";"); - if (!v3Global.opt.hierBlocks().empty()) addStrStmt("std::vector indexes;"); + if (!v3Global.opt.hierBlocks().empty()) addCStmt("std::vector indexes;"); } void addThreadEndWrapper(AstExecGraph* const execGraphp) { // Add thread function invocations to execGraph - const auto addStrStmt = [=](const string& stmt) -> void { // + const auto addCStmt = [=](const string& stmt) -> void { // FileLine* const flp = v3Global.rootp()->fileline(); execGraphp->addStmtsp(new AstCStmt{flp, stmt}); }; - addStrStmt("Verilated::mtaskId(0);"); - if (v3Global.opt.profExec()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).execGraphEnd();"); - } + addCStmt("Verilated::mtaskId(0);"); + if (v3Global.opt.profExec()) { addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).execGraphEnd();"); } } void addThreadStartToExecGraph(AstExecGraph* const execGraphp, const std::vector& funcps, uint32_t scheduleId) { @@ -1045,30 +1043,31 @@ void addThreadStartToExecGraph(AstExecGraph* const execGraphp, const string& tag = execGraphp->name(); // Add thread function invocations to execGraph - const auto addStrStmt = [=](const string& stmt) -> void { // + const auto addCStmt = [=](const string& stmt) -> void { // execGraphp->addStmtsp(new AstCStmt{fl, stmt}); }; - const auto addTextStmt = [=](const string& text) -> void { - execGraphp->addStmtsp(new AstText{fl, text, /* tracking: */ true}); - }; const uint32_t last = funcps.size() - 1; if (!v3Global.opt.hierBlocks().empty() && last > 0) { - addStrStmt("for (size_t i = 0; i < " + cvtToStr(last) - + "; ++i) indexes.push_back(vlSymsp->__Vm_threadPoolp->assignWorkerIndex());"); + addCStmt("for (size_t i = 0; i < " + std::to_string(last) + "; ++i) {\n" // + + "indexes.push_back(vlSymsp->__Vm_threadPoolp->assignWorkerIndex());\n" // + + "}"); } uint32_t i = 0; for (AstCFunc* const funcp : funcps) { if (i != last) { // The first N-1 will run on the thread pool. + AstCStmt* const cstmtp = new AstCStmt{fl}; + execGraphp->addStmtsp(cstmtp); + cstmtp->add("vlSymsp->__Vm_threadPoolp->workerp("); if (v3Global.opt.hierChild() || !v3Global.opt.hierBlocks().empty()) { - addTextStmt("vlSymsp->__Vm_threadPoolp->workerp(indexes[" + cvtToStr(i) - + "])->addTask("); + cstmtp->add("indexes[" + std::to_string(i) + "]"); } else { - addTextStmt("vlSymsp->__Vm_threadPoolp->workerp(" + cvtToStr(i) + ")->addTask("); + cstmtp->add(std::to_string(i)); } - execGraphp->addStmtsp(new AstAddrOfCFunc{fl, funcp}); - addTextStmt(", vlSelf, vlSymsp->__Vm_even_cycle__" + tag + ");\n"); + cstmtp->add(")->addTask("); + cstmtp->add(new AstAddrOfCFunc{fl, funcp}); + cstmtp->add(", vlSelf, vlSymsp->__Vm_even_cycle__" + tag + ");"); } else { // The last will run on the main thread. AstCCall* const callp = new AstCCall{fl, funcp}; @@ -1081,16 +1080,16 @@ void addThreadStartToExecGraph(AstExecGraph* const execGraphp, V3Stats::addStatSum("Optimizations, Thread schedule total tasks", i); if (v3Global.opt.profExec()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitBegin();"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitBegin();"); } - addStrStmt("vlSelf->__Vm_mtaskstate_final__" + std::to_string(scheduleId) + tag - + ".waitUntilUpstreamDone(vlSymsp->__Vm_even_cycle__" + tag + ");"); + addCStmt("vlSelf->__Vm_mtaskstate_final__" + std::to_string(scheduleId) + tag + + ".waitUntilUpstreamDone(vlSymsp->__Vm_even_cycle__" + tag + ");"); if (v3Global.opt.profExec()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitEnd();"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).threadScheduleWaitEnd();"); } // Free all assigned worker indices in this section if (!v3Global.opt.hierBlocks().empty() && last > 0) { - addStrStmt("vlSymsp->__Vm_threadPoolp->freeWorkerIndexes(indexes);"); + addCStmt("vlSymsp->__Vm_threadPoolp->freeWorkerIndexes(indexes);"); } } @@ -1108,35 +1107,35 @@ void wrapMTaskBodies(AstExecGraph* const execGraphp) { modp->addStmtsp(funcp); // Helper function to make the code a bit more legible - const auto addStrStmt = [=](const string& stmt) -> void { // + const auto addCStmt = [=](const string& stmt) -> void { // funcp->addStmtsp(new AstCStmt{flp, stmt}); }; - addStrStmt("static constexpr unsigned taskId = " + cvtToStr(mtaskp->id()) + ";"); + addCStmt("static constexpr unsigned taskId = " + cvtToStr(mtaskp->id()) + ";"); if (v3Global.opt.profExec()) { const string& predictStart = std::to_string(mtaskp->predictStart()); if (v3Global.opt.hierChild()) { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart - + ", \"" + v3Global.opt.topModule() + "\");"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart + + ", \"" + v3Global.opt.topModule() + "\");"); } else { - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart - + ");"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart + + ");"); } } // Set mtask ID in the run-time system - addStrStmt("Verilated::mtaskId(taskId);"); + addCStmt("Verilated::mtaskId(taskId);"); // Run body funcp->addStmtsp(mtaskBodyp->stmtsp()->unlinkFrBackWithNext()); // Flush message queue - addStrStmt("Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp);"); + addCStmt("Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp);"); if (v3Global.opt.profExec()) { const string& predictCost = std::to_string(mtaskp->cost()); - addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskEnd(" + predictCost + ");"); + addCStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskEnd(" + predictCost + ");"); } // AstMTask will simply contain a call diff --git a/src/V3File.cpp b/src/V3File.cpp index 40099bb59..d5cddc330 100644 --- a/src/V3File.cpp +++ b/src/V3File.cpp @@ -702,7 +702,7 @@ int V3OutFormatter::endLevels(const char* strg) { case '\n': // Newlines.. No need for whitespace before it return 0; case '#': // Preproc directive - return 0; + if (m_lang == LA_C) return 0; } { // label/public/private: Deindent by 2 spaces @@ -738,20 +738,25 @@ void V3OutFormatter::putns(const AstNode* nodep, const char* strg) { return; } - if (m_prependIndent && strg[0] != '\n') { + const bool putNodeDecoration = // + nodep // + && v3Global.opt.decorationNodes() // + && !v3Global.opt.protectIds() // + && (m_sourceLastFilenameno != nodep->fileline()->filenameno() // + || m_sourceLastLineno != nodep->fileline()->firstLineno()) // + && FileLine::builtInFilename() != nodep->fileline()->filename(); + + if (m_prependIndent && ((strg[0] && strg[0] != '\n') || putNodeDecoration)) { putsNoTracking(indentSpaces(endLevels(strg))); m_prependIndent = false; } - if (nodep && v3Global.opt.decorationNodes() && !v3Global.opt.protectIds() - && (m_sourceLastFilenameno != nodep->fileline()->filenameno() - || m_sourceLastLineno != nodep->fileline()->firstLineno()) - && FileLine::builtInFilename() != nodep->fileline()->filename()) { - m_sourceLastLineno = nodep->fileline()->firstLineno(); - m_sourceLastFilenameno = nodep->fileline()->filenameno(); - putsNoTracking("/*" + nodep->fileline()->filename() + ":" - + cvtToStr(nodep->fileline()->lineno()) + " " + cvtToStr((void*)nodep) - + "*/"); + if (putNodeDecoration) { + FileLine* const flp = nodep->fileline(); + m_sourceLastLineno = flp->firstLineno(); + m_sourceLastFilenameno = flp->filenameno(); + const std::string lineno = std::to_string(flp->lineno()); + putsNoTracking("/*" + flp->filename() + ":" + lineno + " " + cvtToHex(nodep) + "*/"); } bool notstart = false; diff --git a/src/V3Hasher.cpp b/src/V3Hasher.cpp index 38a9c5b67..f16fc21c0 100644 --- a/src/V3Hasher.cpp +++ b/src/V3Hasher.cpp @@ -275,11 +275,6 @@ class HasherVisitor final : public VNVisitorConst { void visit(AstNodeStmt* nodep) override { m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, []() {}); } - void visit(AstNodeText* nodep) override { - m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, [this, nodep]() { // - m_hash += nodep->text(); - }); - } void visit(AstNodeCCall* nodep) override { m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, [this, nodep]() { // iterateConstNull(nodep->funcp()); @@ -535,6 +530,30 @@ class HasherVisitor final : public VNVisitorConst { m_hash += nodep->pinNum(); }); } + void visit(AstText* nodep) override { + m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, [this, nodep]() { // + m_hash += nodep->text(); + }); + } + void visit(AstTextBlock* nodep) override { + m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, [this, nodep]() { // + m_hash += nodep->prefix(); + m_hash += nodep->separator(); + m_hash += nodep->suffix(); + }); + } + void visit(AstCStmt* nodep) override { + m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, []() {}); + } + void visit(AstCStmtUser* nodep) override { + m_hash += hashNodeAndIterate(nodep, false, HASH_CHILDREN, []() {}); + } + void visit(AstCExpr* nodep) override { + m_hash += hashNodeAndIterate(nodep, HASH_DTYPE, HASH_CHILDREN, []() {}); + } + void visit(AstCExprUser* nodep) override { + m_hash += hashNodeAndIterate(nodep, HASH_DTYPE, HASH_CHILDREN, []() {}); + } public: // CONSTRUCTORS diff --git a/src/V3Life.cpp b/src/V3Life.cpp index de012e08d..3b14c839b 100644 --- a/src/V3Life.cpp +++ b/src/V3Life.cpp @@ -135,26 +135,25 @@ public: // METHODS void checkRemoveAssign(AstVarScope* vscp, LifeVarEntry& entr) { const AstVar* const varp = vscp->varp(); - if (!varp->isSigPublic() && !varp->sensIfacep()) { - // Rather than track what sigs AstUCFunc/AstUCStmt may change, - // we just don't optimize any public sigs - // Check the var entry, and remove if appropriate - if (AstNodeStmt* const oldassp = entr.assignp()) { - UINFO(7, " PREV: " << oldassp); - // Redundant assignment, in same level block - // Don't delete it now as it will confuse iteration since it maybe WAY - // above our current iteration point. - UINFOTREE(7, oldassp, "", "REMOVE/SAMEBLK"); - entr.complexAssign(); - oldassp->unlinkFrBack(); - if (VN_IS(oldassp, CReset)) { - ++m_statep->m_statCResetDel; - } else { - ++m_statep->m_statAssnDel; - } - VL_DO_DANGLING(m_deleter.pushDeletep(oldassp), oldassp); - } + // We don't optimize any public sigs + if (varp->isSigPublic()) return; + if (varp->sensIfacep()) return; + // Check the var entry, and remove if appropriate + AstNodeStmt* const oldassp = entr.assignp(); + if (!oldassp) return; + UINFO(7, " PREV: " << oldassp); + // Redundant assignment, in same level block + // Don't delete it now as it will confuse iteration since it maybe WAY + // above our current iteration point. + UINFOTREE(7, oldassp, "", "REMOVE/SAMEBLK"); + entr.complexAssign(); + oldassp->unlinkFrBack(); + if (VN_IS(oldassp, CReset)) { + ++m_statep->m_statCResetDel; + } else { + ++m_statep->m_statAssnDel; } + VL_DO_DANGLING(m_deleter.pushDeletep(oldassp), oldassp); } void resetStatement(AstVarScope* nodep, AstCReset* rstp) { // Do we have a old assignment we can nuke? @@ -434,7 +433,7 @@ class LifeVisitor final : public VNVisitor { } iterateChildren(nodep); } - void visit(AstUCFunc* nodep) override { + void visit(AstCExprUser* nodep) override { m_sideEffect = true; // If appears on assign RHS, don't ever delete the assignment iterateChildren(nodep); } diff --git a/src/V3ParseGrammar.h b/src/V3ParseGrammar.h index ed0663bc3..9a9fa133b 100644 --- a/src/V3ParseGrammar.h +++ b/src/V3ParseGrammar.h @@ -74,9 +74,8 @@ public: AstVar* createVariable(FileLine* fileline, const string& name, AstNodeRange* arrayp, AstNode* attrsp) VL_MT_DISABLED; AstAssignW* createSupplyExpr(FileLine* fileline, const string& name, int value) VL_MT_DISABLED; - AstText* createTextQuoted(FileLine* fileline, const string& text) { - string newtext = singletonp()->unquoteString(fileline, text); - return new AstText{fileline, newtext}; + std::string textQuoted(FileLine* fileline, const std::string& text) { + return singletonp()->unquoteString(fileline, text); } AstNode* createCell(FileLine* fileline, const string& name, AstPin* pinlistp, AstNodeRange* rangelistp) { diff --git a/src/V3Premit.cpp b/src/V3Premit.cpp index f2a3aa735..bace7c5bc 100644 --- a/src/V3Premit.cpp +++ b/src/V3Premit.cpp @@ -257,7 +257,7 @@ class PremitVisitor final : public VNVisitor { iterateChildren(nodep); checkNode(nodep); } - void visit(AstUCFunc* nodep) override { + void visit(AstCExprUser* nodep) override { iterateChildren(nodep); checkNode(nodep); } diff --git a/src/V3ProtectLib.cpp b/src/V3ProtectLib.cpp index de8da1fc2..a13dea844 100644 --- a/src/V3ProtectLib.cpp +++ b/src/V3ProtectLib.cpp @@ -89,41 +89,39 @@ class ProtectVisitor final : public VNVisitor { // cppcheck-suppress unreadVariable const V3Hash hash = V3Hasher::uncachedHash(m_cfilep); - m_hashValuep->addText(fl, cvtToStr(hash.value()) + ";\n"); - m_cHashValuep->addText(fl, cvtToStr(hash.value()) + "U;\n"); + m_hashValuep->add(cvtToStr(hash.value()) + ";\n"); + m_cHashValuep->add(cvtToStr(hash.value()) + "U;\n"); m_foundTop = true; } void addComment(AstTextBlock* txtp, FileLine* fl, const string& comment) { - txtp->addNodesp(new AstComment{fl, comment}); + txtp->add(new AstComment{fl, comment}); } void configSection(AstNodeModule* modp, AstTextBlock* txtp, FileLine* fl) { - txtp->addText(fl, "\n`ifdef VERILATOR\n"); - txtp->addText(fl, "`verilator_config\n"); + txtp->add("\n`ifdef VERILATOR\n"); + txtp->add("`verilator_config\n"); - txtp->addText(fl, "profile_data -hier-dpi \"" + m_libName - + "_protectlib_combo_update\" -cost 64'd" - + std::to_string(v3Global.currentHierBlockCost()) + "\n"); - txtp->addText(fl, "profile_data -hier-dpi \"" + m_libName - + "_protectlib_seq_update\" -cost 64'd" - + std::to_string(v3Global.currentHierBlockCost()) + "\n"); + txtp->add("profile_data -hier-dpi \"" + m_libName + "_protectlib_combo_update\" -cost 64'd" + + std::to_string(v3Global.currentHierBlockCost()) + "\n"); + txtp->add("profile_data -hier-dpi \"" + m_libName + "_protectlib_seq_update\" -cost 64'd" + + std::to_string(v3Global.currentHierBlockCost()) + "\n"); // Mark remaining NBA protectlib wrapper DPIs as non-hazardous by deliberately forwarding // them with non-zero cost. // Also, specify hierarchical workers for those tasks for scheduling. - txtp->addText(fl, "profile_data -hier-dpi \"" + m_libName - + "_protectlib_combo_ignore\" -cost 64'd1\n"); + txtp->add("profile_data -hier-dpi \"" + m_libName + + "_protectlib_combo_ignore\" -cost 64'd1\n"); - txtp->addText(fl, "hier_workers -hier-dpi \"" + m_libName - + "_protectlib_combo_update\" -workers 16'd" - + std::to_string(V3Control::getHierWorkers(m_libName)) + "\n"); - txtp->addText(fl, "hier_workers -hier-dpi \"" + m_libName - + "_protectlib_seq_update\" -workers 16'd" - + std::to_string(V3Control::getHierWorkers(m_libName)) + "\n"); + txtp->add("hier_workers -hier-dpi \"" + m_libName + + "_protectlib_combo_update\" -workers 16'd" + + std::to_string(V3Control::getHierWorkers(m_libName)) + "\n"); + txtp->add("hier_workers -hier-dpi \"" + m_libName + + "_protectlib_seq_update\" -workers 16'd" + + std::to_string(V3Control::getHierWorkers(m_libName)) + "\n"); // No workers for combo_ignore - txtp->addText(fl, "`verilog\n"); - txtp->addText(fl, "`endif\n"); + txtp->add("`verilog\n"); + txtp->add("`endif\n"); } void hashComment(AstTextBlock* txtp, FileLine* fl) { @@ -165,16 +163,14 @@ class ProtectVisitor final : public VNVisitor { " to use DPI libraries\n"); // Module declaration - m_modPortsp = new AstTextBlock{fl, "module " + m_libName + " (\n", false, true}; - txtp->addNodesp(m_modPortsp); - txtp->addText(fl, ");\n\n"); + m_modPortsp = new AstTextBlock{fl, "module " + m_libName + " (\n", ", ", ");\n\n"}; + txtp->add(m_modPortsp); // Timescale if (v3Global.opt.hierChild() && v3Global.rootp()->timescaleSpecified()) { // Emit timescale for hierarchical Verilation if input HDL specifies timespec - txtp->addText(fl, "timeunit "s + modp->timeunit().ascii() + ";\n"); - txtp->addText(fl, - "timeprecision "s + +v3Global.rootp()->timeprecision().ascii() + ";\n"); + txtp->add("timeunit "s + modp->timeunit().ascii() + ";\n"); + txtp->add("timeprecision "s + +v3Global.rootp()->timeprecision().ascii() + ";\n"); } else { addComment(txtp, fl, "Precision of submodule" @@ -186,131 +182,129 @@ class ProtectVisitor final : public VNVisitor { // DPI declarations hashComment(txtp, fl); - txtp->addText(fl, "import \"DPI-C\" function void " + m_libName - + "_protectlib_check_hash(int protectlib_hash__V);\n\n"); + txtp->add("import \"DPI-C\" function void " + m_libName + + "_protectlib_check_hash(int protectlib_hash__V);\n\n"); initialComment(txtp, fl); - txtp->addText(fl, "import \"DPI-C\" function chandle " + m_libName - + "_protectlib_create(string scope__V);\n\n"); + txtp->add("import \"DPI-C\" function chandle " + m_libName + + "_protectlib_create(string scope__V);\n\n"); comboComment(txtp, fl); - m_comboPortsp = new AstTextBlock{fl, + m_comboPortsp = new AstTextBlock{fl, // "import \"DPI-C\" function longint " + m_libName - + "_protectlib_combo_update " - "(\n", - false, true}; - m_comboPortsp->addText(fl, "chandle handle__V\n"); - txtp->addNodesp(m_comboPortsp); - txtp->addText(fl, ");\n\n"); + + "_protectlib_combo_update(\n", // + ", ", // + ");\n\n"}; + m_comboPortsp->add("chandle handle__V\n"); + txtp->add(m_comboPortsp); seqComment(txtp, fl); if (m_hasClk) { - m_seqPortsp = new AstTextBlock{fl, + m_seqPortsp = new AstTextBlock{fl, // "import \"DPI-C\" function longint " + m_libName - + "_protectlib_seq_update" - "(\n", - false, true}; - m_seqPortsp->addText(fl, "chandle handle__V\n"); - txtp->addNodesp(m_seqPortsp); - txtp->addText(fl, ");\n\n"); + + "_protectlib_seq_update(\n", // + ", ", // + ");\n\n"}; + m_seqPortsp->add("chandle handle__V\n"); + txtp->add(m_seqPortsp); } comboIgnoreComment(txtp, fl); - m_comboIgnorePortsp = new AstTextBlock{fl, + m_comboIgnorePortsp = new AstTextBlock{fl, // "import \"DPI-C\" function void " + m_libName - + "_protectlib_combo_ignore" - "(\n", - false, true}; - m_comboIgnorePortsp->addText(fl, "chandle handle__V\n"); - txtp->addNodesp(m_comboIgnorePortsp); - txtp->addText(fl, ");\n\n"); + + "_protectlib_combo_ignore(\n", // + ", ", // + ");\n\n"}; + m_comboIgnorePortsp->add("chandle handle__V\n"); + txtp->add(m_comboIgnorePortsp); finalComment(txtp, fl); - txtp->addText(fl, "import \"DPI-C\" function void " + m_libName - + "_protectlib_final(chandle handle__V);\n\n"); + txtp->add("import \"DPI-C\" function void " + m_libName + + "_protectlib_final(chandle handle__V);\n\n"); // Local variables // Avoid tracing handle, as it is not a stable value, so breaks vcddiff // Likewise other internals aren't interesting to the user - txtp->addText(fl, "// verilator tracing_off\n"); + txtp->add("// verilator tracing_off\n"); - txtp->addText(fl, "chandle handle__V;\n"); - txtp->addText(fl, "time last_combo_seqnum__V;\n"); - if (m_hasClk) txtp->addText(fl, "time last_seq_seqnum__V;\n"); - txtp->addText(fl, "\n"); + txtp->add("chandle handle__V;\n"); + txtp->add("time last_combo_seqnum__V;\n"); + if (m_hasClk) txtp->add("time last_seq_seqnum__V;\n"); + txtp->add("\n"); m_comboDeclsp = new AstTextBlock{fl}; - txtp->addNodesp(m_comboDeclsp); + txtp->add(m_comboDeclsp); m_seqDeclsp = new AstTextBlock{fl}; - txtp->addNodesp(m_seqDeclsp); + txtp->add(m_seqDeclsp); m_tmpDeclsp = new AstTextBlock{fl}; - txtp->addNodesp(m_tmpDeclsp); + txtp->add(m_tmpDeclsp); // CPP hash value addComment(txtp, fl, "Hash value to make sure this file and the corresponding"); addComment(txtp, fl, "library agree"); - m_hashValuep = new AstTextBlock{fl, "localparam int protectlib_hash__V = 32'd"}; - txtp->addNodesp(m_hashValuep); - txtp->addText(fl, "\n"); + m_hashValuep = new AstTextBlock{fl, "localparam int protectlib_hash__V = 32'd", "", "\n"}; + txtp->add(m_hashValuep); // Initial - txtp->addText(fl, "initial begin\n"); - txtp->addText(fl, m_libName + "_protectlib_check_hash(protectlib_hash__V);\n"); - txtp->addText(fl, "handle__V = " + m_libName - + "_protectlib_create" - "($sformatf(\"%m\"));\n"); - txtp->addText(fl, "end\n\n"); + txtp->add("initial begin\n"); + txtp->add(m_libName + "_protectlib_check_hash(protectlib_hash__V);\n"); + txtp->add("handle__V = " + m_libName + + "_protectlib_create" + "($sformatf(\"%m\"));\n"); + txtp->add("end\n\n"); // Combinatorial process addComment(txtp, fl, "Combinatorially evaluate changes to inputs"); - m_comboParamsp = new AstTextBlock{fl, - "always_comb begin\n" - "last_combo_seqnum__V = " - + m_libName + "_protectlib_combo_update(\n", - false, true}; - m_comboParamsp->addText(fl, "handle__V\n"); - txtp->addNodesp(m_comboParamsp); - txtp->addText(fl, ");\n"); - txtp->addText(fl, "end\n\n"); + txtp->add("always_comb begin\n"); + m_comboParamsp = new AstTextBlock{fl, // + "last_combo_seqnum__V = " + m_libName + + "_protectlib_combo_update(\n", // + ",\n", // + "\n);\n"}; + m_comboParamsp->add("handle__V"); + txtp->add(m_comboParamsp); + txtp->add("end\n\n"); // Sequential process if (m_hasClk) { addComment(txtp, fl, "Evaluate clock edges"); - m_clkSensp = new AstTextBlock{fl, "always @(", false, true}; - txtp->addNodesp(m_clkSensp); - txtp->addText(fl, ") begin\n"); + m_clkSensp = new AstTextBlock{fl, "always @(", " or ", ")"}; + txtp->add(m_clkSensp); + txtp->add(" begin\n"); m_comboIgnoreParamsp - = new AstTextBlock{fl, m_libName + "_protectlib_combo_ignore(\n", false, true}; - m_comboIgnoreParamsp->addText(fl, "handle__V\n"); - txtp->addNodesp(m_comboIgnoreParamsp); - txtp->addText(fl, ");\n"); - m_seqParamsp = new AstTextBlock{ - fl, "last_seq_seqnum__V <= " + m_libName + "_protectlib_seq_update(\n", false, - true}; - m_seqParamsp->addText(fl, "handle__V\n"); - txtp->addNodesp(m_seqParamsp); - txtp->addText(fl, ");\n"); + = new AstTextBlock{fl, // + m_libName + "_protectlib_combo_ignore(\n", ",\n", "\n);\n"}; + m_comboIgnoreParamsp->add("handle__V"); + txtp->add(m_comboIgnoreParamsp); + m_seqParamsp = new AstTextBlock{fl, // + "last_seq_seqnum__V <= " + m_libName + + "_protectlib_seq_update(\n", // + ",\n", // + "\n);\n"}; + m_seqParamsp->add("handle__V"); + txtp->add(m_seqParamsp); m_nbAssignsp = new AstTextBlock{fl}; - txtp->addNodesp(m_nbAssignsp); - txtp->addText(fl, "end\n\n"); + txtp->add(m_nbAssignsp); + txtp->add("end\n\n"); } // Select between combinatorial and sequential results addComment(txtp, fl, "Select between combinatorial and sequential results"); - txtp->addText(fl, "always_comb begin\n"); + txtp->add("always_comb begin\n"); if (m_hasClk) { - m_seqAssignsp = new AstTextBlock{fl, "if (last_seq_seqnum__V > " - "last_combo_seqnum__V) begin\n"}; - txtp->addNodesp(m_seqAssignsp); - m_comboAssignsp = new AstTextBlock{fl, "end\nelse begin\n"}; - txtp->addNodesp(m_comboAssignsp); - txtp->addText(fl, "end\n"); + txtp->add("if (last_seq_seqnum__V > last_combo_seqnum__V) begin\n"); + m_seqAssignsp = new AstTextBlock{fl}; + txtp->add(m_seqAssignsp); + txtp->add("end else begin\n"); + m_comboAssignsp = new AstTextBlock{fl}; + txtp->add(m_comboAssignsp); + txtp->add("end\n"); } else { - m_comboAssignsp = new AstTextBlock{fl, ""}; - txtp->addNodesp(m_comboAssignsp); + m_comboAssignsp = new AstTextBlock{fl}; + txtp->add(m_comboAssignsp); } - txtp->addText(fl, "end\n\n"); + txtp->add("end\n\n"); // Final - txtp->addText(fl, "final " + m_libName + "_protectlib_final(handle__V);\n\n"); + txtp->add("final " + m_libName + "_protectlib_final(handle__V);\n\n"); - txtp->addText(fl, "endmodule\n"); + txtp->add("endmodule\n"); configSection(modp, txtp, fl); @@ -318,10 +312,10 @@ class ProtectVisitor final : public VNVisitor { } void castPtr(FileLine* fl, AstTextBlock* txtp) { - txtp->addText(fl, m_topName - + "_container* const handlep__V = " // LCOV_EXCL_LINE // lcov bug - "static_cast<" - + m_topName + "_container*>(vhandlep__V);\n"); + txtp->add(m_topName + + "_container* const handlep__V = " // LCOV_EXCL_LINE // lcov bug + "static_cast<" + + m_topName + "_container*>(vhandlep__V);\n"); } void createCppFile(FileLine* fl) { @@ -330,95 +324,93 @@ class ProtectVisitor final : public VNVisitor { addComment(txtp, fl, "Wrapper functions for DPI protected library\n"); // Includes - txtp->addText(fl, "#include \"" + m_topName + ".h\"\n"); - txtp->addText(fl, "#include \"verilated_dpi.h\"\n\n"); - txtp->addText(fl, "#include \n"); - txtp->addText(fl, "#include \n\n"); + txtp->add("#include \"" + m_topName + ".h\"\n"); + txtp->add("#include \"verilated_dpi.h\"\n\n"); + txtp->add("#include \n"); + txtp->add("#include \n\n"); // Verilated module plus sequence number addComment(txtp, fl, "Container class to house verilated object and sequence number"); - txtp->addText(fl, "class " + m_topName + "_container: public " + m_topName + " {\n"); - txtp->addText(fl, "public:\n"); - txtp->addText(fl, "long long m_seqnum;\n"); - txtp->addText(fl, m_topName + "_container(const char* scopep__V):\n"); - txtp->addText(fl, m_topName + "(scopep__V) {}\n"); - txtp->addText(fl, "};\n\n"); + txtp->add("class " + m_topName + "_container: public " + m_topName + " {\n"); + txtp->add("public:\n"); + txtp->add("long long m_seqnum;\n"); + txtp->add(m_topName + "_container(const char* scopep__V):\n"); + txtp->add(m_topName + "(scopep__V) {}\n"); + txtp->add("};\n\n"); // Extern C - txtp->addText(fl, "extern \"C\" {\n\n"); + txtp->add("extern \"C\" {\n\n"); // Hash check hashComment(txtp, fl); - txtp->addText(fl, "void " + m_libName - + "_protectlib_check_hash" - "(int protectlib_hash__V) {\n"); - m_cHashValuep = new AstTextBlock{fl, "const int expected_hash__V = "}; - txtp->addNodesp(m_cHashValuep); - txtp->addText(fl, /**/ "if (protectlib_hash__V != expected_hash__V) {\n"); - txtp->addText(fl, /****/ "fprintf(stderr, \"%%Error: cannot use " + m_libName - + " library, " - "Verliog (%u) and library (%u) hash values do not " - "agree\\n\", protectlib_hash__V, expected_hash__V);\n"); - txtp->addText(fl, /****/ "std::exit(EXIT_FAILURE);\n"); - txtp->addText(fl, /**/ "}\n"); - txtp->addText(fl, "}\n\n"); + txtp->add("void " + m_libName + + "_protectlib_check_hash" + "(int protectlib_hash__V) {\n"); + m_cHashValuep = new AstTextBlock{fl, "const int expected_hash__V = ", "", ""}; + txtp->add(m_cHashValuep); + txtp->add(/**/ "if (protectlib_hash__V != expected_hash__V) {\n"); + txtp->add(/****/ "fprintf(stderr, \"%%Error: cannot use " + m_libName + + " library, " + "Verliog (%u) and library (%u) hash values do not " + "agree\\n\", protectlib_hash__V, expected_hash__V);\n"); + txtp->add(/****/ "std::exit(EXIT_FAILURE);\n"); + txtp->add(/**/ "}\n"); + txtp->add("}\n\n"); // Initial initialComment(txtp, fl); - txtp->addText(fl, "void* " + m_libName + "_protectlib_create(const char* scopep__V) {\n"); - txtp->addText(fl, /**/ m_topName + "_container* const handlep__V = new " + m_topName - + "_container{scopep__V};\n"); - txtp->addText(fl, /**/ "return handlep__V;\n"); - txtp->addText(fl, "}\n\n"); + txtp->add("void* " + m_libName + "_protectlib_create(const char* scopep__V) {\n"); + txtp->add(/**/ m_topName + "_container* const handlep__V = new " + m_topName + + "_container{scopep__V};\n"); + txtp->add(/**/ "return handlep__V;\n"); + txtp->add("}\n\n"); // Updates comboComment(txtp, fl); m_cComboParamsp = new AstTextBlock{ - fl, "long long " + m_libName + "_protectlib_combo_update(\n", false, true}; - m_cComboParamsp->addText(fl, "void* vhandlep__V\n"); - txtp->addNodesp(m_cComboParamsp); - txtp->addText(fl, ")\n"); - m_cComboInsp = new AstTextBlock{fl, "{\n"}; + fl, "long long " + m_libName + "_protectlib_combo_update(\n", ",\n", "\n) {\n"}; + m_cComboParamsp->add("void* vhandlep__V"); + txtp->add(m_cComboParamsp); + m_cComboInsp = new AstTextBlock{fl}; castPtr(fl, m_cComboInsp); - txtp->addNodesp(m_cComboInsp); - m_cComboOutsp = new AstTextBlock{fl, "handlep__V->eval();\n"}; - txtp->addNodesp(m_cComboOutsp); - txtp->addText(fl, "return handlep__V->m_seqnum++;\n"); - txtp->addText(fl, "}\n\n"); + txtp->add(m_cComboInsp); + txtp->add("handlep__V->eval();\n"); + m_cComboOutsp = new AstTextBlock{fl}; + txtp->add(m_cComboOutsp); + txtp->add("return handlep__V->m_seqnum++;\n"); + txtp->add("}\n\n"); if (m_hasClk) { seqComment(txtp, fl); m_cSeqParamsp = new AstTextBlock{ - fl, "long long " + m_libName + "_protectlib_seq_update(\n", false, true}; - m_cSeqParamsp->addText(fl, "void* vhandlep__V\n"); - txtp->addNodesp(m_cSeqParamsp); - txtp->addText(fl, ")\n"); - m_cSeqClksp = new AstTextBlock{fl, "{\n"}; + fl, "long long " + m_libName + "_protectlib_seq_update(\n", ",\n", "\n) {\n"}; + m_cSeqParamsp->add("void* vhandlep__V"); + txtp->add(m_cSeqParamsp); + m_cSeqClksp = new AstTextBlock{fl}; castPtr(fl, m_cSeqClksp); - txtp->addNodesp(m_cSeqClksp); - m_cSeqOutsp = new AstTextBlock{fl, "handlep__V->eval();\n"}; - txtp->addNodesp(m_cSeqOutsp); - txtp->addText(fl, "return handlep__V->m_seqnum++;\n"); - txtp->addText(fl, "}\n\n"); + txtp->add(m_cSeqClksp); + txtp->add("handlep__V->eval();\n"); + m_cSeqOutsp = new AstTextBlock{fl}; + txtp->add(m_cSeqOutsp); + txtp->add("return handlep__V->m_seqnum++;\n"); + txtp->add("}\n\n"); } comboIgnoreComment(txtp, fl); m_cIgnoreParamsp = new AstTextBlock{ - fl, "void " + m_libName + "_protectlib_combo_ignore(\n", false, true}; - m_cIgnoreParamsp->addText(fl, "void* vhandlep__V\n"); - txtp->addNodesp(m_cIgnoreParamsp); - txtp->addText(fl, ")\n"); - txtp->addText(fl, "{ }\n\n"); + fl, "void " + m_libName + "_protectlib_combo_ignore(\n", ",\n", "\n)\n{ }\n\n"}; + m_cIgnoreParamsp->add("void* vhandlep__V"); + txtp->add(m_cIgnoreParamsp); // Final finalComment(txtp, fl); - txtp->addText(fl, "void " + m_libName + "_protectlib_final(void* vhandlep__V) {\n"); + txtp->add("void " + m_libName + "_protectlib_final(void* vhandlep__V) {\n"); castPtr(fl, txtp); - txtp->addText(fl, /**/ "handlep__V->final();\n"); - txtp->addText(fl, /**/ "delete handlep__V;\n"); - txtp->addText(fl, "}\n\n"); + txtp->add(/**/ "handlep__V->final();\n"); + txtp->add(/**/ "delete handlep__V;\n"); + txtp->add("}\n\n"); - txtp->addText(fl, "}\n"); + txtp->add("}\n"); m_cfilep->tblockp(txtp); } @@ -446,46 +438,44 @@ class ProtectVisitor final : public VNVisitor { } void handleClock(AstVar* varp) { - FileLine* const fl = varp->fileline(); handleInput(varp); - m_seqPortsp->addNodesp(varp->cloneTree(false)); + m_seqPortsp->add(varp->cloneTree(false)); if (m_hasClk) { - m_seqParamsp->addText(fl, varp->prettyName() + "\n"); - m_clkSensp->addText(fl, "posedge " + varp->prettyName() + " or negedge " - + varp->prettyName()); + const std::string pname = varp->prettyName(); + m_seqParamsp->add(pname); + m_clkSensp->add("posedge " + pname + " or negedge " + pname); } - m_cSeqParamsp->addText(fl, varp->dpiArgType(true, false) + "\n"); - m_cSeqClksp->addText(fl, cInputConnection(varp)); + m_cSeqParamsp->add(varp->dpiArgType(true, false)); + m_cSeqClksp->add(cInputConnection(varp)); } void handleDataInput(AstVar* varp) { - FileLine* const fl = varp->fileline(); handleInput(varp); - m_comboPortsp->addNodesp(varp->cloneTree(false)); - m_comboParamsp->addText(fl, varp->prettyName() + "\n"); - m_comboIgnorePortsp->addNodesp(varp->cloneTree(false)); - if (m_hasClk) m_comboIgnoreParamsp->addText(fl, varp->prettyName() + "\n"); - m_cComboParamsp->addText(fl, varp->dpiArgType(true, false) + "\n"); - m_cComboInsp->addText(fl, cInputConnection(varp)); - m_cIgnoreParamsp->addText(fl, varp->dpiArgType(true, false) + "\n"); + m_comboPortsp->add(varp->cloneTree(false)); + m_comboParamsp->add(varp->prettyName()); + m_comboIgnorePortsp->add(varp->cloneTree(false)); + if (m_hasClk) m_comboIgnoreParamsp->add(varp->prettyName()); + m_cComboParamsp->add(varp->dpiArgType(true, false)); + m_cComboInsp->add(cInputConnection(varp)); + m_cIgnoreParamsp->add(varp->dpiArgType(true, false)); } - void handleInput(AstVar* varp) { m_modPortsp->addNodesp(varp->cloneTree(false)); } + void handleInput(AstVar* varp) { m_modPortsp->add(varp->cloneTree(false)); } static void addLocalVariable(AstTextBlock* textp, const AstVar* varp, const char* suffix) { AstVar* const newVarp = new AstVar{varp->fileline(), VVarType::VAR, varp->name() + suffix, varp->dtypep()}; - textp->addNodesp(newVarp); + textp->add(newVarp); } - void handleOutput(AstVar* varp) { - FileLine* const fl = varp->fileline(); - m_modPortsp->addNodesp(varp->cloneTree(false)); - m_comboPortsp->addNodesp(varp->cloneTree(false)); - m_comboParamsp->addText(fl, varp->prettyName() + "_combo__V\n"); + void handleOutput(AstVar* const varp) { + const std::string pname = varp->prettyName(); + m_modPortsp->add(varp->cloneTree(false)); + m_comboPortsp->add(varp->cloneTree(false)); + m_comboParamsp->add(pname + "_combo__V"); if (m_hasClk) { - m_seqPortsp->addNodesp(varp->cloneTree(false)); - m_seqParamsp->addText(fl, varp->prettyName() + "_tmp__V\n"); + m_seqPortsp->add(varp->cloneTree(false)); + m_seqParamsp->add(pname + "_tmp__V"); } addLocalVariable(m_comboDeclsp, varp, "_combo__V"); @@ -494,20 +484,16 @@ class ProtectVisitor final : public VNVisitor { addLocalVariable(m_seqDeclsp, varp, "_seq__V"); addLocalVariable(m_tmpDeclsp, varp, "_tmp__V"); - m_nbAssignsp->addText(fl, varp->prettyName() + "_seq__V <= " + varp->prettyName() - + "_tmp__V;\n"); - m_seqAssignsp->addText(fl, - varp->prettyName() + " = " + varp->prettyName() + "_seq__V;\n"); + m_nbAssignsp->add(pname + "_seq__V <= " + pname + "_tmp__V;\n"); + m_seqAssignsp->add(pname + " = " + pname + "_seq__V;\n"); } - m_comboAssignsp->addText(fl, - varp->prettyName() + " = " + varp->prettyName() + "_combo__V;\n"); - m_cComboParamsp->addText(fl, varp->dpiArgType(true, false) + "\n"); - m_cComboOutsp->addText(fl, V3Task::assignInternalToDpi(varp, true, "", "", "handlep__V->") - + "\n"); + m_comboAssignsp->add(pname + " = " + pname + "_combo__V;\n"); + m_cComboParamsp->add(varp->dpiArgType(true, false)); + m_cComboOutsp->add(V3Task::assignInternalToDpi(varp, true, "", "", "handlep__V->") + "\n"); if (m_hasClk) { - m_cSeqParamsp->addText(fl, varp->dpiArgType(true, false) + "\n"); - m_cSeqOutsp->addText( - fl, V3Task::assignInternalToDpi(varp, true, "", "", "handlep__V->") + "\n"); + m_cSeqParamsp->add(varp->dpiArgType(true, false)); + m_cSeqOutsp->add(V3Task::assignInternalToDpi(varp, true, "", "", "handlep__V->") + + "\n"); } } diff --git a/src/V3Randomize.cpp b/src/V3Randomize.cpp index 64525ccfd..5b5064f5d 100644 --- a/src/V3Randomize.cpp +++ b/src/V3Randomize.cpp @@ -947,28 +947,25 @@ class ConstraintExprVisitor final : public VNVisitor { // Convert to plain foreach FileLine* const fl = nodep->fileline(); + AstNode* const arrayp = nodep->arrayp()->unlinkFrBack(); if (m_wantSingle) { - AstNode* const itemp = editSingle(fl, nodep->stmtsp()); - AstNode* const cstmtp = new AstText{fl, "ret += \" \" + "}; - cstmtp->addNext(itemp); - cstmtp->addNext(new AstText{fl, ";"}); - AstNode* const exprsp = new AstText{fl, "([&]{ std::string ret;"}; - exprsp->addNext(new AstBegin{ - fl, "", - new AstForeach{fl, nodep->arrayp()->unlinkFrBack(), new AstCStmt{fl, cstmtp}}, - true}); - exprsp->addNext( - new AstText{fl, "return ret.empty() ? \"#b1\" : \"(bvand\" + ret + \")\";})()"}); - AstNodeExpr* const newp = new AstCExpr{fl, exprsp}; - newp->dtypeSetString(); - nodep->replaceWith(new AstSFormatF{fl, "%@", false, newp}); + AstNodeExpr* const itemp = editSingle(fl, nodep->stmtsp()); + AstCStmt* const cstmtp = new AstCStmt{fl}; + cstmtp->add("ret += \" \";\n"); + cstmtp->add("ret += "); + cstmtp->add(itemp); + cstmtp->add(";"); + AstCExpr* const cexprp = new AstCExpr{fl}; + cexprp->dtypeSetString(); + cexprp->add("([&]{\nstd::string ret;\n"); + cexprp->add(new AstBegin{fl, "", new AstForeach{fl, arrayp, cstmtp}, true}); + cexprp->add("return ret.empty() ? \"#b1\" : \"(bvand\" + ret + \")\";\n})()"); + nodep->replaceWith(new AstSFormatF{fl, "%@", false, cexprp}); } else { iterateAndNextNull(nodep->stmtsp()); - nodep->replaceWith( - new AstBegin{fl, "", - new AstForeach{fl, nodep->arrayp()->unlinkFrBack(), - nodep->stmtsp()->unlinkFrBackWithNext()}, - true}); + nodep->replaceWith(new AstBegin{ + fl, "", new AstForeach{fl, arrayp, nodep->stmtsp()->unlinkFrBackWithNext()}, + true}); } VL_DO_DANGLING(nodep->deleteTree(), nodep); } @@ -1028,17 +1025,18 @@ class ConstraintExprVisitor final : public VNVisitor { selp->user1(randArr); AstNode* const itemp = new AstEq{fl, selp, nodep->pinsp()->unlinkFrBack()}; itemp->user1(true); - AstNode* const cstmtp = new AstText{fl, "ret += \" \" + "}; - cstmtp->addNext(iterateSubtreeReturnEdits(itemp)); - cstmtp->addNext(new AstText{fl, ";"}); - AstNode* const exprsp = new AstText{fl, "([&]{ std::string ret;"}; - exprsp->addNext( - new AstBegin{fl, "", new AstForeach{fl, arrayp, new AstCStmt{fl, cstmtp}}, true}); - exprsp->addNext( - new AstText{fl, "return ret.empty() ? \"#b0\" : \"(bvor\" + ret + \")\";})()"}); - AstNodeExpr* const newp = new AstCExpr{fl, exprsp}; - newp->dtypeSetString(); - nodep->replaceWith(new AstSFormatF{fl, "%@", false, newp}); + + AstCStmt* const cstmtp = new AstCStmt{fl}; + cstmtp->add("ret += \" \";\n"); + cstmtp->add("ret += "); + cstmtp->add(iterateSubtreeReturnEdits(itemp)); + cstmtp->add(";"); + AstCExpr* const cexprp = new AstCExpr{fl}; + cexprp->dtypeSetString(); + cexprp->add("([&]{\nstd::string ret;\n"); + cexprp->add(new AstBegin{fl, "", new AstForeach{fl, arrayp, cstmtp}, true}); + cexprp->add("return ret.empty() ? \"#b0\" : \"(bvor\" + ret + \")\";\n})()"); + nodep->replaceWith(new AstSFormatF{fl, "%@", false, cexprp}); VL_DO_DANGLING(nodep->deleteTree(), nodep); return; } @@ -1772,14 +1770,14 @@ class RandomizeVisitor final : public VNVisitor { AstNodeExpr* newRandValue(FileLine* const fl, AstVar* const randcVarp, AstNodeDType* const dtypep) { if (randcVarp) { - AstVarRef* const argsp = new AstVarRef{fl, randcVarp, VAccess::READWRITE}; - argsp->AstNode::addNext(new AstText{fl, ".randomize(__Vm_rng)"}); - AstCExpr* const newp = new AstCExpr{fl, argsp}; - newp->dtypep(dtypep); - return newp; - } else { - return new AstRandRNG{fl, dtypep}; + AstCExpr* const cexprp = new AstCExpr{fl}; + cexprp->add(new AstVarRef{fl, randcVarp, VAccess::READWRITE}); + cexprp->add(".randomize(__Vm_rng)"); + cexprp->dtypep(dtypep); + return cexprp; } + + return new AstRandRNG{fl, dtypep}; } void addPrePostCall(AstClass* const classp, AstFunc* const funcp, const string& name) { if (AstTask* userFuncp = VN_CAST(m_memberMap.findMember(classp, name), Task)) { @@ -2153,14 +2151,12 @@ class RandomizeVisitor final : public VNVisitor { randomizep->addStmtsp(setupTaskRefp->makeStmt()); AstNodeModule* const genModp = VN_AS(genp->user2p(), NodeModule); - AstVarRef* const genRefp = new AstVarRef{fl, genModp, genp, VAccess::READWRITE}; - AstNode* const argsp = genRefp; - argsp->addNext(new AstText{fl, ".next(__Vm_rng)"}); - AstNodeExpr* const solverCallp = new AstCExpr{fl, argsp}; + AstCExpr* const solverCallp = new AstCExpr{fl}; solverCallp->dtypeSetBit(); + solverCallp->add(new AstVarRef{fl, genModp, genp, VAccess::READWRITE}); + solverCallp->add(".next(__Vm_rng)"); beginValp = solverCallp; - if (randModeVarp) { AstNodeModule* const randModeClassp = VN_AS(randModeVarp->user2p(), Class); AstNodeFTask* const newp @@ -2434,11 +2430,10 @@ class RandomizeVisitor final : public VNVisitor { } // Call the solver and set return value - AstVarRef* const randNextp - = new AstVarRef{nodep->fileline(), localGenp, VAccess::READWRITE}; - randNextp->AstNode::addNext(new AstText{nodep->fileline(), ".next(__Vm_rng)"}); - AstNodeExpr* const solverCallp = new AstCExpr{nodep->fileline(), randNextp}; + AstCExpr* const solverCallp = new AstCExpr{nodep->fileline()}; solverCallp->dtypeSetBit(); + solverCallp->add(new AstVarRef{nodep->fileline(), localGenp, VAccess::READWRITE}); + solverCallp->add(".next(__Vm_rng)"); randomizeFuncp->addStmtsp(new AstAssign{ nodep->fileline(), new AstVarRef{nodep->fileline(), VN_AS(randomizeFuncp->fvarp(), Var), VAccess::WRITE}, diff --git a/src/V3Sched.cpp b/src/V3Sched.cpp index 88e29b068..684e65ab2 100644 --- a/src/V3Sched.cpp +++ b/src/V3Sched.cpp @@ -158,18 +158,16 @@ AstNodeStmt* checkIterationLimit(AstNetlist* netlistp, const string& name, AstVa AstNodeExpr* const condp = new AstGt{flp, counterRefp, constp}; AstIf* const ifp = new AstIf{flp, condp}; ifp->branchPred(VBranchPred::BP_UNLIKELY); - AstTextBlock* const blockp = new AstTextBlock{flp}; - ifp->addThensp(blockp); + AstCStmt* const stmtp = new AstCStmt{flp}; + ifp->addThensp(stmtp); FileLine* const locp = netlistp->topModulep()->fileline(); - const string& file = VIdProtect::protect(locp->filename()); - const string& line = cvtToStr(locp->lineno()); - const auto add = [&](const string& text) { blockp->addText(flp, text, true); }; - add("#ifdef VL_DEBUG\n"); - blockp->addNodesp(callVoidFunc(trigDumpp)); - add("#endif\n"); - add("VL_FATAL_MT(\"" + V3OutFormatter::quoteNameControls(file) + "\", " + line + ", \"\", "); - add("\"" + name + " region did not converge.\");\n"); - + const std::string& file = VIdProtect::protect(locp->filename()); + const std::string& line = std::to_string(locp->lineno()); + stmtp->add("#ifdef VL_DEBUG\n"); + stmtp->add(callVoidFunc(trigDumpp)); + stmtp->add("#endif\n"); + stmtp->add("VL_FATAL_MT(\"" + V3OutFormatter::quoteNameControls(file) + "\", " + line + + ", \"\", \"" + name + " region did not converge.\");"); return ifp; } @@ -696,15 +694,14 @@ const TriggerKit createTriggers(AstNetlist* netlistp, AstCFunc* const initFuncp, // Add a debug dumping statement for this trigger const auto addDebug = [&](uint32_t index, const string& text = "") { std::stringstream ss; - ss << "VL_DBG_MSGF(\" '" << name << "' region trigger index " << cvtToStr(index) - << " is active"; + ss << "VL_DBG_MSGF(\" "; + ss << "'" << name << "' region trigger index " << std::to_string(index) << " is active"; if (!text.empty()) ss << ": " << text; - ss << "\\n\");\n"; - const string message{ss.str()}; + ss << "\\n\");"; AstIf* const ifp = new AstIf{flp, getTrig(index)}; dumpp->addStmtsp(ifp); - ifp->addThensp(new AstText{flp, message, true}); + ifp->addThensp(new AstCStmt{flp, ss.str()}); }; // Add a print for each of the extra triggers @@ -832,14 +829,13 @@ const TriggerKit createTriggers(AstNetlist* netlistp, AstCFunc* const initFuncp, // Add a call to the dumping function if debug is enabled { - AstTextBlock* const blockp = new AstTextBlock{flp}; - funcp->addStmtsp(blockp); - const auto add = [&](const string& text) { blockp->addText(flp, text, true); }; - add("#ifdef VL_DEBUG\n"); - add("if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) {\n"); - blockp->addNodesp(callVoidFunc(dumpp)); - add("}\n"); - add("#endif\n"); + AstCStmt* const stmtp = new AstCStmt{flp}; + funcp->addStmtsp(stmtp); + stmtp->add("#ifdef VL_DEBUG\n"); + stmtp->add("if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) {\n"); + stmtp->add(callVoidFunc(dumpp)); + stmtp->add("}\n"); + stmtp->add("#endif"); } if (v3Global.opt.profExec()) funcp->addStmtsp(profExecSectionPop(flp)); diff --git a/src/V3SchedTiming.cpp b/src/V3SchedTiming.cpp index 7b5d25a72..2f543a1e0 100644 --- a/src/V3SchedTiming.cpp +++ b/src/V3SchedTiming.cpp @@ -166,7 +166,7 @@ TimingKit prepareTiming(AstNetlist* const netlistp) { // Add arguments to a resume() call based on arguments in the suspending call void addResumePins(AstCMethodHard* const resumep, AstNodeExpr* pinsp) { AstCExpr* const exprp = VN_CAST(pinsp, CExpr); - AstText* const textp = VN_CAST(exprp->exprsp(), Text); + AstText* const textp = VN_CAST(exprp->nodesp(), Text); if (textp) { // The first argument, vlProcess, isn't used by any of resume() methods, skip it if ((pinsp = VN_CAST(pinsp->nextp(), NodeExpr))) { diff --git a/src/V3Simulate.h b/src/V3Simulate.h index a390bdd26..fd19fe21d 100644 --- a/src/V3Simulate.h +++ b/src/V3Simulate.h @@ -1366,7 +1366,7 @@ private: // default // These types are definitely not reducible // AstCoverInc, AstFinish, - // AstRand, AstTime, AstUCFunc, AstCCall, AstCStmt, AstUCStmt + // AstRand, AstTime, AstCCall, AstCStmt*, AstCExpr* void visit(AstNode* nodep) override { if (jumpingOver()) return; badNodeType(nodep); diff --git a/src/V3Subst.cpp b/src/V3Subst.cpp index f3fcf9bcb..ab8df0418 100644 --- a/src/V3Subst.cpp +++ b/src/V3Subst.cpp @@ -382,9 +382,18 @@ class SubstVisitor final : public VNVisitor { } } + // Do not optimzie across user $c input + void visit(AstCExprUser* nodep) override { + m_ops = SUBST_MAX_OPS_NA; + iterateChildren(nodep); + } + void visit(AstCStmtUser* nodep) override { + m_ops = SUBST_MAX_OPS_NA; + iterateChildren(nodep); + } + void visit(AstNode* nodep) override { ++m_ops; - if (!nodep->isSubstOptimizable()) m_ops = SUBST_MAX_OPS_NA; iterateChildren(nodep); } diff --git a/src/V3Task.cpp b/src/V3Task.cpp index 4771c1990..fdf47f2db 100644 --- a/src/V3Task.cpp +++ b/src/V3Task.cpp @@ -672,15 +672,15 @@ class TaskVisitor final : public VNVisitor { if (needSyms) ccallp->argTypes("vlSymsp"); if (refp->taskp()->dpiContext()) { - // __Vscopep AstScopeName* const snp = refp->scopeNamep()->unlinkFrBack(); UASSERT_OBJ(snp, refp, "Missing scoping context"); + FileLine* const flp = refp->fileline(); + // __Vscopep ccallp->addArgsp(snp); // __Vfilenamep - ccallp->addArgsp( - new AstCExpr{refp->fileline(), "\"" + refp->fileline()->filenameEsc() + "\"", 64}); + ccallp->addArgsp(new AstCExpr{flp, "\"" + flp->filenameEsc() + "\"", 64}); // __Vlineno - ccallp->addArgsp(new AstConst(refp->fileline(), refp->fileline()->lineno())); + ccallp->addArgsp(new AstConst(flp, flp->lineno())); } // Create connections @@ -802,11 +802,10 @@ class TaskVisitor final : public VNVisitor { // Extract a scalar from DPI temporary var that is scalar or 1D array if (useSvVec) { - const std::string offset = std::to_string(i * widthWords); - AstCStmt* const cstmtp = new AstCStmt{flp, nullptr}; - cstmtp->addExprsp(new AstText{flp, cvt}); - cstmtp->addExprsp(lhsp); - cstmtp->addExprsp(new AstText{flp, ", " + rhsName + " + " + offset + ");"}); + AstCStmt* const cstmtp = new AstCStmt{flp}; + cstmtp->add(cvt); + cstmtp->add(lhsp); + cstmtp->add(", " + rhsName + " + " + std::to_string(i * widthWords) + ");"); stmtsp = AstNode::addNext(stmtsp, cstmtp); } else { const std::string elem = strides.empty() ? "" : "[" + std::to_string(i) + "]"; @@ -818,120 +817,97 @@ class TaskVisitor final : public VNVisitor { return stmtsp; } - AstCFunc* makeDpiExportDispatcher(AstNodeFTask* nodep, AstVar* rtnvarp) { + // Create dispatch wrapper + AstCFunc* makeDpiExportDispatcher(AstNodeFTask* const nodep, AstVar* const rtnvarp) { // Verilog name has __ conversion and other tricks, to match DPI C code, back that out - const string name = AstNode::prettyName(nodep->cname()); - checkLegalCIdentifier(nodep, name); + FileLine* const flp = nodep->fileline(); + const std::string cname = AstNode::prettyName(nodep->cname()); + checkLegalCIdentifier(nodep, cname); const char* const tmpSuffixp = V3Task::dpiTemporaryVarSuffix(); - AstCFunc* const funcp = new AstCFunc{nodep->fileline(), name, m_scopep, - (rtnvarp ? rtnvarp->dpiArgType(true, true) : "")}; + const std::string rtnType = rtnvarp ? rtnvarp->dpiArgType(true, true) : ""; + // The function we are building + AstCFunc* const funcp = new AstCFunc{flp, cname, m_scopep, rtnType}; funcp->dpiExportDispatcher(true); funcp->dpiContext(nodep->dpiContext()); funcp->dontCombine(true); funcp->entryPoint(true); funcp->isStatic(true); funcp->protect(false); - funcp->cname(name); + funcp->cname(cname); // Add DPI Export to top, since it's a global function m_topScopep->scopep()->addBlocksp(funcp); - { // Create dispatch wrapper - // Note this function may dispatch to myfunc on a different class. - // Thus we need to be careful not to assume a particular function layout. - // - // Func numbers must be the same for each function, even when there are - // completely different models with the same function name. - // Thus we can't just use a constant computed at Verilation time. - // We could use 64-bits of a MD5/SHA hash rather than a string here, - // but the compare is only done on first call then memoized, so - // it's not worth optimizing. + // Note this function may dispatch on a different class. + // Thus we need to be careful not to assume a particular function layout. + // + // Func numbers must be the same for each function, even when there are + // completely different models with the same function name. + // Thus we can't just use a constant computed at Verilation time. + // We could use 64-bits of a MD5/SHA hash rather than a string here, + // but the compare is only done on first call then memoized, so + // it's not worth optimizing. - // Static doesn't need save-restore as if below will re-fill proper value - funcp->addStmtsp(new AstCStmt{nodep->fileline(), "static int __Vfuncnum = -1;"}); - // First time init (faster than what the compiler does if we did a singleton - funcp->addStmtsp(new AstCStmt{ - nodep->fileline(), - "if (VL_UNLIKELY(__Vfuncnum == -1)) __Vfuncnum = Verilated::exportFuncNum(\"" - + nodep->cname() + "\");"}); - // If the find fails, it will throw an error - funcp->addStmtsp( - new AstCStmt{nodep->fileline(), - "const VerilatedScope* const __Vscopep = Verilated::dpiScope();"}); - // If dpiScope is fails and is null; the exportFind function throws and error - // If __Vcb is null the exportFind function throws and error - const string cbtype - = VIdProtect::protect(v3Global.opt.prefix() + "__Vcb_" + nodep->cname() + "_t"); - funcp->addStmtsp( - new AstCStmt{nodep->fileline(), - cbtype + " __Vcb = (" + cbtype + ")(" // Can't use static_cast - + "VerilatedScope::exportFind(__Vscopep, __Vfuncnum));"}); - } + // Peramble - fetch the exproted function from the scope table + AstCStmt* const prep = new AstCStmt{flp}; + funcp->addStmtsp(prep); + // Static doesn't need save-restore as if below will re-fill proper value + prep->add("static int __Vfuncnum = -1;\n"); + // First time init (faster than what the compiler does if we did a singleton + prep->add("if (VL_UNLIKELY(__Vfuncnum == -1)) {\n"); + prep->add("__Vfuncnum = Verilated::exportFuncNum(\"" + nodep->cname() + "\");\n"); + prep->add("}\n"); + // If the find fails, it will throw an error + prep->add("const VerilatedScope* const __Vscopep = Verilated::dpiScope();\n"); + // If 'dpiScope()' fails and '__Vscopep' is null; the exportFind function throws an error + // If __Vcb is null the exportFind function throws and error + const std::string cbtype + = VIdProtect::protect(v3Global.opt.prefix() + "__Vcb_" + nodep->cname() + "_t"); + prep->add(cbtype + " __Vcb = reinterpret_cast<" + cbtype + + ">(VerilatedScope::exportFind(__Vscopep, __Vfuncnum));"); - // Convert input/inout DPI arguments to Internal types - string args; - args += ("(" + EmitCUtil::symClassName() - + "*)(__Vscopep->symsp())"); // Upcast w/o overhead - AstNode* argnodesp = nullptr; - for (AstNode* stmtp = nodep->stmtsp(); stmtp; stmtp = stmtp->nextp()) { - if (AstVar* const portp = VN_CAST(stmtp, Var)) { - if (portp->isIO() && !portp->isFuncReturn() && portp != rtnvarp) { - // No createDpiTemp; we make a real internal variable instead - // SAME CODE BELOW - args += ", "; - if (args != "") { - argnodesp = argnodesp->addNext(new AstText{portp->fileline(), args, true}); - args = ""; - } - AstVarScope* const outvscp - = createFuncVar(funcp, portp->name() + tmpSuffixp, portp); - // No information exposure; is already visible in import/export func template - outvscp->varp()->protect(false); - portp->protect(false); - AstVarRef* const refp - = new AstVarRef{portp->fileline(), outvscp, - portp->isWritable() ? VAccess::WRITE : VAccess::READ}; - argnodesp = argnodesp->addNext(refp); - - if (portp->isNonOutput()) { - std::string frName - = portp->isInout() && portp->basicp()->isDpiPrimitive() - && portp->dtypep()->skipRefp()->dimensions(false).second == 0 - ? "*" - : ""; - frName += portp->name(); - funcp->addStmtsp(createAssignDpiToInternal(outvscp, frName)); - } - } - } - } - - if (rtnvarp) { - AstVar* const portp = rtnvarp; - // SAME CODE ABOVE - args += ", "; - if (args != "") { - argnodesp = argnodesp->addNext(new AstText{portp->fileline(), args, true}); - args = ""; - } - AstVarScope* const outvscp = createFuncVar(funcp, portp->name() + tmpSuffixp, portp); + // Convert input/inout DPI arguments to Internal types, and construct the call + AstCStmt* const callp = new AstCStmt{flp}; + const auto addFuncArg = [&](AstVar* portp) -> AstVarScope* { + // No createDpiTemp; we make a real internal variable instead + AstVarScope* const vscp = createFuncVar(funcp, portp->name() + tmpSuffixp, portp); // No information exposure; is already visible in import/export func template - outvscp->varp()->protect(false); - AstVarRef* const refp = new AstVarRef{ - portp->fileline(), outvscp, portp->isWritable() ? VAccess::WRITE : VAccess::READ}; - argnodesp = argnodesp->addNext(refp); + vscp->varp()->protect(false); + portp->protect(false); + // Add argument to call + const VAccess access = portp->isWritable() ? VAccess::WRITE : VAccess::READ; + callp->add(", "); + callp->add(new AstVarRef{portp->fileline(), vscp, access}); + return vscp; + }; + // Call callback + callp->add("(*__Vcb)("); + // First argument is the Syms + callp->add("(" + EmitCUtil::symClassName() + "*)(__Vscopep->symsp())"); + // Add function arguments + for (AstNode* stmtp = nodep->stmtsp(); stmtp; stmtp = stmtp->nextp()) { + AstVar* const portp = VN_CAST(stmtp, Var); + if (!portp) continue; + if (!portp->isIO()) continue; + if (portp->isFuncReturn()) continue; + if (portp == rtnvarp) continue; // Handled below + // Add argument to call + AstVarScope* const outvscp = addFuncArg(portp); + if (!portp->isNonOutput()) continue; + // Convert input/inout arguments to dpi type + const std::string deref + = portp->isInout() // + && portp->basicp()->isDpiPrimitive() // + && portp->dtypep()->skipRefp()->dimensions(false).second == 0 + ? "*" + : ""; + funcp->addStmtsp(createAssignDpiToInternal(outvscp, deref + portp->name())); } - - { // Call the user function - // Add the variables referenced as VarRef's so that lifetime analysis - // doesn't rip up the variables on us - args += ");\n"; - AstCStmt* const newp = new AstCStmt{nodep->fileline(), "(*__Vcb)("}; - newp->addExprsp(argnodesp); - VL_DANGLING(argnodesp); - newp->addExprsp(new AstText{nodep->fileline(), args, true}); - funcp->addStmtsp(newp); - } - + // Return value argument goes last + if (rtnvarp) addFuncArg(rtnvarp); + // Close statement + callp->add(");"); + // Call the user function + funcp->addStmtsp(callp); // Convert output/inout arguments back to internal type for (AstNode* stmtp = nodep->stmtsp(); stmtp; stmtp = stmtp->nextp()) { if (AstVar* const portp = VN_CAST(stmtp, Var)) { @@ -940,13 +916,12 @@ class TaskVisitor final : public VNVisitor { } } } - + // Convert return value if (rtnvarp) { funcp->addStmtsp(createDpiTemp(rtnvarp, "")); funcp->addStmtsp(createAssignInternalToDpi(rtnvarp, false, tmpSuffixp, "")); - string stmt = "return " + rtnvarp->name(); // TODO use AstCReturn? - stmt += rtnvarp->basicp()->isDpiPrimitive() ? ";"s : "[0];"s; - funcp->addStmtsp(new AstCStmt{nodep->fileline(), stmt}); + const std::string index = rtnvarp->basicp()->isDpiPrimitive() ? "" : "[0]"; + funcp->addStmtsp(new AstCStmt{flp, "return " + rtnvarp->name() + index + ";"}); } if (!makePortList(nodep, funcp)) return nullptr; return funcp; @@ -1114,17 +1089,23 @@ class TaskVisitor final : public VNVisitor { } { // Call the imported function - if (rtnvscp) { // isFunction will no longer work as we unlinked the return var - cfuncp->addStmtsp(createDpiTemp(rtnvscp->varp(), tmpSuffixp)); - string stmt = rtnvscp->varp()->name(); - stmt += tmpSuffixp; - stmt += rtnvscp->varp()->basicp()->isDpiPrimitive() ? " = " : "[0] = "; - cfuncp->addStmtsp(new AstText{nodep->fileline(), stmt, /* tracking: */ true}); - } AstCCall* const callp = new AstCCall{nodep->fileline(), dpiFuncp}; callp->dtypeSetVoid(); callp->argTypes(args); - cfuncp->addStmtsp(callp->makeStmt()); + if (rtnvscp) { + // If it has a return value, capture it + cfuncp->addStmtsp(createDpiTemp(rtnvscp->varp(), tmpSuffixp)); + const std::string sel = rtnvscp->varp()->basicp()->isDpiPrimitive() ? "" : "[0]"; + AstCStmt* const cstmtp = new AstCStmt{nodep->fileline()}; + cstmtp->add(rtnvscp->varp()->name() + tmpSuffixp + sel); // LHS + cstmtp->add(" = "); + cstmtp->add(callp); // RHS + cstmtp->add(";"); + cfuncp->addStmtsp(cstmtp); + } else { + // Othervise just call it + cfuncp->addStmtsp(callp->makeStmt()); + } } // Convert output/inout arguments back to internal type @@ -1515,8 +1496,8 @@ class TaskVisitor final : public VNVisitor { lambdap->stmtsp()->addHereThisAsNext(newvarp); lambdap->hasResult(false); - // Add return statement - AstCExpr* const exprp = new AstCExpr{nodep->fileline(), varp->name(), 0}; + // Add return statement - TODO: Why not VarRef(outvscp)? + AstCExpr* const exprp = new AstCExpr{nodep->fileline(), varp->name()}; exprp->dtypeSetString(); lambdap->addStmtsp(new AstCReturn{nodep->fileline(), exprp}); } diff --git a/src/V3Timing.cpp b/src/V3Timing.cpp index 0247dbbf9..f51a2bdb1 100644 --- a/src/V3Timing.cpp +++ b/src/V3Timing.cpp @@ -645,7 +645,7 @@ class TimingControlVisitor final : public VNVisitor { // possibly a multiline string std::string comment = ss.str(); std::replace(comment.begin(), comment.end(), '\n', ' '); - AstCExpr* const commentp = new AstCExpr{sentreep->fileline(), comment, 0}; + AstCExpr* const commentp = new AstCExpr{sentreep->fileline(), comment}; commentp->dtypeSetString(); sentreep->user2p(commentp); return commentp; @@ -656,10 +656,10 @@ class TimingControlVisitor final : public VNVisitor { void addDebugInfo(AstCMethodHard* const methodp) const { if (v3Global.opt.protectIds()) return; FileLine* const flp = methodp->fileline(); - AstCExpr* const ap = new AstCExpr{flp, '"' + flp->filenameEsc() + '"', 0}; + AstCExpr* const ap = new AstCExpr{flp, '"' + flp->filenameEsc() + '"'}; ap->dtypeSetString(); methodp->addPinsp(ap); - AstCExpr* const bp = new AstCExpr{flp, cvtToStr(flp->lineno()), 0}; + AstCExpr* const bp = new AstCExpr{flp, cvtToStr(flp->lineno())}; bp->dtypeSetString(); methodp->addPinsp(bp); } @@ -673,8 +673,7 @@ class TimingControlVisitor final : public VNVisitor { void addProcessInfo(AstCMethodHard* const methodp) const { FileLine* const flp = methodp->fileline(); AstCExpr* const ap = new AstCExpr{ - flp, m_procp && (hasFlags(m_procp, T_HAS_PROC)) ? "vlProcess" : "nullptr", 0}; - ap->dtypeSetVoid(); + flp, m_procp && (hasFlags(m_procp, T_HAS_PROC)) ? "vlProcess" : "nullptr"}; methodp->addPinsp(ap); } // Creates the fork handle type and returns it @@ -1164,10 +1163,9 @@ class TimingControlVisitor final : public VNVisitor { } void visit(AstWaitFork* nodep) override { if (hasFlags(m_procp, T_HAS_PROC)) { - AstCExpr* const exprp - = new AstCExpr{nodep->fileline(), "vlProcess->completedFork()", 1}; - exprp->pure(false); - AstWait* const waitp = new AstWait{nodep->fileline(), exprp, nullptr}; + FileLine* const flp = nodep->fileline(); + AstCExpr* const exprp = new AstCExpr{flp, "vlProcess->completedFork()", 1}; + AstWait* const waitp = new AstWait{flp, exprp, nullptr}; nodep->replaceWith(waitp); } else { // never reached by any process; remove to avoid compilation error @@ -1186,8 +1184,7 @@ class TimingControlVisitor final : public VNVisitor { if (constp->isZero()) { // We have to await forever instead of simply returning in case we're deep in a // callstack - AstCExpr* const foreverp = new AstCExpr{flp, "VlForever{}", 0}; - foreverp->dtypeSetVoid(); // TODO: this is sloppy but harmless + AstCExpr* const foreverp = new AstCExpr{flp, "VlForever{}"}; AstCAwait* const awaitp = new AstCAwait{flp, foreverp}; awaitp->dtypeSetVoid(); nodep->replaceWith(awaitp->makeStmt()); diff --git a/src/V3Trace.cpp b/src/V3Trace.cpp index ddf9305ae..de40650c9 100644 --- a/src/V3Trace.cpp +++ b/src/V3Trace.cpp @@ -528,19 +528,21 @@ class TraceVisitor final : public VNVisitor { addInitStr("if (VL_UNLIKELY(!vlSymsp->__Vm_activity)) return;\n"); } // Register function - std::string str; + AstCStmt* const cstmtp = new AstCStmt{flp}; + m_regFuncp->addStmtsp(cstmtp); if (traceType == VTraceType::CONSTANT) { - str = "tracep->addConstCb("; + cstmtp->add("tracep->addConstCb("); + cstmtp->add(new AstAddrOfCFunc{flp, funcp}); + cstmtp->add(", " + std::to_string(funcNum) + ", vlSelf);"); } else if (traceType == VTraceType::FULL) { - str = "tracep->addFullCb("; + cstmtp->add("tracep->addFullCb("); + cstmtp->add(new AstAddrOfCFunc{flp, funcp}); + cstmtp->add(", " + std::to_string(funcNum) + ", vlSelf);"); } else { - str = "tracep->addChgCb("; + cstmtp->add("tracep->addChgCb("); + cstmtp->add(new AstAddrOfCFunc{flp, funcp}); + cstmtp->add(", " + std::to_string(funcNum) + ", vlSelf);"); } - m_regFuncp->addStmtsp(new AstText{flp, str, true}); - m_regFuncp->addStmtsp(new AstAddrOfCFunc{flp, funcp}); - m_regFuncp->addStmtsp(new AstText{flp, ", ", true}); - m_regFuncp->addStmtsp(new AstConst{flp, funcNum}); - m_regFuncp->addStmtsp(new AstText{flp, ", vlSelf);\n", true}); } else { // Sub functions funcp->argTypes(bufArg); @@ -739,10 +741,11 @@ class TraceVisitor final : public VNVisitor { // Register it { - AstNode* const argsp = new AstText{fl, "tracep->addCleanupCb(", true}; - argsp->addNext(new AstAddrOfCFunc{fl, cleanupFuncp}); - argsp->addNext(new AstText{fl, ", vlSelf);"}); - m_regFuncp->addStmtsp(new AstCStmt{fl, argsp}); + AstCStmt* const cstmtp = new AstCStmt{fl}; + m_regFuncp->addStmtsp(cstmtp); + cstmtp->add("tracep->addCleanupCb("); + cstmtp->add(new AstAddrOfCFunc{fl, cleanupFuncp}); + cstmtp->add(", vlSelf);"); } // Clear global activity flag diff --git a/src/V3Width.cpp b/src/V3Width.cpp index 2a0852c32..a14775b4e 100644 --- a/src/V3Width.cpp +++ b/src/V3Width.cpp @@ -1599,7 +1599,11 @@ class WidthVisitor final : public VNVisitor { nodep->dtypeSetBit(); } } - void visit(AstUCFunc* nodep) override { + void visit(AstCExpr* nodep) override { + // Inserted by V3Width only so we know has been resolved + userIterateChildren(nodep, WidthVP{SELF, BOTH}.p()); + } + void visit(AstCExprUser* nodep) override { // Give it the size the user wants. if (m_vup && m_vup->prelim()) { nodep->dtypeSetLogicUnsized(32, 1, VSigning::UNSIGNED); // We don't care @@ -3502,10 +3506,6 @@ class WidthVisitor final : public VNVisitor { return false; } - void visit(AstCExpr* nodep) override { - // Inserted by V3Width only so we know has been resolved - userIterateChildren(nodep, WidthVP{SELF, BOTH}.p()); - } void visit(AstCMethodHard* nodep) override { // Never created before V3Width, so no need to redo it UASSERT_OBJ(nodep->dtypep(), nodep, "CMETHODCALLs should have already been sized"); @@ -6060,7 +6060,7 @@ class WidthVisitor final : public VNVisitor { if (nodep->suffixp()) iterateCheckString(nodep, "suffix", nodep->suffixp(), BOTH); if (nodep->widthp()) iterateCheckSigned32(nodep, "width", nodep->widthp(), BOTH); } - void visit(AstUCStmt* nodep) override { + void visit(AstCStmtUser* nodep) override { // Just let all arguments seek their natural sizes assertAtStatement(nodep); userIterateChildren(nodep, WidthVP{SELF, BOTH}.p()); @@ -6724,8 +6724,8 @@ class WidthVisitor final : public VNVisitor { v3Global.useRandomizeMethods(true); AstCExpr* const newp = new AstCExpr{nodep->fileline(), "__Vm_rng.set_randstate(", 1}; - newp->addExprsp(exprp->unlinkFrBack()); - newp->addExprsp(new AstText{nodep->fileline(), ")", true}); + newp->add(exprp->unlinkFrBack()); + newp->add(")"); newp->dtypeSetString(); nodep->replaceWith(newp); VL_DO_DANGLING(pushDeletep(nodep), nodep); diff --git a/src/verilog.y b/src/verilog.y index 7668c861c..acb7a2703 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -4103,8 +4103,15 @@ system_t_call: // IEEE: system_tf_call (as task) | yD_DUMPON parenE { $$ = new AstDumpCtl{$1, VDumpCtlType::ON}; } | yD_DUMPON '(' expr ')' { $$ = new AstDumpCtl{$1, VDumpCtlType::ON}; DEL($3); } // - | yD_C '(' cStrList ')' { $$ = (v3Global.opt.ignc() ? nullptr : new AstUCStmt{$1, $3}); } - | yD_SDF_ANNOTATE '(' exprEListE ')' { $$ = nullptr; $1->v3warn(SPECIFYIGN, "Ignoring unsupported: $sdf_annotate"); DEL($3); } + | yD_C '(' cStrList ')' { + AstCStmtUser* cstmtp = nullptr; + if (!v3Global.opt.ignc()) { + cstmtp = new AstCStmtUser{$1, true}; + cstmtp->add($3); + } + $$ = cstmtp; + } +| yD_SDF_ANNOTATE '(' exprEListE ')' { $$ = nullptr; $1->v3warn(SPECIFYIGN, "Ignoring unsupported: $sdf_annotate"); DEL($3); } | yD_STACKTRACE parenE { $$ = new AstStackTraceT{$1}; } | yD_SYSTEM '(' expr ')' { $$ = new AstSystemT{$1, $3}; } // @@ -4263,7 +4270,14 @@ system_t_call: // IEEE: system_tf_call (as task) system_f_call: // IEEE: system_tf_call (as func) yaD_PLI systemDpiArgsE { $$ = new AstFuncRef{$1, *$1, $2}; VN_CAST($$, FuncRef)->pli(true); } // - | yD_C '(' cStrList ')' { $$ = (v3Global.opt.ignc() ? nullptr : new AstUCFunc{$1, $3}); } + | yD_C '(' cStrList ')' { + AstCExprUser* cexprp = nullptr; + if (!v3Global.opt.ignc()) { + cexprp = new AstCExprUser{$1}; + cexprp->add($3); + } + $$ = cexprp; + } | yD_CAST '(' expr ',' expr ')' { $$ = new AstCastDynamic{$1, $5, $3}; } | yD_STACKTRACE parenE { $$ = new AstStackTraceF{$1}; } | yD_SYSTEM '(' expr ')' { $$ = new AstSystemF{$1, $3}; } @@ -5192,7 +5206,7 @@ pexprScope: // exprScope, For use by property_expr // For $c("foo","bar") we want "bar" as a string, not a Verilog integer. exprStrText: exprNoStr { $$ = $1; } - | strAsText { $$ = $1; } + | yaSTRING { $$ = new AstText{$1, GRAMMARP->textQuoted($1, *$1)}; } ; exprTypeCompare: @@ -6080,10 +6094,6 @@ strAsIntIgnore: // strAsInt, but never matches for when expr yaSTRING__IGNORE { $$ = nullptr; yyerror("Impossible token"); } ; -strAsText: - yaSTRING { $$ = GRAMMARP->createTextQuoted($1, *$1); } - ; - endLabelE: /* empty */ { $$ = nullptr; $$ = nullptr; } | ':' idAny { $$ = $2; $$ = $2; } diff --git a/test_regress/t/t_dump_json.out b/test_regress/t/t_dump_json.out index a1c071f22..3ae39b1db 100644 --- a/test_regress/t/t_dump_json.out +++ b/test_regress/t/t_dump_json.out @@ -1678,18 +1678,18 @@ "valuep": [ {"type":"CVTPACKSTRING","name":"","addr":"(OZ)","loc":"d,227:18,227:24","dtypep":"(FG)", "lhsp": [ - {"type":"UCFUNC","name":"","addr":"(PZ)","loc":"d,227:26,227:28","dtypep":"UNLINKED", - "exprsp": [ - {"type":"TEXT","name":"","addr":"(QZ)","loc":"d,227:29,227:32","shortText":"0"} + {"type":"CEXPRUSER","name":"","addr":"(PZ)","loc":"d,227:26,227:28","dtypep":"UNLINKED", + "nodesp": [ + {"type":"TEXT","name":"","addr":"(QZ)","loc":"d,227:29,227:32","text":"0"} ]} ]} ],"attrsp": []}, - {"type":"UCSTMT","name":"","addr":"(RZ)","loc":"d,229:7,229:9", - "exprsp": [ + {"type":"CSTMTUSER","name":"","addr":"(RZ)","loc":"d,229:7,229:9", + "nodesp": [ {"type":"PARSEREF","name":"s","addr":"(SZ)","loc":"d,229:10,229:11","dtypep":"UNLINKED","lhsp": [],"ftaskrefp": []}, - {"type":"TEXT","name":"","addr":"(TZ)","loc":"d,229:13,229:18","shortText":" = "}, + {"type":"TEXT","name":"","addr":"(TZ)","loc":"d,229:13,229:18","text":" = "}, {"type":"PARSEREF","name":"m_process","addr":"(UZ)","loc":"d,229:20,229:29","dtypep":"UNLINKED","lhsp": [],"ftaskrefp": []}, - {"type":"TEXT","name":"","addr":"(VZ)","loc":"d,229:31,229:47","shortText":"->randstate();"} + {"type":"TEXT","name":"","addr":"(VZ)","loc":"d,229:31,229:47","text":"->randstate();"} ]}, {"type":"RETURN","name":"","addr":"(WZ)","loc":"d,230:7,230:13", "lhsp": [ @@ -1702,12 +1702,12 @@ "childDTypep": [ {"type":"BASICDTYPE","name":"string","addr":"(AAB)","loc":"d,233:33,233:39","dtypep":"(AAB)","keyword":"string","generic":false,"rangep": []} ],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"UCSTMT","name":"","addr":"(BAB)","loc":"d,234:7,234:9", - "exprsp": [ + {"type":"CSTMTUSER","name":"","addr":"(BAB)","loc":"d,234:7,234:9", + "nodesp": [ {"type":"PARSEREF","name":"m_process","addr":"(CAB)","loc":"d,234:10,234:19","dtypep":"UNLINKED","lhsp": [],"ftaskrefp": []}, - {"type":"TEXT","name":"","addr":"(DAB)","loc":"d,234:21,234:35","shortText":"->randstate("}, + {"type":"TEXT","name":"","addr":"(DAB)","loc":"d,234:21,234:35","text":"->randstate("}, {"type":"PARSEREF","name":"s","addr":"(EAB)","loc":"d,234:37,234:38","dtypep":"UNLINKED","lhsp": [],"ftaskrefp": []}, - {"type":"TEXT","name":"","addr":"(FAB)","loc":"d,234:40,234:44","shortText":");"} + {"type":"TEXT","name":"","addr":"(FAB)","loc":"d,234:40,234:44","text":");"} ]} ],"scopeNamep": []} ],"extendsp": []}, diff --git a/test_regress/t/t_json_only_debugcheck.out b/test_regress/t/t_json_only_debugcheck.out index 0e4a5cbef..3730874f3 100644 --- a/test_regress/t/t_json_only_debugcheck.out +++ b/test_regress/t/t_json_only_debugcheck.out @@ -900,16 +900,16 @@ "lhsp": [ {"type":"VARREF","name":"__Vtrigprevexpr___TOP__clk__0","addr":"(RN)","loc":"d,63:22,63:25","dtypep":"(FB)","access":"WR","varp":"(N)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"TEXTBLOCK","name":"","addr":"(SN)","loc":"d,11:8,11:9","shortText":"", + {"type":"CSTMT","name":"","addr":"(SN)","loc":"d,11:8,11:9", "nodesp": [ - {"type":"TEXT","name":"","addr":"(TN)","loc":"d,11:8,11:9","shortText":"#ifdef VL_DEBUG..."}, - {"type":"TEXT","name":"","addr":"(UN)","loc":"d,11:8,11:9","shortText":"if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) {..."}, + {"type":"TEXT","name":"","addr":"(TN)","loc":"d,11:8,11:9","text":"#ifdef VL_DEBUG\n"}, + {"type":"TEXT","name":"","addr":"(UN)","loc":"d,11:8,11:9","text":"if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) {\n"}, {"type":"STMTEXPR","name":"","addr":"(VN)","loc":"a,0:0,0:0", "exprp": [ {"type":"CCALL","name":"","addr":"(WN)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_dump_triggers__act","funcp":"(XN)","argsp": []} ]}, - {"type":"TEXT","name":"","addr":"(YN)","loc":"d,11:8,11:9","shortText":"}..."}, - {"type":"TEXT","name":"","addr":"(ZN)","loc":"d,11:8,11:9","shortText":"#endif..."} + {"type":"TEXT","name":"","addr":"(YN)","loc":"d,11:8,11:9","text":"}\n"}, + {"type":"TEXT","name":"","addr":"(ZN)","loc":"d,11:8,11:9","text":"#endif"} ]} ],"finalsp": []}, {"type":"CFUNC","name":"_dump_triggers__act","addr":"(XN)","loc":"a,0:0,0:0","slow":true,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [],"initsp": [], @@ -932,8 +932,8 @@ ], "thensp": [ {"type":"CSTMT","name":"","addr":"(GO)","loc":"d,11:8,11:9", - "exprsp": [ - {"type":"TEXT","name":"","addr":"(HO)","loc":"d,11:8,11:9","shortText":"VL_DBG_MSGF(\" No triggers active\\n\");"} + "nodesp": [ + {"type":"TEXT","name":"","addr":"(HO)","loc":"d,11:8,11:9","text":"VL_DBG_MSGF(\" No triggers active\\n\");"} ]} ],"elsesp": []}, {"type":"IF","name":"","addr":"(IO)","loc":"d,11:8,11:9", @@ -953,344 +953,350 @@ ]} ], "thensp": [ - {"type":"TEXT","name":"","addr":"(QO)","loc":"d,11:8,11:9","shortText":"VL_DBG_MSGF(\" 'act' region trigger index 0 is active: @(posedge clk)\\n\");..."} + {"type":"CSTMT","name":"","addr":"(QO)","loc":"d,11:8,11:9", + "nodesp": [ + {"type":"TEXT","name":"","addr":"(RO)","loc":"d,11:8,11:9","text":"VL_DBG_MSGF(\" 'act' region trigger index 0 is active: @(posedge clk)\\n\");"} + ]} ],"elsesp": []} ],"finalsp": []}, - {"type":"CFUNC","name":"_dump_triggers__nba","addr":"(RO)","loc":"a,0:0,0:0","slow":true,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [],"initsp": [], + {"type":"CFUNC","name":"_dump_triggers__nba","addr":"(SO)","loc":"a,0:0,0:0","slow":true,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [],"initsp": [], "stmtsp": [ - {"type":"IF","name":"","addr":"(SO)","loc":"d,11:8,11:9", + {"type":"IF","name":"","addr":"(TO)","loc":"d,11:8,11:9", "condp": [ - {"type":"AND","name":"","addr":"(TO)","loc":"d,11:8,11:9","dtypep":"(FB)", + {"type":"AND","name":"","addr":"(UO)","loc":"d,11:8,11:9","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'h1","addr":"(UO)","loc":"d,11:8,11:9","dtypep":"(GC)"} + {"type":"CONST","name":"32'h1","addr":"(VO)","loc":"d,11:8,11:9","dtypep":"(GC)"} ], "rhsp": [ - {"type":"NOT","name":"","addr":"(VO)","loc":"d,11:8,11:9","dtypep":"(FB)", + {"type":"NOT","name":"","addr":"(WO)","loc":"d,11:8,11:9","dtypep":"(FB)", "lhsp": [ - {"type":"CMETHODHARD","name":"any","addr":"(WO)","loc":"d,11:8,11:9","dtypep":"(FB)", + {"type":"CMETHODHARD","name":"any","addr":"(XO)","loc":"d,11:8,11:9","dtypep":"(FB)", "fromp": [ - {"type":"VARREF","name":"__VnbaTriggered","addr":"(XO)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaTriggered","addr":"(YO)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"pinsp": []} ]} ]} ], "thensp": [ - {"type":"CSTMT","name":"","addr":"(YO)","loc":"d,11:8,11:9", - "exprsp": [ - {"type":"TEXT","name":"","addr":"(ZO)","loc":"d,11:8,11:9","shortText":"VL_DBG_MSGF(\" No triggers active\\n\");"} + {"type":"CSTMT","name":"","addr":"(ZO)","loc":"d,11:8,11:9", + "nodesp": [ + {"type":"TEXT","name":"","addr":"(AP)","loc":"d,11:8,11:9","text":"VL_DBG_MSGF(\" No triggers active\\n\");"} ]} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(AP)","loc":"d,11:8,11:9", + {"type":"IF","name":"","addr":"(BP)","loc":"d,11:8,11:9", "condp": [ - {"type":"AND","name":"","addr":"(BP)","loc":"d,11:8,11:9","dtypep":"(KO)", + {"type":"AND","name":"","addr":"(CP)","loc":"d,11:8,11:9","dtypep":"(KO)", "lhsp": [ - {"type":"CONST","name":"64'h1","addr":"(CP)","loc":"d,11:8,11:9","dtypep":"(KO)"} + {"type":"CONST","name":"64'h1","addr":"(DP)","loc":"d,11:8,11:9","dtypep":"(KO)"} ], "rhsp": [ - {"type":"CMETHODHARD","name":"word","addr":"(DP)","loc":"d,11:8,11:9","dtypep":"(NO)", + {"type":"CMETHODHARD","name":"word","addr":"(EP)","loc":"d,11:8,11:9","dtypep":"(NO)", "fromp": [ - {"type":"VARREF","name":"__VnbaTriggered","addr":"(EP)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaTriggered","addr":"(FP)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "pinsp": [ - {"type":"CONST","name":"32'h0","addr":"(FP)","loc":"d,11:8,11:9","dtypep":"(GC)"} + {"type":"CONST","name":"32'h0","addr":"(GP)","loc":"d,11:8,11:9","dtypep":"(GC)"} ]} ]} ], "thensp": [ - {"type":"TEXT","name":"","addr":"(GP)","loc":"d,11:8,11:9","shortText":"VL_DBG_MSGF(\" 'nba' region trigger index 0 is active: @(posedge clk)\\n\");..."} + {"type":"CSTMT","name":"","addr":"(HP)","loc":"d,11:8,11:9", + "nodesp": [ + {"type":"TEXT","name":"","addr":"(IP)","loc":"d,11:8,11:9","text":"VL_DBG_MSGF(\" 'nba' region trigger index 0 is active: @(posedge clk)\\n\");"} + ]} ],"elsesp": []} ],"finalsp": []}, - {"type":"CFUNC","name":"_eval_act","addr":"(HP)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [],"initsp": [],"stmtsp": [],"finalsp": []}, + {"type":"CFUNC","name":"_eval_act","addr":"(JP)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [],"initsp": [],"stmtsp": [],"finalsp": []}, {"type":"CFUNC","name":"_eval_nba","addr":"(G)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [],"initsp": [], "stmtsp": [ - {"type":"IF","name":"","addr":"(IP)","loc":"d,11:8,11:9", + {"type":"IF","name":"","addr":"(KP)","loc":"d,11:8,11:9", "condp": [ - {"type":"AND","name":"","addr":"(JP)","loc":"d,11:8,11:9","dtypep":"(KO)", + {"type":"AND","name":"","addr":"(LP)","loc":"d,11:8,11:9","dtypep":"(KO)", "lhsp": [ - {"type":"CONST","name":"64'h1","addr":"(KP)","loc":"d,11:8,11:9","dtypep":"(KO)"} + {"type":"CONST","name":"64'h1","addr":"(MP)","loc":"d,11:8,11:9","dtypep":"(KO)"} ], "rhsp": [ - {"type":"CMETHODHARD","name":"word","addr":"(LP)","loc":"d,11:8,11:9","dtypep":"(NO)", + {"type":"CMETHODHARD","name":"word","addr":"(NP)","loc":"d,11:8,11:9","dtypep":"(NO)", "fromp": [ - {"type":"VARREF","name":"__VnbaTriggered","addr":"(MP)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaTriggered","addr":"(OP)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "pinsp": [ - {"type":"CONST","name":"32'h0","addr":"(NP)","loc":"d,11:8,11:9","dtypep":"(GC)"} + {"type":"CONST","name":"32'h0","addr":"(PP)","loc":"d,11:8,11:9","dtypep":"(GC)"} ]} ]} ], "thensp": [ - {"type":"STMTEXPR","name":"","addr":"(OP)","loc":"d,23:17,23:20", + {"type":"STMTEXPR","name":"","addr":"(QP)","loc":"d,23:17,23:20", "exprp": [ - {"type":"CCALL","name":"","addr":"(PP)","loc":"d,23:17,23:20","dtypep":"(CB)","funcName":"_nba_sequent__TOP__0","funcp":"(QP)","argsp": []} + {"type":"CCALL","name":"","addr":"(RP)","loc":"d,23:17,23:20","dtypep":"(CB)","funcName":"_nba_sequent__TOP__0","funcp":"(SP)","argsp": []} ]} ],"elsesp": []} ],"finalsp": []}, - {"type":"CFUNC","name":"_nba_sequent__TOP__0","addr":"(QP)","loc":"d,23:17,23:20","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], + {"type":"CFUNC","name":"_nba_sequent__TOP__0","addr":"(SP)","loc":"d,23:17,23:20","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], "initsp": [ - {"type":"VAR","name":"__Vdly__t.cyc","addr":"(RP)","loc":"d,23:17,23:20","dtypep":"(R)","origName":"__Vdly__t__DOT__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":true,"lifetime":"NONE","varType":"BLOCKTEMP","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":"CRESET","name":"","addr":"(SP)","loc":"d,23:17,23:20","constructing":true, + {"type":"VAR","name":"__Vdly__t.cyc","addr":"(TP)","loc":"d,23:17,23:20","dtypep":"(R)","origName":"__Vdly__t__DOT__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":true,"lifetime":"NONE","varType":"BLOCKTEMP","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":"CRESET","name":"","addr":"(UP)","loc":"d,23:17,23:20","constructing":true, "varrefp": [ - {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(TP)","loc":"d,23:17,23:20","dtypep":"(R)","access":"WR","varp":"(RP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(VP)","loc":"d,23:17,23:20","dtypep":"(R)","access":"WR","varp":"(TP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"VAR","name":"__Vdly__t.e","addr":"(UP)","loc":"d,24:9,24:10","dtypep":"(M)","origName":"__Vdly__t__DOT__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":true,"lifetime":"NONE","varType":"BLOCKTEMP","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":"CRESET","name":"","addr":"(VP)","loc":"d,24:9,24:10","constructing":true, + {"type":"VAR","name":"__Vdly__t.e","addr":"(WP)","loc":"d,24:9,24:10","dtypep":"(M)","origName":"__Vdly__t__DOT__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":true,"lifetime":"NONE","varType":"BLOCKTEMP","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":"CRESET","name":"","addr":"(XP)","loc":"d,24:9,24:10","constructing":true, "varrefp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(WP)","loc":"d,24:9,24:10","dtypep":"(M)","access":"WR","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(YP)","loc":"d,24:9,24:10","dtypep":"(M)","access":"WR","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"VAR","name":"__Vtemp_1","addr":"(XP)","loc":"d,70:123,70:124","dtypep":"(RB)","origName":"__Vtemp_1","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":"STMTTEMP","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":"__Vtemp_2","addr":"(YP)","loc":"d,80:123,80:124","dtypep":"(RB)","origName":"__Vtemp_2","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":"STMTTEMP","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":"__Vtemp_3","addr":"(ZP)","loc":"d,90:123,90:124","dtypep":"(RB)","origName":"__Vtemp_3","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":"STMTTEMP","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":"__Vtemp_1","addr":"(ZP)","loc":"d,70:123,70:124","dtypep":"(RB)","origName":"__Vtemp_1","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":"STMTTEMP","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":"__Vtemp_2","addr":"(AQ)","loc":"d,80:123,80:124","dtypep":"(RB)","origName":"__Vtemp_2","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":"STMTTEMP","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":"__Vtemp_3","addr":"(BQ)","loc":"d,90:123,90:124","dtypep":"(RB)","origName":"__Vtemp_3","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":"STMTTEMP","dtypeName":"string","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []} ], "stmtsp": [ - {"type":"ASSIGN","name":"","addr":"(AQ)","loc":"d,23:17,23:20","dtypep":"(R)", + {"type":"ASSIGN","name":"","addr":"(CQ)","loc":"d,23:17,23:20","dtypep":"(R)", "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(BQ)","loc":"d,23:17,23:20","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(DQ)","loc":"d,23:17,23:20","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(CQ)","loc":"d,23:17,23:20","dtypep":"(R)","access":"WR","varp":"(RP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(EQ)","loc":"d,23:17,23:20","dtypep":"(R)","access":"WR","varp":"(TP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGN","name":"","addr":"(DQ)","loc":"d,24:9,24:10","dtypep":"(TB)", + {"type":"ASSIGN","name":"","addr":"(FQ)","loc":"d,24:9,24:10","dtypep":"(TB)", "rhsp": [ - {"type":"VARREF","name":"t.e","addr":"(EQ)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(GQ)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(FQ)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"WR","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(HQ)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"WR","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGNDLY","name":"","addr":"(GQ)","loc":"d,64:11,64:13","dtypep":"(R)", + {"type":"ASSIGNDLY","name":"","addr":"(IQ)","loc":"d,64:11,64:13","dtypep":"(R)", "rhsp": [ - {"type":"ADD","name":"","addr":"(HQ)","loc":"d,64:18,64:19","dtypep":"(R)", + {"type":"ADD","name":"","addr":"(JQ)","loc":"d,64:18,64:19","dtypep":"(R)", "lhsp": [ - {"type":"CCAST","name":"","addr":"(IQ)","loc":"d,64:20,64:21","dtypep":"(GC)","size":32, + {"type":"CCAST","name":"","addr":"(KQ)","loc":"d,64:20,64:21","dtypep":"(GC)","size":32, "lhsp": [ - {"type":"CONST","name":"32'sh1","addr":"(JQ)","loc":"d,64:20,64:21","dtypep":"(KB)"} + {"type":"CONST","name":"32'sh1","addr":"(LQ)","loc":"d,64:20,64:21","dtypep":"(KB)"} ]} ], "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(KQ)","loc":"d,64:14,64:17","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(MQ)","loc":"d,64:14,64:17","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(LQ)","loc":"d,64:7,64:10","dtypep":"(R)","access":"WR","varp":"(RP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(NQ)","loc":"d,64:7,64:10","dtypep":"(R)","access":"WR","varp":"(TP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"IF","name":"","addr":"(MQ)","loc":"d,65:7,65:9", + {"type":"IF","name":"","addr":"(OQ)","loc":"d,65:7,65:9", "condp": [ - {"type":"EQ","name":"","addr":"(NQ)","loc":"d,65:14,65:16","dtypep":"(FB)", + {"type":"EQ","name":"","addr":"(PQ)","loc":"d,65:14,65:16","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'sh0","addr":"(OQ)","loc":"d,65:16,65:17","dtypep":"(KB)"} + {"type":"CONST","name":"32'sh0","addr":"(QQ)","loc":"d,65:16,65:17","dtypep":"(KB)"} ], "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(PQ)","loc":"d,65:11,65:14","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(RQ)","loc":"d,65:11,65:14","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"ASSIGNDLY","name":"","addr":"(QQ)","loc":"d,67:12,67:14","dtypep":"(TB)", + {"type":"ASSIGNDLY","name":"","addr":"(SQ)","loc":"d,67:12,67:14","dtypep":"(TB)", "rhsp": [ - {"type":"CONST","name":"4'h1","addr":"(RQ)","loc":"d,67:15,67:18","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(TQ)","loc":"d,67:15,67:18","dtypep":"(TB)"} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(SQ)","loc":"d,67:10,67:11","dtypep":"(TB)","access":"WR","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(UQ)","loc":"d,67:10,67:11","dtypep":"(TB)","access":"WR","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ], "elsesp": [ - {"type":"IF","name":"","addr":"(TQ)","loc":"d,69:12,69:14", + {"type":"IF","name":"","addr":"(VQ)","loc":"d,69:12,69:14", "condp": [ - {"type":"EQ","name":"","addr":"(UQ)","loc":"d,69:19,69:21","dtypep":"(FB)", + {"type":"EQ","name":"","addr":"(WQ)","loc":"d,69:19,69:21","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'sh1","addr":"(VQ)","loc":"d,69:21,69:22","dtypep":"(KB)"} + {"type":"CONST","name":"32'sh1","addr":"(XQ)","loc":"d,69:21,69:22","dtypep":"(KB)"} ], "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(WQ)","loc":"d,69:16,69:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(YQ)","loc":"d,69:16,69:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"IF","name":"","addr":"(XQ)","loc":"d,70:13,70:15", + {"type":"IF","name":"","addr":"(ZQ)","loc":"d,70:13,70:15", "condp": [ - {"type":"NEQN","name":"","addr":"(YQ)","loc":"d,70:26,70:28","dtypep":"(FB)", + {"type":"NEQN","name":"","addr":"(AR)","loc":"d,70:26,70:28","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"\\\"E01\\\"","addr":"(ZQ)","loc":"d,70:30,70:35","dtypep":"(RB)"} + {"type":"CONST","name":"\\\"E01\\\"","addr":"(BR)","loc":"d,70:30,70:35","dtypep":"(RB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(AR)","loc":"d,70:18,70:19","dtypep":"(RB)", + {"type":"ARRAYSEL","name":"","addr":"(CR)","loc":"d,70:18,70:19","dtypep":"(RB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(BR)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(DR)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(CR)","loc":"d,70:18,70:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(ER)","loc":"d,70:18,70:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(DR)","loc":"d,70:18,70:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(FR)","loc":"d,70:18,70:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(ER)","loc":"d,70:18,70:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(GR)","loc":"d,70:18,70:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(FR)","loc":"d,70:18,70:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(HR)","loc":"d,70:18,70:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"ASSIGN","name":"","addr":"(GR)","loc":"d,70:123,70:124","dtypep":"(RB)", + {"type":"ASSIGN","name":"","addr":"(IR)","loc":"d,70:123,70:124","dtypep":"(RB)", "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(HR)","loc":"d,70:123,70:124","dtypep":"(RB)", + {"type":"ARRAYSEL","name":"","addr":"(JR)","loc":"d,70:123,70:124","dtypep":"(RB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(IR)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(KR)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(JR)","loc":"d,70:123,70:124","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(LR)","loc":"d,70:123,70:124","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(KR)","loc":"d,70:123,70:124","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(MR)","loc":"d,70:123,70:124","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(LR)","loc":"d,70:123,70:124","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(NR)","loc":"d,70:123,70:124","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(MR)","loc":"d,70:123,70:124","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(OR)","loc":"d,70:123,70:124","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ], "lhsp": [ - {"type":"VARREF","name":"__Vtemp_1","addr":"(NR)","loc":"d,70:123,70:124","dtypep":"(RB)","access":"WR","varp":"(XP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vtemp_1","addr":"(PR)","loc":"d,70:123,70:124","dtypep":"(RB)","access":"WR","varp":"(ZP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"DISPLAY","name":"","addr":"(OR)","loc":"d,70:44,70:50", + {"type":"DISPLAY","name":"","addr":"(QR)","loc":"d,70:44,70:50", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:70: got='%@' exp='E01'\\n","addr":"(PR)","loc":"d,70:44,70:50","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:70: got='%@' exp='E01'\\n","addr":"(RR)","loc":"d,70:44,70:50","dtypep":"(RB)", "exprsp": [ - {"type":"VARREF","name":"__Vtemp_1","addr":"(QR)","loc":"d,70:123,70:124","dtypep":"(RB)","access":"RD","varp":"(XP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vtemp_1","addr":"(SR)","loc":"d,70:123,70:124","dtypep":"(RB)","access":"RD","varp":"(ZP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(RR)","loc":"d,70:142,70:147","isFatal":false} + {"type":"STOP","name":"","addr":"(TR)","loc":"d,70:142,70:147","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(SR)","loc":"d,71:13,71:15", + {"type":"IF","name":"","addr":"(UR)","loc":"d,71:13,71:15", "condp": [ - {"type":"NEQ","name":"","addr":"(TR)","loc":"d,71:26,71:29","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(VR)","loc":"d,71:26,71:29","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h3","addr":"(UR)","loc":"d,71:31,71:34","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(WR)","loc":"d,71:31,71:34","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(VR)","loc":"d,71:18,71:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(XR)","loc":"d,71:18,71:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(WR)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(YR)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(XR)","loc":"d,71:18,71:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(ZR)","loc":"d,71:18,71:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(YR)","loc":"d,71:18,71:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(AS)","loc":"d,71:18,71:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(ZR)","loc":"d,71:18,71:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(BS)","loc":"d,71:18,71:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(AS)","loc":"d,71:18,71:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(CS)","loc":"d,71:18,71:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(BS)","loc":"d,71:43,71:49", + {"type":"DISPLAY","name":"","addr":"(DS)","loc":"d,71:43,71:49", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:71: got='h%x exp='h3\\n","addr":"(CS)","loc":"d,71:43,71:49","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:71: got='h%x exp='h3\\n","addr":"(ES)","loc":"d,71:43,71:49","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(DS)","loc":"d,71:122,71:123","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(FS)","loc":"d,71:122,71:123","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(ES)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(GS)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(FS)","loc":"d,71:122,71:123","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(HS)","loc":"d,71:122,71:123","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(GS)","loc":"d,71:122,71:123","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(IS)","loc":"d,71:122,71:123","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(HS)","loc":"d,71:122,71:123","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(JS)","loc":"d,71:122,71:123","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(IS)","loc":"d,71:122,71:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(KS)","loc":"d,71:122,71:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(JS)","loc":"d,71:139,71:144","isFatal":false} + {"type":"STOP","name":"","addr":"(LS)","loc":"d,71:139,71:144","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(KS)","loc":"d,72:13,72:15", + {"type":"IF","name":"","addr":"(MS)","loc":"d,72:13,72:15", "condp": [ - {"type":"NEQ","name":"","addr":"(LS)","loc":"d,72:29,72:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(NS)","loc":"d,72:29,72:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h3","addr":"(MS)","loc":"d,72:34,72:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(OS)","loc":"d,72:34,72:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(NS)","loc":"d,72:18,72:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(PS)","loc":"d,72:18,72:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(OS)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(QS)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(PS)","loc":"d,72:18,72:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(RS)","loc":"d,72:18,72:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(QS)","loc":"d,72:18,72:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(SS)","loc":"d,72:18,72:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(RS)","loc":"d,72:18,72:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(TS)","loc":"d,72:18,72:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(SS)","loc":"d,72:18,72:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(US)","loc":"d,72:18,72:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(TS)","loc":"d,72:46,72:52", + {"type":"DISPLAY","name":"","addr":"(VS)","loc":"d,72:46,72:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:72: got='h%x exp='h3\\n","addr":"(US)","loc":"d,72:46,72:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:72: got='h%x exp='h3\\n","addr":"(WS)","loc":"d,72:46,72:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(VS)","loc":"d,72:125,72:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(XS)","loc":"d,72:125,72:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(WS)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(YS)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(XS)","loc":"d,72:125,72:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(ZS)","loc":"d,72:125,72:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(YS)","loc":"d,72:125,72:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(AT)","loc":"d,72:125,72:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(ZS)","loc":"d,72:125,72:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(BT)","loc":"d,72:125,72:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(AT)","loc":"d,72:125,72:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(CT)","loc":"d,72:125,72:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(BT)","loc":"d,72:145,72:150","isFatal":false} + {"type":"STOP","name":"","addr":"(DT)","loc":"d,72:145,72:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(CT)","loc":"d,73:13,73:15", + {"type":"IF","name":"","addr":"(ET)","loc":"d,73:13,73:15", "condp": [ - {"type":"NEQ","name":"","addr":"(DT)","loc":"d,73:29,73:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(FT)","loc":"d,73:29,73:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h4","addr":"(ET)","loc":"d,73:34,73:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(GT)","loc":"d,73:34,73:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FT)","loc":"d,73:18,73:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(HT)","loc":"d,73:18,73:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(GT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(IT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HT)","loc":"d,73:18,73:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JT)","loc":"d,73:18,73:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IT)","loc":"d,73:18,73:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KT)","loc":"d,73:18,73:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(JT)","loc":"d,73:18,73:19","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(LT)","loc":"d,73:18,73:19","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(KT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(MT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(LT)","loc":"d,73:18,73:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(NT)","loc":"d,73:18,73:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(MT)","loc":"d,73:18,73:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(OT)","loc":"d,73:18,73:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(NT)","loc":"d,73:18,73:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(PT)","loc":"d,73:18,73:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(OT)","loc":"d,73:18,73:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(QT)","loc":"d,73:18,73:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1299,33 +1305,33 @@ ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(PT)","loc":"d,73:46,73:52", + {"type":"DISPLAY","name":"","addr":"(RT)","loc":"d,73:46,73:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:73: got='h%x exp='h4\\n","addr":"(QT)","loc":"d,73:46,73:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:73: got='h%x exp='h4\\n","addr":"(ST)","loc":"d,73:46,73:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(RT)","loc":"d,73:125,73:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(TT)","loc":"d,73:125,73:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(ST)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(UT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(TT)","loc":"d,73:125,73:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(VT)","loc":"d,73:125,73:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(UT)","loc":"d,73:125,73:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(WT)","loc":"d,73:125,73:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(VT)","loc":"d,73:125,73:126","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(XT)","loc":"d,73:125,73:126","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(WT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(YT)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(XT)","loc":"d,73:125,73:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(ZT)","loc":"d,73:125,73:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(YT)","loc":"d,73:125,73:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(AU)","loc":"d,73:125,73:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(ZT)","loc":"d,73:125,73:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(BU)","loc":"d,73:125,73:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(AU)","loc":"d,73:125,73:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(CU)","loc":"d,73:125,73:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1333,138 +1339,138 @@ ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(BU)","loc":"d,73:145,73:150","isFatal":false} + {"type":"STOP","name":"","addr":"(DU)","loc":"d,73:145,73:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(CU)","loc":"d,74:13,74:15", + {"type":"IF","name":"","addr":"(EU)","loc":"d,74:13,74:15", "condp": [ - {"type":"NEQ","name":"","addr":"(DU)","loc":"d,74:26,74:29","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(FU)","loc":"d,74:26,74:29","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h4","addr":"(EU)","loc":"d,74:31,74:34","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(GU)","loc":"d,74:31,74:34","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FU)","loc":"d,74:18,74:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(HU)","loc":"d,74:18,74:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(GU)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(IU)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HU)","loc":"d,74:18,74:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JU)","loc":"d,74:18,74:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IU)","loc":"d,74:18,74:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KU)","loc":"d,74:18,74:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(JU)","loc":"d,74:18,74:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(LU)","loc":"d,74:18,74:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(KU)","loc":"d,74:18,74:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(MU)","loc":"d,74:18,74:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(LU)","loc":"d,74:43,74:49", + {"type":"DISPLAY","name":"","addr":"(NU)","loc":"d,74:43,74:49", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:74: got='h%x exp='h4\\n","addr":"(MU)","loc":"d,74:43,74:49","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:74: got='h%x exp='h4\\n","addr":"(OU)","loc":"d,74:43,74:49","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(NU)","loc":"d,74:122,74:123","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(PU)","loc":"d,74:122,74:123","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(OU)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(QU)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(PU)","loc":"d,74:122,74:123","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(RU)","loc":"d,74:122,74:123","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(QU)","loc":"d,74:122,74:123","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(SU)","loc":"d,74:122,74:123","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(RU)","loc":"d,74:122,74:123","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(TU)","loc":"d,74:122,74:123","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(SU)","loc":"d,74:122,74:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(UU)","loc":"d,74:122,74:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(TU)","loc":"d,74:139,74:144","isFatal":false} + {"type":"STOP","name":"","addr":"(VU)","loc":"d,74:139,74:144","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(UU)","loc":"d,75:13,75:15", + {"type":"IF","name":"","addr":"(WU)","loc":"d,75:13,75:15", "condp": [ - {"type":"NEQ","name":"","addr":"(VU)","loc":"d,75:29,75:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(XU)","loc":"d,75:29,75:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h4","addr":"(WU)","loc":"d,75:34,75:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(YU)","loc":"d,75:34,75:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(XU)","loc":"d,75:18,75:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(ZU)","loc":"d,75:18,75:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(YU)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(AV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(ZU)","loc":"d,75:18,75:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(BV)","loc":"d,75:18,75:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(AV)","loc":"d,75:18,75:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(CV)","loc":"d,75:18,75:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(BV)","loc":"d,75:18,75:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(DV)","loc":"d,75:18,75:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(CV)","loc":"d,75:18,75:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(EV)","loc":"d,75:18,75:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(DV)","loc":"d,75:46,75:52", + {"type":"DISPLAY","name":"","addr":"(FV)","loc":"d,75:46,75:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:75: got='h%x exp='h4\\n","addr":"(EV)","loc":"d,75:46,75:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:75: got='h%x exp='h4\\n","addr":"(GV)","loc":"d,75:46,75:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FV)","loc":"d,75:125,75:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(HV)","loc":"d,75:125,75:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(GV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(IV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HV)","loc":"d,75:125,75:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JV)","loc":"d,75:125,75:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IV)","loc":"d,75:125,75:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KV)","loc":"d,75:125,75:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(JV)","loc":"d,75:125,75:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(LV)","loc":"d,75:125,75:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(KV)","loc":"d,75:125,75:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(MV)","loc":"d,75:125,75:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(LV)","loc":"d,75:145,75:150","isFatal":false} + {"type":"STOP","name":"","addr":"(NV)","loc":"d,75:145,75:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(MV)","loc":"d,76:13,76:15", + {"type":"IF","name":"","addr":"(OV)","loc":"d,76:13,76:15", "condp": [ - {"type":"NEQ","name":"","addr":"(NV)","loc":"d,76:29,76:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(PV)","loc":"d,76:29,76:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h3","addr":"(OV)","loc":"d,76:34,76:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(QV)","loc":"d,76:34,76:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(PV)","loc":"d,76:18,76:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(RV)","loc":"d,76:18,76:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(QV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(SV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(RV)","loc":"d,76:18,76:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(TV)","loc":"d,76:18,76:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(SV)","loc":"d,76:18,76:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(UV)","loc":"d,76:18,76:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(TV)","loc":"d,76:18,76:19","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(VV)","loc":"d,76:18,76:19","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(UV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(WV)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(VV)","loc":"d,76:18,76:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(XV)","loc":"d,76:18,76:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(WV)","loc":"d,76:18,76:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(YV)","loc":"d,76:18,76:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(XV)","loc":"d,76:18,76:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(ZV)","loc":"d,76:18,76:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(YV)","loc":"d,76:18,76:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(AW)","loc":"d,76:18,76:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1473,33 +1479,33 @@ ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(ZV)","loc":"d,76:46,76:52", + {"type":"DISPLAY","name":"","addr":"(BW)","loc":"d,76:46,76:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:76: got='h%x exp='h3\\n","addr":"(AW)","loc":"d,76:46,76:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:76: got='h%x exp='h3\\n","addr":"(CW)","loc":"d,76:46,76:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(BW)","loc":"d,76:125,76:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(DW)","loc":"d,76:125,76:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(CW)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(EW)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(DW)","loc":"d,76:125,76:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(FW)","loc":"d,76:125,76:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(EW)","loc":"d,76:125,76:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(GW)","loc":"d,76:125,76:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FW)","loc":"d,76:125,76:126","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(HW)","loc":"d,76:125,76:126","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(GW)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(IW)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HW)","loc":"d,76:125,76:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JW)","loc":"d,76:125,76:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IW)","loc":"d,76:125,76:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KW)","loc":"d,76:125,76:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(JW)","loc":"d,76:125,76:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(LW)","loc":"d,76:125,76:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(KW)","loc":"d,76:125,76:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(MW)","loc":"d,76:125,76:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1507,215 +1513,215 @@ ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(LW)","loc":"d,76:145,76:150","isFatal":false} + {"type":"STOP","name":"","addr":"(NW)","loc":"d,76:145,76:150","isFatal":false} ],"elsesp": []}, - {"type":"ASSIGNDLY","name":"","addr":"(MW)","loc":"d,77:12,77:14","dtypep":"(TB)", + {"type":"ASSIGNDLY","name":"","addr":"(OW)","loc":"d,77:12,77:14","dtypep":"(TB)", "rhsp": [ - {"type":"CONST","name":"4'h3","addr":"(NW)","loc":"d,77:15,77:18","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(PW)","loc":"d,77:15,77:18","dtypep":"(TB)"} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(OW)","loc":"d,77:10,77:11","dtypep":"(TB)","access":"WR","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(QW)","loc":"d,77:10,77:11","dtypep":"(TB)","access":"WR","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ], "elsesp": [ - {"type":"IF","name":"","addr":"(PW)","loc":"d,79:12,79:14", + {"type":"IF","name":"","addr":"(RW)","loc":"d,79:12,79:14", "condp": [ - {"type":"EQ","name":"","addr":"(QW)","loc":"d,79:19,79:21","dtypep":"(FB)", + {"type":"EQ","name":"","addr":"(SW)","loc":"d,79:19,79:21","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'sh2","addr":"(RW)","loc":"d,79:21,79:22","dtypep":"(KB)"} + {"type":"CONST","name":"32'sh2","addr":"(TW)","loc":"d,79:21,79:22","dtypep":"(KB)"} ], "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(SW)","loc":"d,79:16,79:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(UW)","loc":"d,79:16,79:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"IF","name":"","addr":"(TW)","loc":"d,80:13,80:15", + {"type":"IF","name":"","addr":"(VW)","loc":"d,80:13,80:15", "condp": [ - {"type":"NEQN","name":"","addr":"(UW)","loc":"d,80:26,80:28","dtypep":"(FB)", + {"type":"NEQN","name":"","addr":"(WW)","loc":"d,80:26,80:28","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"\\\"E03\\\"","addr":"(VW)","loc":"d,80:30,80:35","dtypep":"(RB)"} + {"type":"CONST","name":"\\\"E03\\\"","addr":"(XW)","loc":"d,80:30,80:35","dtypep":"(RB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(WW)","loc":"d,80:18,80:19","dtypep":"(RB)", + {"type":"ARRAYSEL","name":"","addr":"(YW)","loc":"d,80:18,80:19","dtypep":"(RB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(XW)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(ZW)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(YW)","loc":"d,80:18,80:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(AX)","loc":"d,80:18,80:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(ZW)","loc":"d,80:18,80:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(BX)","loc":"d,80:18,80:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(AX)","loc":"d,80:18,80:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(CX)","loc":"d,80:18,80:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(BX)","loc":"d,80:18,80:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(DX)","loc":"d,80:18,80:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"ASSIGN","name":"","addr":"(CX)","loc":"d,80:123,80:124","dtypep":"(RB)", + {"type":"ASSIGN","name":"","addr":"(EX)","loc":"d,80:123,80:124","dtypep":"(RB)", "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(DX)","loc":"d,80:123,80:124","dtypep":"(RB)", + {"type":"ARRAYSEL","name":"","addr":"(FX)","loc":"d,80:123,80:124","dtypep":"(RB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(EX)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(GX)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(FX)","loc":"d,80:123,80:124","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(HX)","loc":"d,80:123,80:124","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(GX)","loc":"d,80:123,80:124","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(IX)","loc":"d,80:123,80:124","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(HX)","loc":"d,80:123,80:124","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(JX)","loc":"d,80:123,80:124","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(IX)","loc":"d,80:123,80:124","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(KX)","loc":"d,80:123,80:124","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ], "lhsp": [ - {"type":"VARREF","name":"__Vtemp_2","addr":"(JX)","loc":"d,80:123,80:124","dtypep":"(RB)","access":"WR","varp":"(YP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vtemp_2","addr":"(LX)","loc":"d,80:123,80:124","dtypep":"(RB)","access":"WR","varp":"(AQ)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"DISPLAY","name":"","addr":"(KX)","loc":"d,80:44,80:50", + {"type":"DISPLAY","name":"","addr":"(MX)","loc":"d,80:44,80:50", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:80: got='%@' exp='E03'\\n","addr":"(LX)","loc":"d,80:44,80:50","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:80: got='%@' exp='E03'\\n","addr":"(NX)","loc":"d,80:44,80:50","dtypep":"(RB)", "exprsp": [ - {"type":"VARREF","name":"__Vtemp_2","addr":"(MX)","loc":"d,80:123,80:124","dtypep":"(RB)","access":"RD","varp":"(YP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vtemp_2","addr":"(OX)","loc":"d,80:123,80:124","dtypep":"(RB)","access":"RD","varp":"(AQ)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(NX)","loc":"d,80:142,80:147","isFatal":false} + {"type":"STOP","name":"","addr":"(PX)","loc":"d,80:142,80:147","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(OX)","loc":"d,81:13,81:15", + {"type":"IF","name":"","addr":"(QX)","loc":"d,81:13,81:15", "condp": [ - {"type":"NEQ","name":"","addr":"(PX)","loc":"d,81:26,81:29","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(RX)","loc":"d,81:26,81:29","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h4","addr":"(QX)","loc":"d,81:31,81:34","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(SX)","loc":"d,81:31,81:34","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(RX)","loc":"d,81:18,81:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(TX)","loc":"d,81:18,81:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(SX)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(UX)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(TX)","loc":"d,81:18,81:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(VX)","loc":"d,81:18,81:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(UX)","loc":"d,81:18,81:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(WX)","loc":"d,81:18,81:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(VX)","loc":"d,81:18,81:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(XX)","loc":"d,81:18,81:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(WX)","loc":"d,81:18,81:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(YX)","loc":"d,81:18,81:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(XX)","loc":"d,81:43,81:49", + {"type":"DISPLAY","name":"","addr":"(ZX)","loc":"d,81:43,81:49", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:81: got='h%x exp='h4\\n","addr":"(YX)","loc":"d,81:43,81:49","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:81: got='h%x exp='h4\\n","addr":"(AY)","loc":"d,81:43,81:49","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(ZX)","loc":"d,81:122,81:123","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(BY)","loc":"d,81:122,81:123","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(AY)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(CY)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(BY)","loc":"d,81:122,81:123","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(DY)","loc":"d,81:122,81:123","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(CY)","loc":"d,81:122,81:123","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(EY)","loc":"d,81:122,81:123","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(DY)","loc":"d,81:122,81:123","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(FY)","loc":"d,81:122,81:123","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(EY)","loc":"d,81:122,81:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(GY)","loc":"d,81:122,81:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(FY)","loc":"d,81:139,81:144","isFatal":false} + {"type":"STOP","name":"","addr":"(HY)","loc":"d,81:139,81:144","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(GY)","loc":"d,82:13,82:15", + {"type":"IF","name":"","addr":"(IY)","loc":"d,82:13,82:15", "condp": [ - {"type":"NEQ","name":"","addr":"(HY)","loc":"d,82:29,82:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(JY)","loc":"d,82:29,82:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h4","addr":"(IY)","loc":"d,82:34,82:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(KY)","loc":"d,82:34,82:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(JY)","loc":"d,82:18,82:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(LY)","loc":"d,82:18,82:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(KY)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(MY)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(LY)","loc":"d,82:18,82:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(NY)","loc":"d,82:18,82:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(MY)","loc":"d,82:18,82:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(OY)","loc":"d,82:18,82:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(NY)","loc":"d,82:18,82:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(PY)","loc":"d,82:18,82:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(OY)","loc":"d,82:18,82:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(QY)","loc":"d,82:18,82:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(PY)","loc":"d,82:46,82:52", + {"type":"DISPLAY","name":"","addr":"(RY)","loc":"d,82:46,82:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:82: got='h%x exp='h4\\n","addr":"(QY)","loc":"d,82:46,82:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:82: got='h%x exp='h4\\n","addr":"(SY)","loc":"d,82:46,82:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(RY)","loc":"d,82:125,82:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(TY)","loc":"d,82:125,82:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(SY)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(UY)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(TY)","loc":"d,82:125,82:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(VY)","loc":"d,82:125,82:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(UY)","loc":"d,82:125,82:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(WY)","loc":"d,82:125,82:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(VY)","loc":"d,82:125,82:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(XY)","loc":"d,82:125,82:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(WY)","loc":"d,82:125,82:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(YY)","loc":"d,82:125,82:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(XY)","loc":"d,82:145,82:150","isFatal":false} + {"type":"STOP","name":"","addr":"(ZY)","loc":"d,82:145,82:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(YY)","loc":"d,83:13,83:15", + {"type":"IF","name":"","addr":"(AZ)","loc":"d,83:13,83:15", "condp": [ - {"type":"NEQ","name":"","addr":"(ZY)","loc":"d,83:29,83:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(BZ)","loc":"d,83:29,83:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h1","addr":"(AZ)","loc":"d,83:34,83:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(CZ)","loc":"d,83:34,83:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(BZ)","loc":"d,83:18,83:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(DZ)","loc":"d,83:18,83:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(CZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(EZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(DZ)","loc":"d,83:18,83:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(FZ)","loc":"d,83:18,83:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(EZ)","loc":"d,83:18,83:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(GZ)","loc":"d,83:18,83:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FZ)","loc":"d,83:18,83:19","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(HZ)","loc":"d,83:18,83:19","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(GZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(IZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HZ)","loc":"d,83:18,83:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JZ)","loc":"d,83:18,83:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IZ)","loc":"d,83:18,83:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KZ)","loc":"d,83:18,83:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(JZ)","loc":"d,83:18,83:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(LZ)","loc":"d,83:18,83:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(KZ)","loc":"d,83:18,83:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(MZ)","loc":"d,83:18,83:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1724,33 +1730,33 @@ ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(LZ)","loc":"d,83:46,83:52", + {"type":"DISPLAY","name":"","addr":"(NZ)","loc":"d,83:46,83:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:83: got='h%x exp='h1\\n","addr":"(MZ)","loc":"d,83:46,83:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:83: got='h%x exp='h1\\n","addr":"(OZ)","loc":"d,83:46,83:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(NZ)","loc":"d,83:125,83:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(PZ)","loc":"d,83:125,83:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(OZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(QZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(PZ)","loc":"d,83:125,83:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(RZ)","loc":"d,83:125,83:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(QZ)","loc":"d,83:125,83:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(SZ)","loc":"d,83:125,83:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(RZ)","loc":"d,83:125,83:126","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(TZ)","loc":"d,83:125,83:126","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(SZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(UZ)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(TZ)","loc":"d,83:125,83:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(VZ)","loc":"d,83:125,83:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(UZ)","loc":"d,83:125,83:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(WZ)","loc":"d,83:125,83:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(VZ)","loc":"d,83:125,83:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(XZ)","loc":"d,83:125,83:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(WZ)","loc":"d,83:125,83:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(YZ)","loc":"d,83:125,83:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1758,138 +1764,138 @@ ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(XZ)","loc":"d,83:145,83:150","isFatal":false} + {"type":"STOP","name":"","addr":"(ZZ)","loc":"d,83:145,83:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(YZ)","loc":"d,84:13,84:15", + {"type":"IF","name":"","addr":"(AAB)","loc":"d,84:13,84:15", "condp": [ - {"type":"NEQ","name":"","addr":"(ZZ)","loc":"d,84:26,84:29","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(BAB)","loc":"d,84:26,84:29","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h1","addr":"(AAB)","loc":"d,84:31,84:34","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(CAB)","loc":"d,84:31,84:34","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(BAB)","loc":"d,84:18,84:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(DAB)","loc":"d,84:18,84:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(CAB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(EAB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(DAB)","loc":"d,84:18,84:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(FAB)","loc":"d,84:18,84:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(EAB)","loc":"d,84:18,84:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(GAB)","loc":"d,84:18,84:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(FAB)","loc":"d,84:18,84:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(HAB)","loc":"d,84:18,84:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(GAB)","loc":"d,84:18,84:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(IAB)","loc":"d,84:18,84:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(HAB)","loc":"d,84:43,84:49", + {"type":"DISPLAY","name":"","addr":"(JAB)","loc":"d,84:43,84:49", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:84: got='h%x exp='h1\\n","addr":"(IAB)","loc":"d,84:43,84:49","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:84: got='h%x exp='h1\\n","addr":"(KAB)","loc":"d,84:43,84:49","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(JAB)","loc":"d,84:122,84:123","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(LAB)","loc":"d,84:122,84:123","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(KAB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(MAB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(LAB)","loc":"d,84:122,84:123","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(NAB)","loc":"d,84:122,84:123","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(MAB)","loc":"d,84:122,84:123","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(OAB)","loc":"d,84:122,84:123","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(NAB)","loc":"d,84:122,84:123","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(PAB)","loc":"d,84:122,84:123","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(OAB)","loc":"d,84:122,84:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(QAB)","loc":"d,84:122,84:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(PAB)","loc":"d,84:139,84:144","isFatal":false} + {"type":"STOP","name":"","addr":"(RAB)","loc":"d,84:139,84:144","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(QAB)","loc":"d,85:13,85:15", + {"type":"IF","name":"","addr":"(SAB)","loc":"d,85:13,85:15", "condp": [ - {"type":"NEQ","name":"","addr":"(RAB)","loc":"d,85:29,85:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(TAB)","loc":"d,85:29,85:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h1","addr":"(SAB)","loc":"d,85:34,85:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(UAB)","loc":"d,85:34,85:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(TAB)","loc":"d,85:18,85:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(VAB)","loc":"d,85:18,85:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(UAB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(WAB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(VAB)","loc":"d,85:18,85:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(XAB)","loc":"d,85:18,85:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(WAB)","loc":"d,85:18,85:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(YAB)","loc":"d,85:18,85:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(XAB)","loc":"d,85:18,85:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(ZAB)","loc":"d,85:18,85:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(YAB)","loc":"d,85:18,85:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(ABB)","loc":"d,85:18,85:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(ZAB)","loc":"d,85:46,85:52", + {"type":"DISPLAY","name":"","addr":"(BBB)","loc":"d,85:46,85:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:85: got='h%x exp='h1\\n","addr":"(ABB)","loc":"d,85:46,85:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:85: got='h%x exp='h1\\n","addr":"(CBB)","loc":"d,85:46,85:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(BBB)","loc":"d,85:125,85:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(DBB)","loc":"d,85:125,85:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(CBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(EBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(DBB)","loc":"d,85:125,85:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(FBB)","loc":"d,85:125,85:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(EBB)","loc":"d,85:125,85:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(GBB)","loc":"d,85:125,85:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(FBB)","loc":"d,85:125,85:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(HBB)","loc":"d,85:125,85:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(GBB)","loc":"d,85:125,85:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(IBB)","loc":"d,85:125,85:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(HBB)","loc":"d,85:145,85:150","isFatal":false} + {"type":"STOP","name":"","addr":"(JBB)","loc":"d,85:145,85:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(IBB)","loc":"d,86:13,86:15", + {"type":"IF","name":"","addr":"(KBB)","loc":"d,86:13,86:15", "condp": [ - {"type":"NEQ","name":"","addr":"(JBB)","loc":"d,86:29,86:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(LBB)","loc":"d,86:29,86:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h4","addr":"(KBB)","loc":"d,86:34,86:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(MBB)","loc":"d,86:34,86:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(LBB)","loc":"d,86:18,86:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(NBB)","loc":"d,86:18,86:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(MBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(OBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(NBB)","loc":"d,86:18,86:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(PBB)","loc":"d,86:18,86:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(OBB)","loc":"d,86:18,86:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(QBB)","loc":"d,86:18,86:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(PBB)","loc":"d,86:18,86:19","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(RBB)","loc":"d,86:18,86:19","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(QBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(SBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(RBB)","loc":"d,86:18,86:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(TBB)","loc":"d,86:18,86:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(SBB)","loc":"d,86:18,86:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(UBB)","loc":"d,86:18,86:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(TBB)","loc":"d,86:18,86:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(VBB)","loc":"d,86:18,86:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(UBB)","loc":"d,86:18,86:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(WBB)","loc":"d,86:18,86:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1898,33 +1904,33 @@ ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(VBB)","loc":"d,86:46,86:52", + {"type":"DISPLAY","name":"","addr":"(XBB)","loc":"d,86:46,86:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:86: got='h%x exp='h4\\n","addr":"(WBB)","loc":"d,86:46,86:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:86: got='h%x exp='h4\\n","addr":"(YBB)","loc":"d,86:46,86:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(XBB)","loc":"d,86:125,86:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(ZBB)","loc":"d,86:125,86:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(YBB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(ACB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(ZBB)","loc":"d,86:125,86:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(BCB)","loc":"d,86:125,86:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(ACB)","loc":"d,86:125,86:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(CCB)","loc":"d,86:125,86:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(BCB)","loc":"d,86:125,86:126","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(DCB)","loc":"d,86:125,86:126","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(CCB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(ECB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(DCB)","loc":"d,86:125,86:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(FCB)","loc":"d,86:125,86:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(ECB)","loc":"d,86:125,86:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(GCB)","loc":"d,86:125,86:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(FCB)","loc":"d,86:125,86:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(HCB)","loc":"d,86:125,86:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(GCB)","loc":"d,86:125,86:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(ICB)","loc":"d,86:125,86:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -1932,215 +1938,215 @@ ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(HCB)","loc":"d,86:145,86:150","isFatal":false} + {"type":"STOP","name":"","addr":"(JCB)","loc":"d,86:145,86:150","isFatal":false} ],"elsesp": []}, - {"type":"ASSIGNDLY","name":"","addr":"(ICB)","loc":"d,87:12,87:14","dtypep":"(TB)", + {"type":"ASSIGNDLY","name":"","addr":"(KCB)","loc":"d,87:12,87:14","dtypep":"(TB)", "rhsp": [ - {"type":"CONST","name":"4'h4","addr":"(JCB)","loc":"d,87:15,87:18","dtypep":"(TB)"} + {"type":"CONST","name":"4'h4","addr":"(LCB)","loc":"d,87:15,87:18","dtypep":"(TB)"} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(KCB)","loc":"d,87:10,87:11","dtypep":"(TB)","access":"WR","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(MCB)","loc":"d,87:10,87:11","dtypep":"(TB)","access":"WR","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ], "elsesp": [ - {"type":"IF","name":"","addr":"(LCB)","loc":"d,89:12,89:14", + {"type":"IF","name":"","addr":"(NCB)","loc":"d,89:12,89:14", "condp": [ - {"type":"EQ","name":"","addr":"(MCB)","loc":"d,89:19,89:21","dtypep":"(FB)", + {"type":"EQ","name":"","addr":"(OCB)","loc":"d,89:19,89:21","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'sh3","addr":"(NCB)","loc":"d,89:21,89:22","dtypep":"(KB)"} + {"type":"CONST","name":"32'sh3","addr":"(PCB)","loc":"d,89:21,89:22","dtypep":"(KB)"} ], "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(OCB)","loc":"d,89:16,89:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(QCB)","loc":"d,89:16,89:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"IF","name":"","addr":"(PCB)","loc":"d,90:13,90:15", + {"type":"IF","name":"","addr":"(RCB)","loc":"d,90:13,90:15", "condp": [ - {"type":"NEQN","name":"","addr":"(QCB)","loc":"d,90:26,90:28","dtypep":"(FB)", + {"type":"NEQN","name":"","addr":"(SCB)","loc":"d,90:26,90:28","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"\\\"E04\\\"","addr":"(RCB)","loc":"d,90:30,90:35","dtypep":"(RB)"} + {"type":"CONST","name":"\\\"E04\\\"","addr":"(TCB)","loc":"d,90:30,90:35","dtypep":"(RB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(SCB)","loc":"d,90:18,90:19","dtypep":"(RB)", + {"type":"ARRAYSEL","name":"","addr":"(UCB)","loc":"d,90:18,90:19","dtypep":"(RB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(TCB)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(VCB)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(UCB)","loc":"d,90:18,90:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(WCB)","loc":"d,90:18,90:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(VCB)","loc":"d,90:18,90:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(XCB)","loc":"d,90:18,90:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(WCB)","loc":"d,90:18,90:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(YCB)","loc":"d,90:18,90:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(XCB)","loc":"d,90:18,90:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(ZCB)","loc":"d,90:18,90:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"ASSIGN","name":"","addr":"(YCB)","loc":"d,90:123,90:124","dtypep":"(RB)", + {"type":"ASSIGN","name":"","addr":"(ADB)","loc":"d,90:123,90:124","dtypep":"(RB)", "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(ZCB)","loc":"d,90:123,90:124","dtypep":"(RB)", + {"type":"ARRAYSEL","name":"","addr":"(BDB)","loc":"d,90:123,90:124","dtypep":"(RB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(ADB)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_name1","addr":"(CDB)","loc":"d,17:12,17:16","dtypep":"(HM)","access":"RD","varp":"(IM)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(BDB)","loc":"d,90:123,90:124","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(DDB)","loc":"d,90:123,90:124","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(CDB)","loc":"d,90:123,90:124","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(EDB)","loc":"d,90:123,90:124","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(DDB)","loc":"d,90:123,90:124","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(FDB)","loc":"d,90:123,90:124","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(EDB)","loc":"d,90:123,90:124","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(GDB)","loc":"d,90:123,90:124","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ], "lhsp": [ - {"type":"VARREF","name":"__Vtemp_3","addr":"(FDB)","loc":"d,90:123,90:124","dtypep":"(RB)","access":"WR","varp":"(ZP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vtemp_3","addr":"(HDB)","loc":"d,90:123,90:124","dtypep":"(RB)","access":"WR","varp":"(BQ)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"DISPLAY","name":"","addr":"(GDB)","loc":"d,90:44,90:50", + {"type":"DISPLAY","name":"","addr":"(IDB)","loc":"d,90:44,90:50", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:90: got='%@' exp='E04'\\n","addr":"(HDB)","loc":"d,90:44,90:50","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:90: got='%@' exp='E04'\\n","addr":"(JDB)","loc":"d,90:44,90:50","dtypep":"(RB)", "exprsp": [ - {"type":"VARREF","name":"__Vtemp_3","addr":"(IDB)","loc":"d,90:123,90:124","dtypep":"(RB)","access":"RD","varp":"(ZP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vtemp_3","addr":"(KDB)","loc":"d,90:123,90:124","dtypep":"(RB)","access":"RD","varp":"(BQ)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(JDB)","loc":"d,90:142,90:147","isFatal":false} + {"type":"STOP","name":"","addr":"(LDB)","loc":"d,90:142,90:147","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(KDB)","loc":"d,91:13,91:15", + {"type":"IF","name":"","addr":"(MDB)","loc":"d,91:13,91:15", "condp": [ - {"type":"NEQ","name":"","addr":"(LDB)","loc":"d,91:26,91:29","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(NDB)","loc":"d,91:26,91:29","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h1","addr":"(MDB)","loc":"d,91:31,91:34","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(ODB)","loc":"d,91:31,91:34","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(NDB)","loc":"d,91:18,91:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(PDB)","loc":"d,91:18,91:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(ODB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(QDB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(PDB)","loc":"d,91:18,91:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(RDB)","loc":"d,91:18,91:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(QDB)","loc":"d,91:18,91:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(SDB)","loc":"d,91:18,91:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(RDB)","loc":"d,91:18,91:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(TDB)","loc":"d,91:18,91:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(SDB)","loc":"d,91:18,91:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(UDB)","loc":"d,91:18,91:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(TDB)","loc":"d,91:43,91:49", + {"type":"DISPLAY","name":"","addr":"(VDB)","loc":"d,91:43,91:49", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:91: got='h%x exp='h1\\n","addr":"(UDB)","loc":"d,91:43,91:49","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:91: got='h%x exp='h1\\n","addr":"(WDB)","loc":"d,91:43,91:49","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(VDB)","loc":"d,91:122,91:123","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(XDB)","loc":"d,91:122,91:123","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(WDB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(YDB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(XDB)","loc":"d,91:122,91:123","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(ZDB)","loc":"d,91:122,91:123","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(YDB)","loc":"d,91:122,91:123","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(AEB)","loc":"d,91:122,91:123","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(ZDB)","loc":"d,91:122,91:123","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(BEB)","loc":"d,91:122,91:123","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(AEB)","loc":"d,91:122,91:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(CEB)","loc":"d,91:122,91:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(BEB)","loc":"d,91:139,91:144","isFatal":false} + {"type":"STOP","name":"","addr":"(DEB)","loc":"d,91:139,91:144","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(CEB)","loc":"d,92:13,92:15", + {"type":"IF","name":"","addr":"(EEB)","loc":"d,92:13,92:15", "condp": [ - {"type":"NEQ","name":"","addr":"(DEB)","loc":"d,92:29,92:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(FEB)","loc":"d,92:29,92:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h1","addr":"(EEB)","loc":"d,92:34,92:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(GEB)","loc":"d,92:34,92:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FEB)","loc":"d,92:18,92:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(HEB)","loc":"d,92:18,92:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(GEB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(IEB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HEB)","loc":"d,92:18,92:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JEB)","loc":"d,92:18,92:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IEB)","loc":"d,92:18,92:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KEB)","loc":"d,92:18,92:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(JEB)","loc":"d,92:18,92:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(LEB)","loc":"d,92:18,92:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(KEB)","loc":"d,92:18,92:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(MEB)","loc":"d,92:18,92:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(LEB)","loc":"d,92:46,92:52", + {"type":"DISPLAY","name":"","addr":"(NEB)","loc":"d,92:46,92:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:92: got='h%x exp='h1\\n","addr":"(MEB)","loc":"d,92:46,92:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:92: got='h%x exp='h1\\n","addr":"(OEB)","loc":"d,92:46,92:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(NEB)","loc":"d,92:125,92:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(PEB)","loc":"d,92:125,92:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(OEB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(QEB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(PEB)","loc":"d,92:125,92:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(REB)","loc":"d,92:125,92:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(QEB)","loc":"d,92:125,92:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(SEB)","loc":"d,92:125,92:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(REB)","loc":"d,92:125,92:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(TEB)","loc":"d,92:125,92:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(SEB)","loc":"d,92:125,92:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(UEB)","loc":"d,92:125,92:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(TEB)","loc":"d,92:145,92:150","isFatal":false} + {"type":"STOP","name":"","addr":"(VEB)","loc":"d,92:145,92:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(UEB)","loc":"d,93:13,93:15", + {"type":"IF","name":"","addr":"(WEB)","loc":"d,93:13,93:15", "condp": [ - {"type":"NEQ","name":"","addr":"(VEB)","loc":"d,93:29,93:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(XEB)","loc":"d,93:29,93:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h3","addr":"(WEB)","loc":"d,93:34,93:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(YEB)","loc":"d,93:34,93:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(XEB)","loc":"d,93:18,93:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(ZEB)","loc":"d,93:18,93:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(YEB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(AFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(ZEB)","loc":"d,93:18,93:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(BFB)","loc":"d,93:18,93:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(AFB)","loc":"d,93:18,93:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(CFB)","loc":"d,93:18,93:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(BFB)","loc":"d,93:18,93:19","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(DFB)","loc":"d,93:18,93:19","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(CFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(EFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(DFB)","loc":"d,93:18,93:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(FFB)","loc":"d,93:18,93:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(EFB)","loc":"d,93:18,93:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(GFB)","loc":"d,93:18,93:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(FFB)","loc":"d,93:18,93:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(HFB)","loc":"d,93:18,93:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(GFB)","loc":"d,93:18,93:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(IFB)","loc":"d,93:18,93:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -2149,33 +2155,33 @@ ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(HFB)","loc":"d,93:46,93:52", + {"type":"DISPLAY","name":"","addr":"(JFB)","loc":"d,93:46,93:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:93: got='h%x exp='h3\\n","addr":"(IFB)","loc":"d,93:46,93:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:93: got='h%x exp='h3\\n","addr":"(KFB)","loc":"d,93:46,93:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(JFB)","loc":"d,93:125,93:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(LFB)","loc":"d,93:125,93:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(KFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(MFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(LFB)","loc":"d,93:125,93:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(NFB)","loc":"d,93:125,93:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(MFB)","loc":"d,93:125,93:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(OFB)","loc":"d,93:125,93:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(NFB)","loc":"d,93:125,93:126","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(PFB)","loc":"d,93:125,93:126","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(OFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_next1","addr":"(QFB)","loc":"d,17:12,17:16","dtypep":"(BC)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(PFB)","loc":"d,93:125,93:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(RFB)","loc":"d,93:125,93:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(QFB)","loc":"d,93:125,93:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(SFB)","loc":"d,93:125,93:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(RFB)","loc":"d,93:125,93:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(TFB)","loc":"d,93:125,93:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(SFB)","loc":"d,93:125,93:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(UFB)","loc":"d,93:125,93:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -2183,138 +2189,138 @@ ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(TFB)","loc":"d,93:145,93:150","isFatal":false} + {"type":"STOP","name":"","addr":"(VFB)","loc":"d,93:145,93:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(UFB)","loc":"d,94:13,94:15", + {"type":"IF","name":"","addr":"(WFB)","loc":"d,94:13,94:15", "condp": [ - {"type":"NEQ","name":"","addr":"(VFB)","loc":"d,94:26,94:29","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(XFB)","loc":"d,94:26,94:29","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h3","addr":"(WFB)","loc":"d,94:31,94:34","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(YFB)","loc":"d,94:31,94:34","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(XFB)","loc":"d,94:18,94:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(ZFB)","loc":"d,94:18,94:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(YFB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(AGB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(ZFB)","loc":"d,94:18,94:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(BGB)","loc":"d,94:18,94:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(AGB)","loc":"d,94:18,94:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(CGB)","loc":"d,94:18,94:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(BGB)","loc":"d,94:18,94:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(DGB)","loc":"d,94:18,94:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(CGB)","loc":"d,94:18,94:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(EGB)","loc":"d,94:18,94:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(DGB)","loc":"d,94:43,94:49", + {"type":"DISPLAY","name":"","addr":"(FGB)","loc":"d,94:43,94:49", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:94: got='h%x exp='h3\\n","addr":"(EGB)","loc":"d,94:43,94:49","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:94: got='h%x exp='h3\\n","addr":"(GGB)","loc":"d,94:43,94:49","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(FGB)","loc":"d,94:122,94:123","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(HGB)","loc":"d,94:122,94:123","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(GGB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(IGB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(HGB)","loc":"d,94:122,94:123","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(JGB)","loc":"d,94:122,94:123","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(IGB)","loc":"d,94:122,94:123","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(KGB)","loc":"d,94:122,94:123","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(JGB)","loc":"d,94:122,94:123","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(LGB)","loc":"d,94:122,94:123","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(KGB)","loc":"d,94:122,94:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(MGB)","loc":"d,94:122,94:123","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(LGB)","loc":"d,94:139,94:144","isFatal":false} + {"type":"STOP","name":"","addr":"(NGB)","loc":"d,94:139,94:144","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(MGB)","loc":"d,95:13,95:15", + {"type":"IF","name":"","addr":"(OGB)","loc":"d,95:13,95:15", "condp": [ - {"type":"NEQ","name":"","addr":"(NGB)","loc":"d,95:29,95:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(PGB)","loc":"d,95:29,95:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h3","addr":"(OGB)","loc":"d,95:34,95:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h3","addr":"(QGB)","loc":"d,95:34,95:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(PGB)","loc":"d,95:18,95:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(RGB)","loc":"d,95:18,95:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(QGB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(SGB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(RGB)","loc":"d,95:18,95:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(TGB)","loc":"d,95:18,95:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(SGB)","loc":"d,95:18,95:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(UGB)","loc":"d,95:18,95:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(TGB)","loc":"d,95:18,95:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(VGB)","loc":"d,95:18,95:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(UGB)","loc":"d,95:18,95:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(WGB)","loc":"d,95:18,95:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(VGB)","loc":"d,95:46,95:52", + {"type":"DISPLAY","name":"","addr":"(XGB)","loc":"d,95:46,95:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:95: got='h%x exp='h3\\n","addr":"(WGB)","loc":"d,95:46,95:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:95: got='h%x exp='h3\\n","addr":"(YGB)","loc":"d,95:46,95:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(XGB)","loc":"d,95:125,95:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(ZGB)","loc":"d,95:125,95:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(YGB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(AHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(ZGB)","loc":"d,95:125,95:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(BHB)","loc":"d,95:125,95:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(AHB)","loc":"d,95:125,95:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(CHB)","loc":"d,95:125,95:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(BHB)","loc":"d,95:125,95:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(DHB)","loc":"d,95:125,95:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(CHB)","loc":"d,95:125,95:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(EHB)","loc":"d,95:125,95:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(DHB)","loc":"d,95:145,95:150","isFatal":false} + {"type":"STOP","name":"","addr":"(FHB)","loc":"d,95:145,95:150","isFatal":false} ],"elsesp": []}, - {"type":"IF","name":"","addr":"(EHB)","loc":"d,96:13,96:15", + {"type":"IF","name":"","addr":"(GHB)","loc":"d,96:13,96:15", "condp": [ - {"type":"NEQ","name":"","addr":"(FHB)","loc":"d,96:29,96:32","dtypep":"(FB)", + {"type":"NEQ","name":"","addr":"(HHB)","loc":"d,96:29,96:32","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"4'h1","addr":"(GHB)","loc":"d,96:34,96:37","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(IHB)","loc":"d,96:34,96:37","dtypep":"(TB)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(HHB)","loc":"d,96:18,96:19","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(JHB)","loc":"d,96:18,96:19","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(IHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(KHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(JHB)","loc":"d,96:18,96:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(LHB)","loc":"d,96:18,96:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(KHB)","loc":"d,96:18,96:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(MHB)","loc":"d,96:18,96:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(LHB)","loc":"d,96:18,96:19","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(NHB)","loc":"d,96:18,96:19","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(MHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(OHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(NHB)","loc":"d,96:18,96:19","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(PHB)","loc":"d,96:18,96:19","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(OHB)","loc":"d,96:18,96:19","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(QHB)","loc":"d,96:18,96:19","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(PHB)","loc":"d,96:18,96:19","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(RHB)","loc":"d,96:18,96:19","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(QHB)","loc":"d,96:18,96:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(SHB)","loc":"d,96:18,96:19","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -2323,33 +2329,33 @@ ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(RHB)","loc":"d,96:46,96:52", + {"type":"DISPLAY","name":"","addr":"(THB)","loc":"d,96:46,96:52", "fmtp": [ - {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:96: got='h%x exp='h1\\n","addr":"(SHB)","loc":"d,96:46,96:52","dtypep":"(RB)", + {"type":"SFORMATF","name":"%%Error: t/t_enum_type_methods.v:96: got='h%x exp='h1\\n","addr":"(UHB)","loc":"d,96:46,96:52","dtypep":"(RB)", "exprsp": [ - {"type":"ARRAYSEL","name":"","addr":"(THB)","loc":"d,96:125,96:126","dtypep":"(TB)", + {"type":"ARRAYSEL","name":"","addr":"(VHB)","loc":"d,96:125,96:126","dtypep":"(TB)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(UHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(WHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(VHB)","loc":"d,96:125,96:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(XHB)","loc":"d,96:125,96:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(WHB)","loc":"d,96:125,96:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(YHB)","loc":"d,96:125,96:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"ARRAYSEL","name":"","addr":"(XHB)","loc":"d,96:125,96:126","dtypep":"(EC)", + {"type":"ARRAYSEL","name":"","addr":"(ZHB)","loc":"d,96:125,96:126","dtypep":"(EC)", "fromp": [ - {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(YHB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Venumtab_enum_prev1","addr":"(AIB)","loc":"d,17:12,17:16","dtypep":"(VI)","access":"RD","varp":"(WI)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "bitp": [ - {"type":"AND","name":"","addr":"(ZHB)","loc":"d,96:125,96:126","dtypep":"(EC)", + {"type":"AND","name":"","addr":"(BIB)","loc":"d,96:125,96:126","dtypep":"(EC)", "lhsp": [ - {"type":"CONST","name":"32'h7","addr":"(AIB)","loc":"d,96:125,96:126","dtypep":"(GC)"} + {"type":"CONST","name":"32'h7","addr":"(CIB)","loc":"d,96:125,96:126","dtypep":"(GC)"} ], "rhsp": [ - {"type":"CCAST","name":"","addr":"(BIB)","loc":"d,96:125,96:126","dtypep":"(EC)","size":32, + {"type":"CCAST","name":"","addr":"(DIB)","loc":"d,96:125,96:126","dtypep":"(EC)","size":32, "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(CIB)","loc":"d,96:125,96:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(EIB)","loc":"d,96:125,96:126","dtypep":"(EC)","access":"RD","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]} ]} @@ -2357,259 +2363,257 @@ ]} ],"scopeNamep": []} ],"filep": []}, - {"type":"STOP","name":"","addr":"(DIB)","loc":"d,96:145,96:150","isFatal":false} + {"type":"STOP","name":"","addr":"(FIB)","loc":"d,96:145,96:150","isFatal":false} ],"elsesp": []}, - {"type":"ASSIGNDLY","name":"","addr":"(EIB)","loc":"d,97:12,97:14","dtypep":"(TB)", + {"type":"ASSIGNDLY","name":"","addr":"(GIB)","loc":"d,97:12,97:14","dtypep":"(TB)", "rhsp": [ - {"type":"CONST","name":"4'h1","addr":"(FIB)","loc":"d,97:15,97:18","dtypep":"(TB)"} + {"type":"CONST","name":"4'h1","addr":"(HIB)","loc":"d,97:15,97:18","dtypep":"(TB)"} ], "lhsp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(GIB)","loc":"d,97:10,97:11","dtypep":"(TB)","access":"WR","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(IIB)","loc":"d,97:10,97:11","dtypep":"(TB)","access":"WR","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ], "elsesp": [ - {"type":"IF","name":"","addr":"(HIB)","loc":"d,99:12,99:14", + {"type":"IF","name":"","addr":"(JIB)","loc":"d,99:12,99:14", "condp": [ - {"type":"EQ","name":"","addr":"(IIB)","loc":"d,99:19,99:21","dtypep":"(FB)", + {"type":"EQ","name":"","addr":"(KIB)","loc":"d,99:19,99:21","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'sh63","addr":"(JIB)","loc":"d,99:21,99:23","dtypep":"(KB)"} + {"type":"CONST","name":"32'sh63","addr":"(LIB)","loc":"d,99:21,99:23","dtypep":"(KB)"} ], "rhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(KIB)","loc":"d,99:16,99:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(MIB)","loc":"d,99:16,99:19","dtypep":"(R)","access":"RD","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"DISPLAY","name":"","addr":"(LIB)","loc":"d,100:10,100:16", + {"type":"DISPLAY","name":"","addr":"(NIB)","loc":"d,100:10,100:16", "fmtp": [ - {"type":"SFORMATF","name":"*-* All Finished *-*\\n","addr":"(MIB)","loc":"d,100:10,100:16","dtypep":"(RB)","exprsp": [],"scopeNamep": []} + {"type":"SFORMATF","name":"*-* All Finished *-*\\n","addr":"(OIB)","loc":"d,100:10,100:16","dtypep":"(RB)","exprsp": [],"scopeNamep": []} ],"filep": []}, - {"type":"FINISH","name":"","addr":"(NIB)","loc":"d,101:10,101:17"} + {"type":"FINISH","name":"","addr":"(PIB)","loc":"d,101:10,101:17"} ],"elsesp": []} ]} ]} ]} ]}, - {"type":"ASSIGN","name":"","addr":"(OIB)","loc":"d,23:17,23:20","dtypep":"(R)", + {"type":"ASSIGN","name":"","addr":"(QIB)","loc":"d,23:17,23:20","dtypep":"(R)", "rhsp": [ - {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(PIB)","loc":"d,23:17,23:20","dtypep":"(R)","access":"RD","varp":"(RP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.cyc","addr":"(RIB)","loc":"d,23:17,23:20","dtypep":"(R)","access":"RD","varp":"(TP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cyc","addr":"(QIB)","loc":"d,23:17,23:20","dtypep":"(R)","access":"WR","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cyc","addr":"(SIB)","loc":"d,23:17,23:20","dtypep":"(R)","access":"WR","varp":"(Q)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGN","name":"","addr":"(RIB)","loc":"d,24:9,24:10","dtypep":"(TB)", + {"type":"ASSIGN","name":"","addr":"(TIB)","loc":"d,24:9,24:10","dtypep":"(TB)", "rhsp": [ - {"type":"VARREF","name":"__Vdly__t.e","addr":"(SIB)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"RD","varp":"(UP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__Vdly__t.e","addr":"(UIB)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"RD","varp":"(WP)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.e","addr":"(TIB)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"WR","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.e","addr":"(VIB)","loc":"d,24:9,24:10","dtypep":"(TB)","access":"WR","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ],"finalsp": []}, - {"type":"CFUNC","name":"_eval_phase__act","addr":"(UIB)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], + {"type":"CFUNC","name":"_eval_phase__act","addr":"(WIB)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], "initsp": [ - {"type":"VAR","name":"__VpreTriggered","addr":"(VIB)","loc":"d,11:8,11:9","dtypep":"(V)","origName":"__VpreTriggered","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":true,"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":"__VactExecute","addr":"(WIB)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VactExecute","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":true,"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":"__VpreTriggered","addr":"(XIB)","loc":"d,11:8,11:9","dtypep":"(V)","origName":"__VpreTriggered","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":true,"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":"__VactExecute","addr":"(YIB)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VactExecute","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":true,"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": []} ], "stmtsp": [ - {"type":"STMTEXPR","name":"","addr":"(XIB)","loc":"a,0:0,0:0", + {"type":"STMTEXPR","name":"","addr":"(ZIB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CCALL","name":"","addr":"(YIB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_eval_triggers__act","funcp":"(EN)","argsp": []} + {"type":"CCALL","name":"","addr":"(AJB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_eval_triggers__act","funcp":"(EN)","argsp": []} ]}, - {"type":"ASSIGN","name":"","addr":"(ZIB)","loc":"a,0:0,0:0","dtypep":"(FB)", + {"type":"ASSIGN","name":"","addr":"(BJB)","loc":"a,0:0,0:0","dtypep":"(FB)", "rhsp": [ - {"type":"CMETHODHARD","name":"any","addr":"(AJB)","loc":"a,0:0,0:0","dtypep":"(FB)", + {"type":"CMETHODHARD","name":"any","addr":"(CJB)","loc":"a,0:0,0:0","dtypep":"(FB)", "fromp": [ - {"type":"VARREF","name":"__VactTriggered","addr":"(BJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactTriggered","addr":"(DJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"pinsp": []} ], "lhsp": [ - {"type":"VARREF","name":"__VactExecute","addr":"(CJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(WIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactExecute","addr":"(EJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(YIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"IF","name":"","addr":"(DJB)","loc":"a,0:0,0:0", + {"type":"IF","name":"","addr":"(FJB)","loc":"a,0:0,0:0", "condp": [ - {"type":"VARREF","name":"__VactExecute","addr":"(EJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(WIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactExecute","addr":"(GJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(YIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "thensp": [ - {"type":"STMTEXPR","name":"","addr":"(FJB)","loc":"a,0:0,0:0", + {"type":"STMTEXPR","name":"","addr":"(HJB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CMETHODHARD","name":"andNot","addr":"(GJB)","loc":"a,0:0,0:0","dtypep":"(CB)", + {"type":"CMETHODHARD","name":"andNot","addr":"(IJB)","loc":"a,0:0,0:0","dtypep":"(CB)", "fromp": [ - {"type":"VARREF","name":"__VpreTriggered","addr":"(HJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(VIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VpreTriggered","addr":"(JJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(XIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "pinsp": [ - {"type":"VARREF","name":"__VactTriggered","addr":"(IJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"}, - {"type":"VARREF","name":"__VnbaTriggered","addr":"(JJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactTriggered","addr":"(KJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"}, + {"type":"VARREF","name":"__VnbaTriggered","addr":"(LJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]}, - {"type":"STMTEXPR","name":"","addr":"(KJB)","loc":"a,0:0,0:0", + {"type":"STMTEXPR","name":"","addr":"(MJB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CMETHODHARD","name":"thisOr","addr":"(LJB)","loc":"a,0:0,0:0","dtypep":"(CB)", + {"type":"CMETHODHARD","name":"thisOr","addr":"(NJB)","loc":"a,0:0,0:0","dtypep":"(CB)", "fromp": [ - {"type":"VARREF","name":"__VnbaTriggered","addr":"(MJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaTriggered","addr":"(OJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "pinsp": [ - {"type":"VARREF","name":"__VactTriggered","addr":"(NJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactTriggered","addr":"(PJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ]}, - {"type":"STMTEXPR","name":"","addr":"(OJB)","loc":"a,0:0,0:0", + {"type":"STMTEXPR","name":"","addr":"(QJB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CCALL","name":"","addr":"(PJB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_eval_act","funcp":"(HP)","argsp": []} + {"type":"CCALL","name":"","addr":"(RJB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_eval_act","funcp":"(JP)","argsp": []} ]} ],"elsesp": []}, - {"type":"CRETURN","name":"","addr":"(QJB)","loc":"a,0:0,0:0", + {"type":"CRETURN","name":"","addr":"(SJB)","loc":"a,0:0,0:0", "lhsp": [ - {"type":"VARREF","name":"__VactExecute","addr":"(RJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(WIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactExecute","addr":"(TJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(YIB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ],"finalsp": []}, - {"type":"CFUNC","name":"_eval_phase__nba","addr":"(SJB)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], + {"type":"CFUNC","name":"_eval_phase__nba","addr":"(UJB)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], "initsp": [ - {"type":"VAR","name":"__VnbaExecute","addr":"(TJB)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VnbaExecute","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":true,"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":"__VnbaExecute","addr":"(VJB)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VnbaExecute","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":true,"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": []} ], "stmtsp": [ - {"type":"ASSIGN","name":"","addr":"(UJB)","loc":"a,0:0,0:0","dtypep":"(FB)", + {"type":"ASSIGN","name":"","addr":"(WJB)","loc":"a,0:0,0:0","dtypep":"(FB)", "rhsp": [ - {"type":"CMETHODHARD","name":"any","addr":"(VJB)","loc":"a,0:0,0:0","dtypep":"(FB)", + {"type":"CMETHODHARD","name":"any","addr":"(XJB)","loc":"a,0:0,0:0","dtypep":"(FB)", "fromp": [ - {"type":"VARREF","name":"__VnbaTriggered","addr":"(WJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaTriggered","addr":"(YJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"pinsp": []} ], "lhsp": [ - {"type":"VARREF","name":"__VnbaExecute","addr":"(XJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(TJB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaExecute","addr":"(ZJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(VJB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"IF","name":"","addr":"(YJB)","loc":"a,0:0,0:0", + {"type":"IF","name":"","addr":"(AKB)","loc":"a,0:0,0:0", "condp": [ - {"type":"VARREF","name":"__VnbaExecute","addr":"(ZJB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(TJB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaExecute","addr":"(BKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(VJB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "thensp": [ - {"type":"STMTEXPR","name":"","addr":"(AKB)","loc":"a,0:0,0:0", - "exprp": [ - {"type":"CCALL","name":"","addr":"(BKB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_eval_nba","funcp":"(G)","argsp": []} - ]}, {"type":"STMTEXPR","name":"","addr":"(CKB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CMETHODHARD","name":"clear","addr":"(DKB)","loc":"a,0:0,0:0","dtypep":"(CB)", + {"type":"CCALL","name":"","addr":"(DKB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_eval_nba","funcp":"(G)","argsp": []} + ]}, + {"type":"STMTEXPR","name":"","addr":"(EKB)","loc":"a,0:0,0:0", + "exprp": [ + {"type":"CMETHODHARD","name":"clear","addr":"(FKB)","loc":"a,0:0,0:0","dtypep":"(CB)", "fromp": [ - {"type":"VARREF","name":"__VnbaTriggered","addr":"(EKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaTriggered","addr":"(GKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"WR","varp":"(W)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"pinsp": []} ]} ],"elsesp": []}, - {"type":"CRETURN","name":"","addr":"(FKB)","loc":"a,0:0,0:0", + {"type":"CRETURN","name":"","addr":"(HKB)","loc":"a,0:0,0:0", "lhsp": [ - {"type":"VARREF","name":"__VnbaExecute","addr":"(GKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(TJB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaExecute","addr":"(IKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(VJB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ],"finalsp": []}, {"type":"CFUNC","name":"_eval","addr":"(F)","loc":"a,0:0,0:0","slow":false,"isStatic":false,"dpiExportDispatcher":false,"dpiExportImpl":false,"dpiImportPrototype":false,"dpiImportWrapper":false,"dpiContext":false,"isConstructor":false,"isDestructor":false,"isVirtual":false,"isCoroutine":false,"needProcess":false,"scopep":"(Y)","argsp": [], "initsp": [ - {"type":"VAR","name":"__VnbaIterCount","addr":"(HKB)","loc":"d,11:8,11:9","dtypep":"(T)","origName":"__VnbaIterCount","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":true,"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":"__VnbaContinue","addr":"(IKB)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VnbaContinue","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":true,"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":"__VnbaIterCount","addr":"(JKB)","loc":"d,11:8,11:9","dtypep":"(T)","origName":"__VnbaIterCount","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":true,"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":"__VnbaContinue","addr":"(KKB)","loc":"d,11:8,11:9","dtypep":"(P)","origName":"__VnbaContinue","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":true,"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": []} ], "stmtsp": [ - {"type":"ASSIGN","name":"","addr":"(JKB)","loc":"d,11:8,11:9","dtypep":"(T)", + {"type":"ASSIGN","name":"","addr":"(LKB)","loc":"d,11:8,11:9","dtypep":"(T)", "rhsp": [ - {"type":"CONST","name":"32'h0","addr":"(KKB)","loc":"d,11:8,11:9","dtypep":"(GC)"} + {"type":"CONST","name":"32'h0","addr":"(MKB)","loc":"d,11:8,11:9","dtypep":"(GC)"} ], "lhsp": [ - {"type":"VARREF","name":"__VnbaIterCount","addr":"(LKB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"WR","varp":"(HKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaIterCount","addr":"(NKB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"WR","varp":"(JKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGN","name":"","addr":"(MKB)","loc":"d,11:8,11:9","dtypep":"(FB)", + {"type":"ASSIGN","name":"","addr":"(OKB)","loc":"d,11:8,11:9","dtypep":"(FB)", "rhsp": [ - {"type":"CONST","name":"1'h1","addr":"(NKB)","loc":"d,11:8,11:9","dtypep":"(FB)"} + {"type":"CONST","name":"1'h1","addr":"(PKB)","loc":"d,11:8,11:9","dtypep":"(FB)"} ], "lhsp": [ - {"type":"VARREF","name":"__VnbaContinue","addr":"(OKB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(IKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaContinue","addr":"(QKB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(KKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"LOOP","name":"","addr":"(PKB)","loc":"a,0:0,0:0","unroll":"default", + {"type":"LOOP","name":"","addr":"(RKB)","loc":"a,0:0,0:0","unroll":"default", "stmtsp": [ - {"type":"LOOPTEST","name":"","addr":"(QKB)","loc":"a,0:0,0:0", + {"type":"LOOPTEST","name":"","addr":"(SKB)","loc":"a,0:0,0:0", "condp": [ - {"type":"VARREF","name":"__VnbaContinue","addr":"(RKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(IKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaContinue","addr":"(TKB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(KKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"IF","name":"","addr":"(SKB)","loc":"a,0:0,0:0", + {"type":"IF","name":"","addr":"(UKB)","loc":"a,0:0,0:0", "condp": [ - {"type":"LT","name":"","addr":"(TKB)","loc":"a,0:0,0:0","dtypep":"(FB)", + {"type":"LT","name":"","addr":"(VKB)","loc":"a,0:0,0:0","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'h64","addr":"(UKB)","loc":"a,0:0,0:0","dtypep":"(GC)"} + {"type":"CONST","name":"32'h64","addr":"(WKB)","loc":"a,0:0,0:0","dtypep":"(GC)"} ], "rhsp": [ - {"type":"VARREF","name":"__VnbaIterCount","addr":"(VKB)","loc":"a,0:0,0:0","dtypep":"(T)","access":"RD","varp":"(HKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaIterCount","addr":"(XKB)","loc":"a,0:0,0:0","dtypep":"(T)","access":"RD","varp":"(JKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"TEXTBLOCK","name":"","addr":"(WKB)","loc":"a,0:0,0:0","shortText":"", + {"type":"CSTMT","name":"","addr":"(YKB)","loc":"a,0:0,0:0", "nodesp": [ - {"type":"TEXT","name":"","addr":"(XKB)","loc":"a,0:0,0:0","shortText":"#ifdef VL_DEBUG..."}, - {"type":"STMTEXPR","name":"","addr":"(YKB)","loc":"a,0:0,0:0", + {"type":"TEXT","name":"","addr":"(ZKB)","loc":"a,0:0,0:0","text":"#ifdef VL_DEBUG\n"}, + {"type":"STMTEXPR","name":"","addr":"(ALB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CCALL","name":"","addr":"(ZKB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_dump_triggers__nba","funcp":"(RO)","argsp": []} + {"type":"CCALL","name":"","addr":"(BLB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_dump_triggers__nba","funcp":"(SO)","argsp": []} ]}, - {"type":"TEXT","name":"","addr":"(ALB)","loc":"a,0:0,0:0","shortText":"#endif..."}, - {"type":"TEXT","name":"","addr":"(BLB)","loc":"a,0:0,0:0","shortText":"VL_FATAL_MT(\"t/t_enum_type_methods.v\", 11, \"\", "}, - {"type":"TEXT","name":"","addr":"(CLB)","loc":"a,0:0,0:0","shortText":"\"NBA region did not converge.\");..."} + {"type":"TEXT","name":"","addr":"(CLB)","loc":"a,0:0,0:0","text":"#endif\n"}, + {"type":"TEXT","name":"","addr":"(DLB)","loc":"a,0:0,0:0","text":"VL_FATAL_MT(\"t/t_enum_type_methods.v\", 11, \"\", \"NBA region did not converge.\");"} ]} ],"elsesp": []}, - {"type":"ASSIGN","name":"","addr":"(DLB)","loc":"d,11:8,11:9","dtypep":"(T)", + {"type":"ASSIGN","name":"","addr":"(ELB)","loc":"d,11:8,11:9","dtypep":"(T)", "rhsp": [ - {"type":"ADD","name":"","addr":"(ELB)","loc":"d,11:8,11:9","dtypep":"(T)", + {"type":"ADD","name":"","addr":"(FLB)","loc":"d,11:8,11:9","dtypep":"(T)", "lhsp": [ - {"type":"CCAST","name":"","addr":"(FLB)","loc":"d,11:8,11:9","dtypep":"(GC)","size":32, + {"type":"CCAST","name":"","addr":"(GLB)","loc":"d,11:8,11:9","dtypep":"(GC)","size":32, "lhsp": [ - {"type":"CONST","name":"32'h1","addr":"(GLB)","loc":"d,11:8,11:9","dtypep":"(GC)"} + {"type":"CONST","name":"32'h1","addr":"(HLB)","loc":"d,11:8,11:9","dtypep":"(GC)"} ]} ], "rhsp": [ - {"type":"VARREF","name":"__VnbaIterCount","addr":"(HLB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"RD","varp":"(HKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaIterCount","addr":"(ILB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"RD","varp":"(JKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "lhsp": [ - {"type":"VARREF","name":"__VnbaIterCount","addr":"(ILB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"WR","varp":"(HKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaIterCount","addr":"(JLB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"WR","varp":"(JKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGN","name":"","addr":"(JLB)","loc":"d,11:8,11:9","dtypep":"(FB)", + {"type":"ASSIGN","name":"","addr":"(KLB)","loc":"d,11:8,11:9","dtypep":"(FB)", "rhsp": [ - {"type":"CONST","name":"1'h0","addr":"(KLB)","loc":"d,11:8,11:9","dtypep":"(FB)"} + {"type":"CONST","name":"1'h0","addr":"(LLB)","loc":"d,11:8,11:9","dtypep":"(FB)"} ], "lhsp": [ - {"type":"VARREF","name":"__VnbaContinue","addr":"(LLB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(IKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaContinue","addr":"(MLB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(KKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGN","name":"","addr":"(MLB)","loc":"d,11:8,11:9","dtypep":"(T)", + {"type":"ASSIGN","name":"","addr":"(NLB)","loc":"d,11:8,11:9","dtypep":"(T)", "rhsp": [ - {"type":"CONST","name":"32'h0","addr":"(NLB)","loc":"d,11:8,11:9","dtypep":"(GC)"} + {"type":"CONST","name":"32'h0","addr":"(OLB)","loc":"d,11:8,11:9","dtypep":"(GC)"} ], "lhsp": [ - {"type":"VARREF","name":"__VactIterCount","addr":"(OLB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"WR","varp":"(S)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactIterCount","addr":"(PLB)","loc":"d,11:8,11:9","dtypep":"(T)","access":"WR","varp":"(S)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"ASSIGN","name":"","addr":"(PLB)","loc":"d,11:8,11:9","dtypep":"(FB)", + {"type":"ASSIGN","name":"","addr":"(QLB)","loc":"d,11:8,11:9","dtypep":"(FB)", "rhsp": [ - {"type":"CONST","name":"1'h1","addr":"(QLB)","loc":"d,11:8,11:9","dtypep":"(FB)"} + {"type":"CONST","name":"1'h1","addr":"(RLB)","loc":"d,11:8,11:9","dtypep":"(FB)"} ], "lhsp": [ - {"type":"VARREF","name":"__VactContinue","addr":"(RLB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(O)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactContinue","addr":"(SLB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(O)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []}, - {"type":"LOOP","name":"","addr":"(SLB)","loc":"a,0:0,0:0","unroll":"default", + {"type":"LOOP","name":"","addr":"(TLB)","loc":"a,0:0,0:0","unroll":"default", "stmtsp": [ - {"type":"LOOPTEST","name":"","addr":"(TLB)","loc":"a,0:0,0:0", + {"type":"LOOPTEST","name":"","addr":"(ULB)","loc":"a,0:0,0:0", "condp": [ - {"type":"VARREF","name":"__VactContinue","addr":"(ULB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(O)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactContinue","addr":"(VLB)","loc":"a,0:0,0:0","dtypep":"(FB)","access":"RD","varp":"(O)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"IF","name":"","addr":"(VLB)","loc":"a,0:0,0:0", + {"type":"IF","name":"","addr":"(WLB)","loc":"a,0:0,0:0", "condp": [ - {"type":"LT","name":"","addr":"(WLB)","loc":"a,0:0,0:0","dtypep":"(FB)", + {"type":"LT","name":"","addr":"(XLB)","loc":"a,0:0,0:0","dtypep":"(FB)", "lhsp": [ - {"type":"CONST","name":"32'h64","addr":"(XLB)","loc":"a,0:0,0:0","dtypep":"(GC)"} + {"type":"CONST","name":"32'h64","addr":"(YLB)","loc":"a,0:0,0:0","dtypep":"(GC)"} ], "rhsp": [ - {"type":"VARREF","name":"__VactIterCount","addr":"(YLB)","loc":"a,0:0,0:0","dtypep":"(T)","access":"RD","varp":"(S)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VactIterCount","addr":"(ZLB)","loc":"a,0:0,0:0","dtypep":"(T)","access":"RD","varp":"(S)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ], "thensp": [ - {"type":"TEXTBLOCK","name":"","addr":"(ZLB)","loc":"a,0:0,0:0","shortText":"", + {"type":"CSTMT","name":"","addr":"(AMB)","loc":"a,0:0,0:0", "nodesp": [ - {"type":"TEXT","name":"","addr":"(AMB)","loc":"a,0:0,0:0","shortText":"#ifdef VL_DEBUG..."}, - {"type":"STMTEXPR","name":"","addr":"(BMB)","loc":"a,0:0,0:0", + {"type":"TEXT","name":"","addr":"(BMB)","loc":"a,0:0,0:0","text":"#ifdef VL_DEBUG\n"}, + {"type":"STMTEXPR","name":"","addr":"(CMB)","loc":"a,0:0,0:0", "exprp": [ - {"type":"CCALL","name":"","addr":"(CMB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_dump_triggers__act","funcp":"(XN)","argsp": []} + {"type":"CCALL","name":"","addr":"(DMB)","loc":"a,0:0,0:0","dtypep":"(CB)","funcName":"_dump_triggers__act","funcp":"(XN)","argsp": []} ]}, - {"type":"TEXT","name":"","addr":"(DMB)","loc":"a,0:0,0:0","shortText":"#endif..."}, - {"type":"TEXT","name":"","addr":"(EMB)","loc":"a,0:0,0:0","shortText":"VL_FATAL_MT(\"t/t_enum_type_methods.v\", 11, \"\", "}, - {"type":"TEXT","name":"","addr":"(FMB)","loc":"a,0:0,0:0","shortText":"\"Active region did not converge.\");..."} + {"type":"TEXT","name":"","addr":"(EMB)","loc":"a,0:0,0:0","text":"#endif\n"}, + {"type":"TEXT","name":"","addr":"(FMB)","loc":"a,0:0,0:0","text":"VL_FATAL_MT(\"t/t_enum_type_methods.v\", 11, \"\", \"Active region did not converge.\");"} ]} ],"elsesp": []}, {"type":"ASSIGN","name":"","addr":"(GMB)","loc":"d,11:8,11:9","dtypep":"(T)", @@ -2637,7 +2641,7 @@ ],"timingControlp": []}, {"type":"IF","name":"","addr":"(PMB)","loc":"a,0:0,0:0", "condp": [ - {"type":"CCALL","name":"","addr":"(QMB)","loc":"a,0:0,0:0","dtypep":"(FB)","funcName":"_eval_phase__act","funcp":"(UIB)","argsp": []} + {"type":"CCALL","name":"","addr":"(QMB)","loc":"a,0:0,0:0","dtypep":"(FB)","funcName":"_eval_phase__act","funcp":"(WIB)","argsp": []} ], "thensp": [ {"type":"ASSIGN","name":"","addr":"(RMB)","loc":"d,11:8,11:9","dtypep":"(FB)", @@ -2651,7 +2655,7 @@ ],"contsp": []}, {"type":"IF","name":"","addr":"(UMB)","loc":"a,0:0,0:0", "condp": [ - {"type":"CCALL","name":"","addr":"(VMB)","loc":"a,0:0,0:0","dtypep":"(FB)","funcName":"_eval_phase__nba","funcp":"(SJB)","argsp": []} + {"type":"CCALL","name":"","addr":"(VMB)","loc":"a,0:0,0:0","dtypep":"(FB)","funcName":"_eval_phase__nba","funcp":"(UJB)","argsp": []} ], "thensp": [ {"type":"ASSIGN","name":"","addr":"(WMB)","loc":"d,11:8,11:9","dtypep":"(FB)", @@ -2659,7 +2663,7 @@ {"type":"CONST","name":"1'h1","addr":"(XMB)","loc":"d,11:8,11:9","dtypep":"(FB)"} ], "lhsp": [ - {"type":"VARREF","name":"__VnbaContinue","addr":"(YMB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(IKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"__VnbaContinue","addr":"(YMB)","loc":"d,11:8,11:9","dtypep":"(FB)","access":"WR","varp":"(KKB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ],"elsesp": []} ],"contsp": []} @@ -2678,8 +2682,8 @@ ], "thensp": [ {"type":"CSTMT","name":"","addr":"(FNB)","loc":"d,15:10,15:13", - "exprsp": [ - {"type":"TEXT","name":"","addr":"(GNB)","loc":"d,15:10,15:13","shortText":"Verilated::overWidthError(\"clk\");"} + "nodesp": [ + {"type":"TEXT","name":"","addr":"(GNB)","loc":"d,15:10,15:13","text":"Verilated::overWidthError(\"clk\");"} ]} ],"elsesp": []} ],"finalsp": []}, diff --git a/test_regress/t/t_xml_debugcheck.out b/test_regress/t/t_xml_debugcheck.out index f55c97517..a88e4c707 100644 --- a/test_regress/t/t_xml_debugcheck.out +++ b/test_regress/t/t_xml_debugcheck.out @@ -540,7 +540,7 @@ - + @@ -548,7 +548,7 @@ - + @@ -575,7 +575,9 @@ - + + + @@ -604,7 +606,9 @@ - + + + @@ -1529,15 +1533,14 @@ - + - - + @@ -1572,15 +1575,14 @@ - + - - +