diff --git a/src/V3AstNodeExpr.h b/src/V3AstNodeExpr.h index 57e359e1c..a6ffed210 100644 --- a/src/V3AstNodeExpr.h +++ b/src/V3AstNodeExpr.h @@ -1038,6 +1038,7 @@ class AstConst final : public AstNodeExpr { } public: + ~AstConst() override; AstConst(FileLine* fl, const V3Number& num) : ASTGEN_SUPER_Const(fl) , m_num{num} { @@ -1159,17 +1160,21 @@ public: string name() const override VL_MT_STABLE { return num().ascii(); } // * = Value const V3Number& num() const VL_MT_SAFE { return m_num; } // * = Value V3Number& num() { return m_num; } // * = Value + string origParamName() const; + void origParamName(const string& name); uint32_t toUInt() const { return num().toUInt(); } int32_t toSInt() const VL_MT_SAFE { return num().toSInt(); } uint64_t toUQuad() const { return num().toUQuad(); } string emitVerilog() override { V3ERROR_NA_RETURN(""); } string emitC() override { V3ERROR_NA_RETURN(""); } bool cleanOut() const override { return true; } + void dump(std::ostream& str) const override; + void dumpJson(std::ostream& str) const override; bool sameNode(const AstNode* samep) const override { const AstConst* const sp = VN_DBG_AS(samep, Const); return num().isCaseEq(sp->num()); } - void cloneRelink() override { m_num.nodep(this); } + void cloneRelink() override; const char* broken() const override { BROKEN_RTN(m_num.nodep() && m_num.nodep() != this); return nullptr; diff --git a/src/V3AstNodeOther.h b/src/V3AstNodeOther.h index a4fdd5a89..5cffb9aea 100644 --- a/src/V3AstNodeOther.h +++ b/src/V3AstNodeOther.h @@ -28,6 +28,8 @@ #define VL_NOT_FINAL // This #define fixes broken code folding in the CLion IDE #endif +#include + // === Abstract base node types (AstNode*) ===================================== class AstNodeCoverDecl VL_NOT_FINAL : public AstNode { @@ -1276,6 +1278,9 @@ class AstNetlist final : public AstNode { VTimescale m_timeprecision; // Global time precision bool m_timescaleSpecified = false; // Input HDL specified timescale uint32_t m_nTraceCodes = 0; // Number of trace codes used by design + // Sparse metadata for constants produced from named parameters/localparams. Keep this off + // AstConst itself, as AstConst is a very common node and only a small fraction carry this name. + std::unordered_map m_constOrigParamNames; public: AstNetlist(); ASTGEN_MEMBERS_AstNetlist; @@ -1289,6 +1294,9 @@ public: } AstTypeTable* typeTablep() { return m_typeTablep; } AstConstPool* constPoolp() { return m_constPoolp; } + string astConstOrigParamName(const AstConst* nodep) const; + void astConstOrigParamName(const AstConst* nodep, const string& name); + void astConstOrigParamNameErase(const AstConst* nodep); AstPackage* dollarUnitPkgp() const { return m_dollarUnitPkgp; } AstPackage* dollarUnitPkgAddp(); AstCFunc* evalp() const { return m_evalp; } diff --git a/src/V3AstNodes.cpp b/src/V3AstNodes.cpp index d9fe6e00d..bae1172ee 100644 --- a/src/V3AstNodes.cpp +++ b/src/V3AstNodes.cpp @@ -543,6 +543,22 @@ AstNetlist::AstNetlist() addMiscsp(m_constPoolp); } +string AstNetlist::astConstOrigParamName(const AstConst* nodep) const { + if (!nodep->num().hasOrigParamName()) return ""; + const auto it = m_constOrigParamNames.find(nodep); + UASSERT_OBJ(it != m_constOrigParamNames.end(), nodep, "Missing originating parameter name"); + return it->second; +} + +void AstNetlist::astConstOrigParamName(const AstConst* nodep, const string& name) { + UASSERT(!name.empty(), "Empty originating parameter name"); + m_constOrigParamNames[nodep] = name; +} + +void AstNetlist::astConstOrigParamNameErase(const AstConst* nodep) { + m_constOrigParamNames.erase(nodep); +} + void AstNetlist::timeprecisionMerge(FileLine*, const VTimescale& value) { const VTimescale prec = v3Global.opt.timeComputePrec(value); if (prec.isNone() || prec == m_timeprecision) { @@ -1819,6 +1835,46 @@ string AstBasicDType::prettyDTypeName(bool) const { void AstNodeExpr::dump(std::ostream& str) const { this->AstNode::dump(str); } void AstNodeExpr::dumpJson(std::ostream& str) const { dumpJsonGen(str); } +AstConst::~AstConst() { + // Only rare constants carry originating parameter-name metadata. For all other AstConst nodes, + // the V3Number bit keeps this destructor from touching AstNetlist's side table. When the bit is + // set, erase the entry before this AstConst address can be reused by a different node. + if (m_num.hasOrigParamName()) v3Global.rootp()->astConstOrigParamNameErase(this); +} + +string AstConst::origParamName() const { + if (!m_num.hasOrigParamName()) return ""; + return v3Global.rootp()->astConstOrigParamName(this); +} + +void AstConst::origParamName(const string& name) { + UASSERT(!name.empty(), "Empty originating parameter name"); + v3Global.rootp()->astConstOrigParamName(this, name); + m_num.hasOrigParamName(true); +} + +void AstConst::cloneRelink() { + // Preserve parameter-origin metadata across AST clones; the side-table key must be this + // new AstConst, not the original node. + if (const AstConst* const oldp = clonep()) { + const string name = oldp->origParamName(); + m_num.hasOrigParamName(false); + if (!name.empty()) origParamName(name); + } + m_num.nodep(this); +} + +void AstConst::dump(std::ostream& str) const { + this->AstNodeExpr::dump(str); + const string name = origParamName(); + if (!name.empty()) str << " origParamName=" << name; +} +void AstConst::dumpJson(std::ostream& str) const { + const string name = origParamName(); + if (!name.empty()) dumpJsonStr(str, "origParamName", name); + dumpJsonGen(str); +} + bool AstNodeExpr::isLValue() const { if (const AstNodeVarRef* const varrefp = VN_CAST(this, NodeVarRef)) { return varrefp->access().isWriteOrRW(); diff --git a/src/V3Const.cpp b/src/V3Const.cpp index e8abc71dd..59236a2e9 100644 --- a/src/V3Const.cpp +++ b/src/V3Const.cpp @@ -1731,12 +1731,13 @@ class ConstVisitor final : public VNVisitor { // Constant Replacement functions. // These all take a node, delete its tree, and replaces it with a constant - void replaceNum(AstNode* oldp, const V3Number& num) { + void replaceNum(AstNode* oldp, const V3Number& num, const string& origParamName = "") { // Replace oldp node with a constant set to specified value UASSERT(oldp, "Null old"); UASSERT_OBJ(!(VN_IS(oldp, Const) && !VN_AS(oldp, Const)->num().isFourState()), oldp, "Already constant??"); - AstNode* const newp = new AstConst{oldp->fileline(), num}; + AstConst* const newp = new AstConst{oldp->fileline(), num}; + if (!origParamName.empty()) newp->origParamName(origParamName); oldp->replaceWithKeepDType(newp); UINFOTREE(6, oldp, "", "const_old"); UINFOTREE(6, newp, "", "_new"); @@ -3113,7 +3114,9 @@ class ConstVisitor final : public VNVisitor { if (operandConst(valuep)) { const V3Number& num = VN_AS(valuep, Const)->num(); // UINFO(2, "constVisit " << cvtToHex(valuep) << " " << num); - VL_DO_DANGLING(replaceNum(nodep, num), nodep); + const string origParamName + = nodep->varp()->isParam() ? nodep->varp()->name() : ""; + VL_DO_DANGLING(replaceNum(nodep, num, origParamName), nodep); did = true; } else if (m_selp && VN_IS(valuep, InitArray)) { const AstInitArray* const initarp = VN_AS(valuep, InitArray); diff --git a/src/V3Number.h b/src/V3Number.h index 2d0e0dcc3..6aa51cd54 100644 --- a/src/V3Number.h +++ b/src/V3Number.h @@ -134,6 +134,7 @@ public: bool m_isNull : 1; // True if "null" versus normal 0 bool m_fromString : 1; // True if from string literal bool m_autoExtend : 1; // True if SystemVerilog extend-to-any-width + bool m_hasOrigParamName : 1; // Owning AstConst has originating parameter-name metadata // CONSTRUCTORS V3NumberData() @@ -143,10 +144,13 @@ public: , m_is1Step{false} , m_isNull{false} , m_fromString{false} - , m_autoExtend{false} {} + , m_autoExtend{false} + , m_hasOrigParamName{false} {} ~V3NumberData() { destroyStoredValue(); } + // m_hasOrigParamName is ownership bookkeeping for an AstConst side-table entry, not part of + // the numeric value. Copies/moves of V3NumberData must not claim the destination has metadata. V3NumberData(const V3NumberData& other) : m_width{other.m_width} , m_type{other.m_type} @@ -155,7 +159,8 @@ public: , m_is1Step{other.m_is1Step} , m_isNull{other.m_isNull} , m_fromString{other.m_fromString} - , m_autoExtend{other.m_autoExtend} { + , m_autoExtend{other.m_autoExtend} + , m_hasOrigParamName{false} { if (other.isInlineNumber()) { initInlineNumber(other.m_inlineNumber); } else if (other.isDynamicNumber()) { @@ -195,7 +200,8 @@ public: , m_is1Step{other.m_is1Step} , m_isNull{other.m_isNull} , m_fromString{other.m_fromString} - , m_autoExtend{other.m_autoExtend} { + , m_autoExtend{other.m_autoExtend} + , m_hasOrigParamName{false} { if (other.isInlineNumber()) { initInlineNumber(other.m_inlineNumber); } else if (other.isDynamicNumber()) { @@ -648,6 +654,8 @@ public: bool sized() const VL_MT_SAFE { return m_data.m_sized; } bool autoExtend() const VL_MT_SAFE { return m_data.m_autoExtend; } bool isFromString() const { return m_data.m_fromString; } + bool hasOrigParamName() const { return m_data.m_hasOrigParamName; } + void hasOrigParamName(bool flag) { m_data.m_hasOrigParamName = flag; } V3NumberDataType dataType() const VL_MT_SAFE { return m_data.type(); } void dataType(V3NumberDataType newType) { if (dataType() == newType) return; diff --git a/test_regress/t/t_json_only_first.out b/test_regress/t/t_json_only_first.out index 16cb873d9..3406f81a0 100644 --- a/test_regress/t/t_json_only_first.out +++ b/test_regress/t/t_json_only_first.out @@ -6,83 +6,164 @@ {"type":"VAR","name":"clk","addr":"(H)","loc":"d,14:9,14:12","dtypep":"(I)","origName":"clk","verilogName":"clk","isPrimaryIO":true,"direction":"INPUT","isSigPublic":true,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"d","addr":"(J)","loc":"d,15:15,15:16","dtypep":"(G)","origName":"d","verilogName":"d","isPrimaryIO":true,"direction":"INPUT","isSigPublic":true,"lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"between","addr":"(K)","loc":"d,18:15,18:22","dtypep":"(G)","origName":"between","verilogName":"between","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"CELL","name":"cell1","addr":"(L)","loc":"d,22:5,22:10","origName":"cell1","verilogName":"cell1","modp":"(M)", + {"type":"VAR","name":"direct_named","addr":"(L)","loc":"d,19:9,19:21","dtypep":"(I)","origName":"direct_named","verilogName":"direct_named","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"computed_named","addr":"(M)","loc":"d,20:9,20:23","dtypep":"(I)","origName":"computed_named","verilogName":"computed_named","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"anonymous_expr","addr":"(N)","loc":"d,21:9,21:23","dtypep":"(I)","origName":"anonymous_expr","verilogName":"anonymous_expr","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"S_IDLE","addr":"(O)","loc":"d,23:26,23:32","dtypep":"(P)","origName":"S_IDLE","verilogName":"S_IDLE","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + "valuep": [ + {"type":"CONST","name":"2'h0","addr":"(Q)","loc":"d,23:35,23:40","dtypep":"(R)"} + ],"attrsp": []}, + {"type":"VAR","name":"S_FETCH","addr":"(S)","loc":"d,24:26,24:33","dtypep":"(P)","origName":"S_FETCH","verilogName":"S_FETCH","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + "valuep": [ + {"type":"CONST","name":"2'h1","addr":"(T)","loc":"d,24:36,24:41","dtypep":"(R)"} + ],"attrsp": []}, + {"type":"VAR","name":"S_EXEC","addr":"(U)","loc":"d,25:26,25:32","dtypep":"(P)","origName":"S_EXEC","verilogName":"S_EXEC","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + "valuep": [ + {"type":"CONST","name":"2'h2","addr":"(V)","loc":"d,25:43,25:44","dtypep":"(P)"} + ],"attrsp": []}, + {"type":"ALWAYS","name":"","addr":"(W)","loc":"d,27:23,27:24","keyword":"cont_assign","sentreep": [], + "stmtsp": [ + {"type":"ASSIGNW","name":"","addr":"(X)","loc":"d,27:23,27:24","dtypep":"(I)", + "rhsp": [ + {"type":"EQ","name":"","addr":"(Y)","loc":"d,27:32,27:34","dtypep":"(Z)", + "lhsp": [ + {"type":"CONST","name":"2'h0","addr":"(AB)","loc":"d,27:35,27:41","dtypep":"(P)","origParamName":"S_IDLE"} + ], + "rhsp": [ + {"type":"SEL","name":"","addr":"(BB)","loc":"d,27:26,27:27","dtypep":"(P)","widthConst":2,"declRange":"[3:0]","declElWidth":1, + "fromp": [ + {"type":"VARREF","name":"d","addr":"(CB)","loc":"d,27:25,27:26","dtypep":"(G)","access":"RD","varp":"(J)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + ], + "lsbp": [ + {"type":"CONST","name":"2'h0","addr":"(DB)","loc":"d,27:29,27:30","dtypep":"(EB)"} + ]} + ]} + ], + "lhsp": [ + {"type":"VARREF","name":"direct_named","addr":"(FB)","loc":"d,27:10,27:22","dtypep":"(I)","access":"WR","varp":"(L)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + ],"timingControlp": [],"strengthSpecp": []} + ]}, + {"type":"ALWAYS","name":"","addr":"(GB)","loc":"d,28:25,28:26","keyword":"cont_assign","sentreep": [], + "stmtsp": [ + {"type":"ASSIGNW","name":"","addr":"(HB)","loc":"d,28:25,28:26","dtypep":"(I)", + "rhsp": [ + {"type":"EQ","name":"","addr":"(IB)","loc":"d,28:34,28:36","dtypep":"(Z)", + "lhsp": [ + {"type":"CONST","name":"2'h2","addr":"(JB)","loc":"d,28:37,28:43","dtypep":"(P)","origParamName":"S_EXEC"} + ], + "rhsp": [ + {"type":"SEL","name":"","addr":"(KB)","loc":"d,28:28,28:29","dtypep":"(P)","widthConst":2,"declRange":"[3:0]","declElWidth":1, + "fromp": [ + {"type":"VARREF","name":"d","addr":"(LB)","loc":"d,28:27,28:28","dtypep":"(G)","access":"RD","varp":"(J)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + ], + "lsbp": [ + {"type":"CONST","name":"2'h0","addr":"(MB)","loc":"d,28:31,28:32","dtypep":"(EB)"} + ]} + ]} + ], + "lhsp": [ + {"type":"VARREF","name":"computed_named","addr":"(NB)","loc":"d,28:10,28:24","dtypep":"(I)","access":"WR","varp":"(M)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + ],"timingControlp": [],"strengthSpecp": []} + ]}, + {"type":"ALWAYS","name":"","addr":"(OB)","loc":"d,29:25,29:26","keyword":"cont_assign","sentreep": [], + "stmtsp": [ + {"type":"ASSIGNW","name":"","addr":"(PB)","loc":"d,29:25,29:26","dtypep":"(I)", + "rhsp": [ + {"type":"EQ","name":"","addr":"(QB)","loc":"d,29:34,29:36","dtypep":"(Z)", + "lhsp": [ + {"type":"CONST","name":"2'h2","addr":"(RB)","loc":"d,29:46,29:47","dtypep":"(R)"} + ], + "rhsp": [ + {"type":"SEL","name":"","addr":"(SB)","loc":"d,29:28,29:29","dtypep":"(P)","widthConst":2,"declRange":"[3:0]","declElWidth":1, + "fromp": [ + {"type":"VARREF","name":"d","addr":"(TB)","loc":"d,29:27,29:28","dtypep":"(G)","access":"RD","varp":"(J)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + ], + "lsbp": [ + {"type":"CONST","name":"2'h0","addr":"(UB)","loc":"d,29:31,29:32","dtypep":"(EB)"} + ]} + ]} + ], + "lhsp": [ + {"type":"VARREF","name":"anonymous_expr","addr":"(VB)","loc":"d,29:10,29:24","dtypep":"(I)","access":"WR","varp":"(N)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + ],"timingControlp": [],"strengthSpecp": []} + ]}, + {"type":"CELL","name":"cell1","addr":"(WB)","loc":"d,33:5,33:10","origName":"cell1","verilogName":"cell1","modp":"(XB)", "pinsp": [ - {"type":"PIN","name":"q","addr":"(N)","loc":"d,23:8,23:9","svDotName":true,"modVarp":"(O)","modPTypep":"UNLINKED", + {"type":"PIN","name":"q","addr":"(YB)","loc":"d,34:8,34:9","svDotName":true,"modVarp":"(ZB)","modPTypep":"UNLINKED", "exprp": [ - {"type":"VARREF","name":"between","addr":"(P)","loc":"d,23:10,23:17","dtypep":"(G)","access":"WR","varp":"(K)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"between","addr":"(AC)","loc":"d,34:10,34:17","dtypep":"(G)","access":"WR","varp":"(K)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"PIN","name":"clk","addr":"(Q)","loc":"d,24:8,24:11","svDotName":true,"modVarp":"(R)","modPTypep":"UNLINKED", + {"type":"PIN","name":"clk","addr":"(BC)","loc":"d,35:8,35:11","svDotName":true,"modVarp":"(CC)","modPTypep":"UNLINKED", "exprp": [ - {"type":"VARREF","name":"clk","addr":"(S)","loc":"d,24:12,24:15","dtypep":"(I)","access":"RD","varp":"(H)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(DC)","loc":"d,35:12,35:15","dtypep":"(I)","access":"RD","varp":"(H)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"PIN","name":"d","addr":"(T)","loc":"d,25:8,25:9","svDotName":true,"modVarp":"(U)","modPTypep":"UNLINKED", + {"type":"PIN","name":"d","addr":"(EC)","loc":"d,36:8,36:9","svDotName":true,"modVarp":"(FC)","modPTypep":"UNLINKED", "exprp": [ - {"type":"VARREF","name":"d","addr":"(V)","loc":"d,25:10,25:11","dtypep":"(G)","access":"RD","varp":"(J)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"d","addr":"(GC)","loc":"d,36:10,36:11","dtypep":"(G)","access":"RD","varp":"(J)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ],"paramsp": [],"rangep": [],"intfRefsp": []}, - {"type":"CELL","name":"cell2","addr":"(W)","loc":"d,28:8,28:13","origName":"cell2","verilogName":"cell2","modp":"(X)", + {"type":"CELL","name":"cell2","addr":"(HC)","loc":"d,39:8,39:13","origName":"cell2","verilogName":"cell2","modp":"(IC)", "pinsp": [ - {"type":"PIN","name":"d","addr":"(Y)","loc":"d,29:8,29:9","svDotName":true,"modVarp":"(Z)","modPTypep":"UNLINKED", + {"type":"PIN","name":"d","addr":"(JC)","loc":"d,40:8,40:9","svDotName":true,"modVarp":"(KC)","modPTypep":"UNLINKED", "exprp": [ - {"type":"VARREF","name":"between","addr":"(AB)","loc":"d,29:10,29:17","dtypep":"(G)","access":"RD","varp":"(K)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"between","addr":"(LC)","loc":"d,40:10,40:17","dtypep":"(G)","access":"RD","varp":"(K)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"PIN","name":"q","addr":"(BB)","loc":"d,30:8,30:9","svDotName":true,"modVarp":"(CB)","modPTypep":"UNLINKED", + {"type":"PIN","name":"q","addr":"(MC)","loc":"d,41:8,41:9","svDotName":true,"modVarp":"(NC)","modPTypep":"UNLINKED", "exprp": [ - {"type":"VARREF","name":"q","addr":"(DB)","loc":"d,30:10,30:11","dtypep":"(G)","access":"WR","varp":"(F)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"q","addr":"(OC)","loc":"d,41:10,41:11","dtypep":"(G)","access":"WR","varp":"(F)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]}, - {"type":"PIN","name":"clk","addr":"(EB)","loc":"d,31:8,31:11","svDotName":true,"modVarp":"(FB)","modPTypep":"UNLINKED", + {"type":"PIN","name":"clk","addr":"(PC)","loc":"d,42:8,42:11","svDotName":true,"modVarp":"(QC)","modPTypep":"UNLINKED", "exprp": [ - {"type":"VARREF","name":"clk","addr":"(GB)","loc":"d,31:12,31:15","dtypep":"(I)","access":"RD","varp":"(H)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(RC)","loc":"d,42:12,42:15","dtypep":"(I)","access":"RD","varp":"(H)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ]} ],"paramsp": [],"rangep": [],"intfRefsp": []} ]}, - {"type":"MODULE","name":"mod2","addr":"(X)","loc":"d,50:8,50:12","origName":"mod2","verilogName":"mod2","level":2,"timeunit":"1ps","inlinesp": [], + {"type":"MODULE","name":"mod2","addr":"(IC)","loc":"d,61:8,61:12","origName":"mod2","verilogName":"mod2","level":2,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"clk","addr":"(FB)","loc":"d,51:11,51:14","dtypep":"(I)","origName":"clk","verilogName":"clk","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"d","addr":"(Z)","loc":"d,52:17,52:18","dtypep":"(G)","origName":"d","verilogName":"d","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"q","addr":"(CB)","loc":"d,53:23,53:24","dtypep":"(G)","origName":"q","verilogName":"q","direction":"OUTPUT","lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"ALWAYS","name":"","addr":"(HB)","loc":"d,56:12,56:13","keyword":"cont_assign","sentreep": [], + {"type":"VAR","name":"clk","addr":"(QC)","loc":"d,62:11,62:14","dtypep":"(I)","origName":"clk","verilogName":"clk","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"d","addr":"(KC)","loc":"d,63:17,63:18","dtypep":"(G)","origName":"d","verilogName":"d","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"q","addr":"(NC)","loc":"d,64:23,64:24","dtypep":"(G)","origName":"q","verilogName":"q","direction":"OUTPUT","lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"ALWAYS","name":"","addr":"(SC)","loc":"d,67:12,67:13","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(IB)","loc":"d,56:12,56:13","dtypep":"(G)", + {"type":"ASSIGNW","name":"","addr":"(TC)","loc":"d,67:12,67:13","dtypep":"(G)", "rhsp": [ - {"type":"VARREF","name":"d","addr":"(JB)","loc":"d,56:14,56:15","dtypep":"(G)","access":"RD","varp":"(Z)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"d","addr":"(UC)","loc":"d,67:14,67:15","dtypep":"(G)","access":"RD","varp":"(KC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"q","addr":"(KB)","loc":"d,56:10,56:11","dtypep":"(G)","access":"WR","varp":"(CB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"q","addr":"(VC)","loc":"d,67:10,67:11","dtypep":"(G)","access":"WR","varp":"(NC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]} ]}, - {"type":"MODULE","name":"mod1__W4","addr":"(M)","loc":"d,36:8,36:12","origName":"mod1","verilogName":"mod1","level":2,"timeunit":"1ps","inlinesp": [], + {"type":"MODULE","name":"mod1__W4","addr":"(XB)","loc":"d,47:8,47:12","origName":"mod1","verilogName":"mod1","level":2,"timeunit":"1ps","inlinesp": [], "stmtsp": [ - {"type":"VAR","name":"WIDTH","addr":"(LB)","loc":"d,37:15,37:20","dtypep":"(MB)","origName":"WIDTH","verilogName":"WIDTH","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"GPARAM","dtypeName":"logic","isGParam":true,"isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"WIDTH","addr":"(WC)","loc":"d,48:15,48:20","dtypep":"(XC)","origName":"WIDTH","verilogName":"WIDTH","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"GPARAM","dtypeName":"logic","isGParam":true,"isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ - {"type":"CONST","name":"32'sh4","addr":"(NB)","loc":"d,21:14,21:15","dtypep":"(OB)"} + {"type":"CONST","name":"32'sh4","addr":"(YC)","loc":"d,32:14,32:15","dtypep":"(ZC)"} ],"attrsp": []}, - {"type":"VAR","name":"clk","addr":"(R)","loc":"d,39:11,39:14","dtypep":"(I)","origName":"clk","verilogName":"clk","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"d","addr":"(U)","loc":"d,40:23,40:24","dtypep":"(G)","origName":"d","verilogName":"d","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"q","addr":"(O)","loc":"d,41:30,41:31","dtypep":"(G)","origName":"q","verilogName":"q","direction":"OUTPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"IGNORED","addr":"(PB)","loc":"d,44:14,44:21","dtypep":"(MB)","origName":"IGNORED","verilogName":"IGNORED","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"clk","addr":"(CC)","loc":"d,50:11,50:14","dtypep":"(I)","origName":"clk","verilogName":"clk","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"d","addr":"(FC)","loc":"d,51:23,51:24","dtypep":"(G)","origName":"d","verilogName":"d","direction":"INPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"q","addr":"(ZB)","loc":"d,52:30,52:31","dtypep":"(G)","origName":"q","verilogName":"q","direction":"OUTPUT","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"IGNORED","addr":"(AD)","loc":"d,55:14,55:21","dtypep":"(XC)","origName":"IGNORED","verilogName":"IGNORED","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ - {"type":"CONST","name":"32'sh1","addr":"(QB)","loc":"d,44:24,44:25","dtypep":"(OB)"} + {"type":"CONST","name":"32'sh1","addr":"(BD)","loc":"d,55:24,55:25","dtypep":"(ZC)"} ],"attrsp": []}, - {"type":"ALWAYS","name":"","addr":"(RB)","loc":"d,46:3,46:9","keyword":"always", + {"type":"ALWAYS","name":"","addr":"(CD)","loc":"d,57:3,57:9","keyword":"always", "sentreep": [ - {"type":"SENTREE","name":"","addr":"(SB)","loc":"d,46:10,46:11", + {"type":"SENTREE","name":"","addr":"(DD)","loc":"d,57:10,57:11", "sensesp": [ - {"type":"SENITEM","name":"","addr":"(TB)","loc":"d,46:12,46:19","edgeType":"POS", + {"type":"SENITEM","name":"","addr":"(ED)","loc":"d,57:12,57:19","edgeType":"POS", "sensp": [ - {"type":"VARREF","name":"clk","addr":"(UB)","loc":"d,46:20,46:23","dtypep":"(I)","access":"RD","varp":"(R)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(FD)","loc":"d,57:20,57:23","dtypep":"(I)","access":"RD","varp":"(CC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"condp": []} ]} ], "stmtsp": [ - {"type":"ASSIGNDLY","name":"","addr":"(VB)","loc":"d,46:27,46:29","dtypep":"(G)", + {"type":"ASSIGNDLY","name":"","addr":"(GD)","loc":"d,57:27,57:29","dtypep":"(G)", "rhsp": [ - {"type":"VARREF","name":"d","addr":"(WB)","loc":"d,46:30,46:31","dtypep":"(G)","access":"RD","varp":"(U)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"d","addr":"(HD)","loc":"d,57:30,57:31","dtypep":"(G)","access":"RD","varp":"(FC)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"q","addr":"(XB)","loc":"d,46:25,46:26","dtypep":"(G)","access":"WR","varp":"(O)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"q","addr":"(ID)","loc":"d,57:25,57:26","dtypep":"(G)","access":"WR","varp":"(ZB)","varScopep":"UNLINKED","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ]} ]} @@ -90,16 +171,20 @@ "miscsp": [ {"type":"TYPETABLE","name":"","addr":"(C)","loc":"a,0:0,0:0","constraintRefp":"UNLINKED","emptyQueuep":"UNLINKED","queueIndexp":"UNLINKED","streamp":"UNLINKED","voidp":"UNLINKED", "typesp": [ - {"type":"BASICDTYPE","name":"logic","addr":"(MB)","loc":"d,37:15,37:20","dtypep":"(MB)","keyword":"logic","range":"31:0","generic":true,"signed":true,"rangep": []}, - {"type":"BASICDTYPE","name":"logic","addr":"(I)","loc":"d,39:11,39:14","dtypep":"(I)","keyword":"logic","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"bit","addr":"(R)","loc":"d,23:35,23:40","dtypep":"(R)","keyword":"bit","range":"1:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(I)","loc":"d,27:32,27:34","dtypep":"(I)","keyword":"logic","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(P)","loc":"d,23:14,23:19","dtypep":"(P)","keyword":"logic","range":"1:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(XC)","loc":"d,48:15,48:20","dtypep":"(XC)","keyword":"logic","range":"31:0","generic":true,"signed":true,"rangep": []}, {"type":"BASICDTYPE","name":"logic","addr":"(G)","loc":"d,16:15,16:16","dtypep":"(G)","keyword":"logic","range":"3:0","generic":true,"rangep": []}, - {"type":"BASICDTYPE","name":"bit","addr":"(OB)","loc":"d,21:14,21:15","dtypep":"(OB)","keyword":"bit","range":"31:0","generic":true,"signed":true,"rangep": []} + {"type":"BASICDTYPE","name":"logic","addr":"(EB)","loc":"d,27:26,27:27","dtypep":"(EB)","keyword":"logic","range":"1:0","generic":true,"signed":true,"rangep": []}, + {"type":"BASICDTYPE","name":"bit","addr":"(Z)","loc":"d,27:32,27:34","dtypep":"(Z)","keyword":"bit","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"bit","addr":"(ZC)","loc":"d,29:48,29:49","dtypep":"(ZC)","keyword":"bit","range":"31:0","generic":true,"signed":true,"rangep": []} ]}, {"type":"CONSTPOOL","name":"","addr":"(D)","loc":"a,0:0,0:0", "modulep": [ - {"type":"MODULE","name":"@CONST-POOL@","addr":"(YB)","loc":"a,0:0,0:0","origName":"@CONST-POOL@","verilogName":"@CONST-POOL@","level":0,"timeunit":"NONE","inlinesp": [], + {"type":"MODULE","name":"@CONST-POOL@","addr":"(JD)","loc":"a,0:0,0:0","origName":"@CONST-POOL@","verilogName":"@CONST-POOL@","level":0,"timeunit":"NONE","inlinesp": [], "stmtsp": [ - {"type":"SCOPE","name":"@CONST-POOL@","addr":"(ZB)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(YB)","varsp": [],"blocksp": [],"inlinesp": []} + {"type":"SCOPE","name":"@CONST-POOL@","addr":"(KD)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(JD)","varsp": [],"blocksp": [],"inlinesp": []} ]} ]} ]} diff --git a/test_regress/t/t_json_only_first.v b/test_regress/t/t_json_only_first.v index 33f29175e..2e9a262ae 100644 --- a/test_regress/t/t_json_only_first.v +++ b/test_regress/t/t_json_only_first.v @@ -16,6 +16,17 @@ module t ( /*AUTOARG*/ output wire [3:0] q; logic [3:0] between; + logic direct_named; + logic computed_named; + logic anonymous_expr; + + localparam logic [1:0] S_IDLE = 2'b00; + localparam logic [1:0] S_FETCH = 2'b01; + localparam logic [1:0] S_EXEC = S_FETCH + 1; + + assign direct_named = d[1:0] == S_IDLE; + assign computed_named = d[1:0] == S_EXEC; + assign anonymous_expr = d[1:0] == (S_FETCH + 1); mod1 #( .WIDTH(4) diff --git a/test_regress/t/t_json_only_flat.out b/test_regress/t/t_json_only_flat.out index f9b5df186..8f6b261c0 100644 --- a/test_regress/t/t_json_only_flat.out +++ b/test_regress/t/t_json_only_flat.out @@ -9,158 +9,245 @@ {"type":"VAR","name":"t.clk","addr":"(M)","loc":"d,14:9,14:12","dtypep":"(J)","origName":"clk","verilogName":"clk","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"t.d","addr":"(N)","loc":"d,15:15,15:16","dtypep":"(H)","origName":"d","verilogName":"d","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"VAR","name":"t.between","addr":"(O)","loc":"d,18:15,18:22","dtypep":"(H)","origName":"between","verilogName":"between","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.WIDTH","addr":"(P)","loc":"d,37:15,37:20","dtypep":"(Q)","origName":"WIDTH","verilogName":"WIDTH","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"GPARAM","dtypeName":"logic","isGParam":true,"isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"t.direct_named","addr":"(P)","loc":"d,19:9,19:21","dtypep":"(J)","origName":"direct_named","verilogName":"direct_named","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.computed_named","addr":"(Q)","loc":"d,20:9,20:23","dtypep":"(J)","origName":"computed_named","verilogName":"computed_named","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.anonymous_expr","addr":"(R)","loc":"d,21:9,21:23","dtypep":"(J)","origName":"anonymous_expr","verilogName":"anonymous_expr","direction":"NONE","lifetime":"VSTATICI","varType":"VAR","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.S_IDLE","addr":"(S)","loc":"d,23:26,23:32","dtypep":"(T)","origName":"S_IDLE","verilogName":"S_IDLE","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ - {"type":"CONST","name":"32'sh4","addr":"(R)","loc":"d,21:14,21:15","dtypep":"(S)"} + {"type":"CONST","name":"2'h0","addr":"(U)","loc":"d,23:35,23:40","dtypep":"(V)"} ],"attrsp": []}, - {"type":"VAR","name":"t.cell1.clk","addr":"(T)","loc":"d,39:11,39:14","dtypep":"(J)","origName":"clk","verilogName":"clk","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.d","addr":"(U)","loc":"d,40:23,40:24","dtypep":"(H)","origName":"d","verilogName":"d","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.q","addr":"(V)","loc":"d,41:30,41:31","dtypep":"(H)","origName":"q","verilogName":"q","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell1.IGNORED","addr":"(W)","loc":"d,44:14,44:21","dtypep":"(Q)","origName":"IGNORED","verilogName":"IGNORED","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + {"type":"VAR","name":"t.S_FETCH","addr":"(W)","loc":"d,24:26,24:33","dtypep":"(T)","origName":"S_FETCH","verilogName":"S_FETCH","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], "valuep": [ - {"type":"CONST","name":"32'sh1","addr":"(X)","loc":"d,44:24,44:25","dtypep":"(S)"} + {"type":"CONST","name":"2'h1","addr":"(X)","loc":"d,24:36,24:41","dtypep":"(V)"} ],"attrsp": []}, - {"type":"VAR","name":"t.cell2.clk","addr":"(Y)","loc":"d,51:11,51:14","dtypep":"(J)","origName":"clk","verilogName":"clk","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell2.d","addr":"(Z)","loc":"d,52:17,52:18","dtypep":"(H)","origName":"d","verilogName":"d","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, - {"type":"VAR","name":"t.cell2.q","addr":"(AB)","loc":"d,53:23,53:24","dtypep":"(H)","origName":"q","verilogName":"q","direction":"NONE","lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.S_EXEC","addr":"(Y)","loc":"d,25:26,25:32","dtypep":"(T)","origName":"S_EXEC","verilogName":"S_EXEC","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + "valuep": [ + {"type":"CONST","name":"2'h2","addr":"(Z)","loc":"d,25:43,25:44","dtypep":"(T)"} + ],"attrsp": []}, + {"type":"VAR","name":"t.cell1.WIDTH","addr":"(AB)","loc":"d,48:15,48:20","dtypep":"(BB)","origName":"WIDTH","verilogName":"WIDTH","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"GPARAM","dtypeName":"logic","isGParam":true,"isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + "valuep": [ + {"type":"CONST","name":"32'sh4","addr":"(CB)","loc":"d,32:14,32:15","dtypep":"(DB)"} + ],"attrsp": []}, + {"type":"VAR","name":"t.cell1.clk","addr":"(EB)","loc":"d,50:11,50:14","dtypep":"(J)","origName":"clk","verilogName":"clk","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.d","addr":"(FB)","loc":"d,51:23,51:24","dtypep":"(H)","origName":"d","verilogName":"d","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.q","addr":"(GB)","loc":"d,52:30,52:31","dtypep":"(H)","origName":"q","verilogName":"q","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell1.IGNORED","addr":"(HB)","loc":"d,55:14,55:21","dtypep":"(BB)","origName":"IGNORED","verilogName":"IGNORED","direction":"NONE","isConst":true,"lifetime":"VSTATICI","varType":"LPARAM","dtypeName":"logic","isParam":true,"hasUserInit":true,"sensIfacep":"UNLINKED","childDTypep": [],"delayp": [], + "valuep": [ + {"type":"CONST","name":"32'sh1","addr":"(IB)","loc":"d,55:24,55:25","dtypep":"(DB)"} + ],"attrsp": []}, + {"type":"VAR","name":"t.cell2.clk","addr":"(JB)","loc":"d,62:11,62:14","dtypep":"(J)","origName":"clk","verilogName":"clk","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell2.d","addr":"(KB)","loc":"d,63:17,63:18","dtypep":"(H)","origName":"d","verilogName":"d","direction":"NONE","lifetime":"VSTATICI","varType":"PORT","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, + {"type":"VAR","name":"t.cell2.q","addr":"(LB)","loc":"d,64:23,64:24","dtypep":"(H)","origName":"q","verilogName":"q","direction":"NONE","lifetime":"VSTATICI","varType":"WIRE","dtypeName":"logic","sensIfacep":"UNLINKED","childDTypep": [],"delayp": [],"valuep": [],"attrsp": []}, {"type":"TOPSCOPE","name":"","addr":"(E)","loc":"d,7:8,7:9","senTreesp": [], "scopep": [ - {"type":"SCOPE","name":"TOP","addr":"(BB)","loc":"d,7:8,7:9","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(F)", + {"type":"SCOPE","name":"TOP","addr":"(MB)","loc":"d,7:8,7:9","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(F)", "varsp": [ - {"type":"VARSCOPE","name":"q","addr":"(CB)","loc":"d,16:21,16:22","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(G)"}, - {"type":"VARSCOPE","name":"clk","addr":"(DB)","loc":"d,14:9,14:12","dtypep":"(J)","isTrace":true,"scopep":"(BB)","varp":"(I)"}, - {"type":"VARSCOPE","name":"d","addr":"(EB)","loc":"d,15:15,15:16","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(K)"}, - {"type":"VARSCOPE","name":"t.q","addr":"(FB)","loc":"d,16:21,16:22","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(L)"}, - {"type":"ALWAYS","name":"","addr":"(GB)","loc":"d,16:21,16:22","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"q","addr":"(NB)","loc":"d,16:21,16:22","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(G)"}, + {"type":"VARSCOPE","name":"clk","addr":"(OB)","loc":"d,14:9,14:12","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(I)"}, + {"type":"VARSCOPE","name":"d","addr":"(PB)","loc":"d,15:15,15:16","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(K)"}, + {"type":"VARSCOPE","name":"t.q","addr":"(QB)","loc":"d,16:21,16:22","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(L)"}, + {"type":"ALWAYS","name":"","addr":"(RB)","loc":"d,16:21,16:22","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(HB)","loc":"d,16:21,16:22","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(SB)","loc":"d,16:21,16:22","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"q","addr":"(IB)","loc":"d,16:21,16:22","dtypep":"(H)","access":"RD","varp":"(G)","varScopep":"(CB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"q","addr":"(TB)","loc":"d,16:21,16:22","dtypep":"(H)","access":"RD","varp":"(G)","varScopep":"(NB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.q","addr":"(JB)","loc":"d,16:21,16:22","dtypep":"(H)","access":"WR","varp":"(L)","varScopep":"(FB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.q","addr":"(UB)","loc":"d,16:21,16:22","dtypep":"(H)","access":"WR","varp":"(L)","varScopep":"(QB)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.clk","addr":"(KB)","loc":"d,14:9,14:12","dtypep":"(J)","isTrace":true,"scopep":"(BB)","varp":"(M)"}, - {"type":"ALWAYS","name":"","addr":"(LB)","loc":"d,14:9,14:12","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.clk","addr":"(VB)","loc":"d,14:9,14:12","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(M)"}, + {"type":"ALWAYS","name":"","addr":"(WB)","loc":"d,14:9,14:12","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(MB)","loc":"d,14:9,14:12","dtypep":"(J)", + {"type":"ASSIGNW","name":"","addr":"(XB)","loc":"d,14:9,14:12","dtypep":"(J)", "rhsp": [ - {"type":"VARREF","name":"clk","addr":"(NB)","loc":"d,14:9,14:12","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(DB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(YB)","loc":"d,14:9,14:12","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(OB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.clk","addr":"(OB)","loc":"d,14:9,14:12","dtypep":"(J)","access":"WR","varp":"(M)","varScopep":"(KB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.clk","addr":"(ZB)","loc":"d,14:9,14:12","dtypep":"(J)","access":"WR","varp":"(M)","varScopep":"(VB)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.d","addr":"(PB)","loc":"d,15:15,15:16","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(N)"}, - {"type":"ALWAYS","name":"","addr":"(QB)","loc":"d,15:15,15:16","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.d","addr":"(AC)","loc":"d,15:15,15:16","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(N)"}, + {"type":"ALWAYS","name":"","addr":"(BC)","loc":"d,15:15,15:16","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(RB)","loc":"d,15:15,15:16","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(CC)","loc":"d,15:15,15:16","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"d","addr":"(SB)","loc":"d,15:15,15:16","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(EB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"d","addr":"(DC)","loc":"d,15:15,15:16","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.d","addr":"(TB)","loc":"d,15:15,15:16","dtypep":"(H)","access":"WR","varp":"(N)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.d","addr":"(EC)","loc":"d,15:15,15:16","dtypep":"(H)","access":"WR","varp":"(N)","varScopep":"(AC)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.between","addr":"(UB)","loc":"d,18:15,18:22","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(O)"}, - {"type":"VARSCOPE","name":"t.cell1.WIDTH","addr":"(VB)","loc":"d,37:15,37:20","dtypep":"(Q)","isTrace":true,"scopep":"(BB)","varp":"(P)"}, - {"type":"VARSCOPE","name":"t.cell1.clk","addr":"(WB)","loc":"d,39:11,39:14","dtypep":"(J)","isTrace":true,"scopep":"(BB)","varp":"(T)"}, - {"type":"ALWAYS","name":"","addr":"(XB)","loc":"d,39:11,39:14","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.between","addr":"(FC)","loc":"d,18:15,18:22","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(O)"}, + {"type":"VARSCOPE","name":"t.direct_named","addr":"(GC)","loc":"d,19:9,19:21","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(P)"}, + {"type":"VARSCOPE","name":"t.computed_named","addr":"(HC)","loc":"d,20:9,20:23","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(Q)"}, + {"type":"VARSCOPE","name":"t.anonymous_expr","addr":"(IC)","loc":"d,21:9,21:23","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(R)"}, + {"type":"VARSCOPE","name":"t.S_IDLE","addr":"(JC)","loc":"d,23:26,23:32","dtypep":"(T)","isTrace":true,"scopep":"(MB)","varp":"(S)"}, + {"type":"VARSCOPE","name":"t.S_FETCH","addr":"(KC)","loc":"d,24:26,24:33","dtypep":"(T)","isTrace":true,"scopep":"(MB)","varp":"(W)"}, + {"type":"VARSCOPE","name":"t.S_EXEC","addr":"(LC)","loc":"d,25:26,25:32","dtypep":"(T)","isTrace":true,"scopep":"(MB)","varp":"(Y)"}, + {"type":"VARSCOPE","name":"t.cell1.WIDTH","addr":"(MC)","loc":"d,48:15,48:20","dtypep":"(BB)","isTrace":true,"scopep":"(MB)","varp":"(AB)"}, + {"type":"VARSCOPE","name":"t.cell1.clk","addr":"(NC)","loc":"d,50:11,50:14","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(EB)"}, + {"type":"ALWAYS","name":"","addr":"(OC)","loc":"d,50:11,50:14","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(YB)","loc":"d,39:11,39:14","dtypep":"(J)", + {"type":"ASSIGNW","name":"","addr":"(PC)","loc":"d,50:11,50:14","dtypep":"(J)", "rhsp": [ - {"type":"VARREF","name":"clk","addr":"(ZB)","loc":"d,39:11,39:14","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(DB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(QC)","loc":"d,50:11,50:14","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(OB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cell1.clk","addr":"(AC)","loc":"d,39:11,39:14","dtypep":"(J)","access":"WR","varp":"(T)","varScopep":"(WB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cell1.clk","addr":"(RC)","loc":"d,50:11,50:14","dtypep":"(J)","access":"WR","varp":"(EB)","varScopep":"(NC)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.cell1.d","addr":"(BC)","loc":"d,40:23,40:24","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(U)"}, - {"type":"ALWAYS","name":"","addr":"(CC)","loc":"d,40:23,40:24","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.cell1.d","addr":"(SC)","loc":"d,51:23,51:24","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(FB)"}, + {"type":"ALWAYS","name":"","addr":"(TC)","loc":"d,51:23,51:24","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(DC)","loc":"d,40:23,40:24","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(UC)","loc":"d,51:23,51:24","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"d","addr":"(EC)","loc":"d,40:23,40:24","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(EB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"d","addr":"(VC)","loc":"d,51:23,51:24","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cell1.d","addr":"(FC)","loc":"d,40:23,40:24","dtypep":"(H)","access":"WR","varp":"(U)","varScopep":"(BC)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cell1.d","addr":"(WC)","loc":"d,51:23,51:24","dtypep":"(H)","access":"WR","varp":"(FB)","varScopep":"(SC)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.cell1.q","addr":"(GC)","loc":"d,41:30,41:31","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(V)"}, - {"type":"ALWAYS","name":"","addr":"(HC)","loc":"d,41:30,41:31","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.cell1.q","addr":"(XC)","loc":"d,52:30,52:31","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(GB)"}, + {"type":"ALWAYS","name":"","addr":"(YC)","loc":"d,52:30,52:31","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(IC)","loc":"d,41:30,41:31","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(ZC)","loc":"d,52:30,52:31","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"t.between","addr":"(JC)","loc":"d,41:30,41:31","dtypep":"(H)","access":"RD","varp":"(O)","varScopep":"(UB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.between","addr":"(AD)","loc":"d,52:30,52:31","dtypep":"(H)","access":"RD","varp":"(O)","varScopep":"(FC)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cell1.q","addr":"(KC)","loc":"d,41:30,41:31","dtypep":"(H)","access":"WR","varp":"(V)","varScopep":"(GC)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cell1.q","addr":"(BD)","loc":"d,52:30,52:31","dtypep":"(H)","access":"WR","varp":"(GB)","varScopep":"(XC)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.cell1.IGNORED","addr":"(LC)","loc":"d,44:14,44:21","dtypep":"(Q)","isTrace":true,"scopep":"(BB)","varp":"(W)"}, - {"type":"VARSCOPE","name":"t.cell2.clk","addr":"(MC)","loc":"d,51:11,51:14","dtypep":"(J)","isTrace":true,"scopep":"(BB)","varp":"(Y)"}, - {"type":"ALWAYS","name":"","addr":"(NC)","loc":"d,51:11,51:14","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.cell1.IGNORED","addr":"(CD)","loc":"d,55:14,55:21","dtypep":"(BB)","isTrace":true,"scopep":"(MB)","varp":"(HB)"}, + {"type":"VARSCOPE","name":"t.cell2.clk","addr":"(DD)","loc":"d,62:11,62:14","dtypep":"(J)","isTrace":true,"scopep":"(MB)","varp":"(JB)"}, + {"type":"ALWAYS","name":"","addr":"(ED)","loc":"d,62:11,62:14","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(OC)","loc":"d,51:11,51:14","dtypep":"(J)", + {"type":"ASSIGNW","name":"","addr":"(FD)","loc":"d,62:11,62:14","dtypep":"(J)", "rhsp": [ - {"type":"VARREF","name":"clk","addr":"(PC)","loc":"d,51:11,51:14","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(DB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(GD)","loc":"d,62:11,62:14","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(OB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cell2.clk","addr":"(QC)","loc":"d,51:11,51:14","dtypep":"(J)","access":"WR","varp":"(Y)","varScopep":"(MC)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cell2.clk","addr":"(HD)","loc":"d,62:11,62:14","dtypep":"(J)","access":"WR","varp":"(JB)","varScopep":"(DD)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.cell2.d","addr":"(RC)","loc":"d,52:17,52:18","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(Z)"}, - {"type":"ALWAYS","name":"","addr":"(SC)","loc":"d,52:17,52:18","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.cell2.d","addr":"(ID)","loc":"d,63:17,63:18","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(KB)"}, + {"type":"ALWAYS","name":"","addr":"(JD)","loc":"d,63:17,63:18","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(TC)","loc":"d,52:17,52:18","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(KD)","loc":"d,63:17,63:18","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"t.between","addr":"(UC)","loc":"d,52:17,52:18","dtypep":"(H)","access":"RD","varp":"(O)","varScopep":"(UB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.between","addr":"(LD)","loc":"d,63:17,63:18","dtypep":"(H)","access":"RD","varp":"(O)","varScopep":"(FC)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cell2.d","addr":"(VC)","loc":"d,52:17,52:18","dtypep":"(H)","access":"WR","varp":"(Z)","varScopep":"(RC)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cell2.d","addr":"(MD)","loc":"d,63:17,63:18","dtypep":"(H)","access":"WR","varp":"(KB)","varScopep":"(ID)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]}, - {"type":"VARSCOPE","name":"t.cell2.q","addr":"(WC)","loc":"d,53:23,53:24","dtypep":"(H)","isTrace":true,"scopep":"(BB)","varp":"(AB)"}, - {"type":"ALWAYS","name":"","addr":"(XC)","loc":"d,53:23,53:24","keyword":"cont_assign","sentreep": [], + {"type":"VARSCOPE","name":"t.cell2.q","addr":"(ND)","loc":"d,64:23,64:24","dtypep":"(H)","isTrace":true,"scopep":"(MB)","varp":"(LB)"}, + {"type":"ALWAYS","name":"","addr":"(OD)","loc":"d,64:23,64:24","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(YC)","loc":"d,53:23,53:24","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(PD)","loc":"d,64:23,64:24","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"q","addr":"(ZC)","loc":"d,53:23,53:24","dtypep":"(H)","access":"RD","varp":"(G)","varScopep":"(CB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"q","addr":"(QD)","loc":"d,64:23,64:24","dtypep":"(H)","access":"RD","varp":"(G)","varScopep":"(NB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.cell2.q","addr":"(AD)","loc":"d,53:23,53:24","dtypep":"(H)","access":"WR","varp":"(AB)","varScopep":"(WC)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.cell2.q","addr":"(RD)","loc":"d,64:23,64:24","dtypep":"(H)","access":"WR","varp":"(LB)","varScopep":"(ND)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]} ], "blocksp": [ - {"type":"ALWAYS","name":"","addr":"(BD)","loc":"d,46:3,46:9","keyword":"always", + {"type":"ALWAYS","name":"","addr":"(SD)","loc":"d,27:23,27:24","keyword":"cont_assign","sentreep": [], + "stmtsp": [ + {"type":"ASSIGNW","name":"","addr":"(TD)","loc":"d,27:23,27:24","dtypep":"(J)", + "rhsp": [ + {"type":"EQ","name":"","addr":"(UD)","loc":"d,27:32,27:34","dtypep":"(VD)", + "lhsp": [ + {"type":"CONST","name":"2'h0","addr":"(WD)","loc":"d,27:35,27:41","dtypep":"(T)","origParamName":"S_IDLE"} + ], + "rhsp": [ + {"type":"SEL","name":"","addr":"(XD)","loc":"d,27:26,27:27","dtypep":"(T)","widthConst":2,"declRange":"[3:0]","declElWidth":1, + "fromp": [ + {"type":"VARREF","name":"d","addr":"(YD)","loc":"d,27:25,27:26","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} + ], + "lsbp": [ + {"type":"CONST","name":"2'h0","addr":"(ZD)","loc":"d,27:29,27:30","dtypep":"(AE)"} + ]} + ]} + ], + "lhsp": [ + {"type":"VARREF","name":"t.direct_named","addr":"(BE)","loc":"d,27:10,27:22","dtypep":"(J)","access":"WR","varp":"(P)","varScopep":"(GC)","classOrPackagep":"UNLINKED"} + ],"timingControlp": [],"strengthSpecp": []} + ]}, + {"type":"ALWAYS","name":"","addr":"(CE)","loc":"d,28:25,28:26","keyword":"cont_assign","sentreep": [], + "stmtsp": [ + {"type":"ASSIGNW","name":"","addr":"(DE)","loc":"d,28:25,28:26","dtypep":"(J)", + "rhsp": [ + {"type":"EQ","name":"","addr":"(EE)","loc":"d,28:34,28:36","dtypep":"(VD)", + "lhsp": [ + {"type":"CONST","name":"2'h2","addr":"(FE)","loc":"d,28:37,28:43","dtypep":"(T)","origParamName":"S_EXEC"} + ], + "rhsp": [ + {"type":"SEL","name":"","addr":"(GE)","loc":"d,28:28,28:29","dtypep":"(T)","widthConst":2,"declRange":"[3:0]","declElWidth":1, + "fromp": [ + {"type":"VARREF","name":"d","addr":"(HE)","loc":"d,28:27,28:28","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} + ], + "lsbp": [ + {"type":"CONST","name":"2'h0","addr":"(IE)","loc":"d,28:31,28:32","dtypep":"(AE)"} + ]} + ]} + ], + "lhsp": [ + {"type":"VARREF","name":"t.computed_named","addr":"(JE)","loc":"d,28:10,28:24","dtypep":"(J)","access":"WR","varp":"(Q)","varScopep":"(HC)","classOrPackagep":"UNLINKED"} + ],"timingControlp": [],"strengthSpecp": []} + ]}, + {"type":"ALWAYS","name":"","addr":"(KE)","loc":"d,29:25,29:26","keyword":"cont_assign","sentreep": [], + "stmtsp": [ + {"type":"ASSIGNW","name":"","addr":"(LE)","loc":"d,29:25,29:26","dtypep":"(J)", + "rhsp": [ + {"type":"EQ","name":"","addr":"(ME)","loc":"d,29:34,29:36","dtypep":"(VD)", + "lhsp": [ + {"type":"CONST","name":"2'h2","addr":"(NE)","loc":"d,29:46,29:47","dtypep":"(V)"} + ], + "rhsp": [ + {"type":"SEL","name":"","addr":"(OE)","loc":"d,29:28,29:29","dtypep":"(T)","widthConst":2,"declRange":"[3:0]","declElWidth":1, + "fromp": [ + {"type":"VARREF","name":"d","addr":"(PE)","loc":"d,29:27,29:28","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} + ], + "lsbp": [ + {"type":"CONST","name":"2'h0","addr":"(QE)","loc":"d,29:31,29:32","dtypep":"(AE)"} + ]} + ]} + ], + "lhsp": [ + {"type":"VARREF","name":"t.anonymous_expr","addr":"(RE)","loc":"d,29:10,29:24","dtypep":"(J)","access":"WR","varp":"(R)","varScopep":"(IC)","classOrPackagep":"UNLINKED"} + ],"timingControlp": [],"strengthSpecp": []} + ]}, + {"type":"ALWAYS","name":"","addr":"(SE)","loc":"d,57:3,57:9","keyword":"always", "sentreep": [ - {"type":"SENTREE","name":"","addr":"(CD)","loc":"d,46:10,46:11", + {"type":"SENTREE","name":"","addr":"(TE)","loc":"d,57:10,57:11", "sensesp": [ - {"type":"SENITEM","name":"","addr":"(DD)","loc":"d,46:12,46:19","edgeType":"POS", + {"type":"SENITEM","name":"","addr":"(UE)","loc":"d,57:12,57:19","edgeType":"POS", "sensp": [ - {"type":"VARREF","name":"clk","addr":"(ED)","loc":"d,46:20,46:23","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(DB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"clk","addr":"(VE)","loc":"d,57:20,57:23","dtypep":"(J)","access":"RD","varp":"(I)","varScopep":"(OB)","classOrPackagep":"UNLINKED"} ],"condp": []} ]} ], "stmtsp": [ - {"type":"ASSIGNDLY","name":"","addr":"(FD)","loc":"d,46:27,46:29","dtypep":"(H)", + {"type":"ASSIGNDLY","name":"","addr":"(WE)","loc":"d,57:27,57:29","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"d","addr":"(GD)","loc":"d,46:30,46:31","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(EB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"d","addr":"(XE)","loc":"d,57:30,57:31","dtypep":"(H)","access":"RD","varp":"(K)","varScopep":"(PB)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"t.between","addr":"(HD)","loc":"d,46:25,46:26","dtypep":"(H)","access":"WR","varp":"(O)","varScopep":"(UB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.between","addr":"(YE)","loc":"d,57:25,57:26","dtypep":"(H)","access":"WR","varp":"(O)","varScopep":"(FC)","classOrPackagep":"UNLINKED"} ],"timingControlp": []} ]}, - {"type":"ALWAYS","name":"","addr":"(ID)","loc":"d,56:12,56:13","keyword":"cont_assign","sentreep": [], + {"type":"ALWAYS","name":"","addr":"(ZE)","loc":"d,67:12,67:13","keyword":"cont_assign","sentreep": [], "stmtsp": [ - {"type":"ASSIGNW","name":"","addr":"(JD)","loc":"d,56:12,56:13","dtypep":"(H)", + {"type":"ASSIGNW","name":"","addr":"(AF)","loc":"d,67:12,67:13","dtypep":"(H)", "rhsp": [ - {"type":"VARREF","name":"t.between","addr":"(KD)","loc":"d,56:14,56:15","dtypep":"(H)","access":"RD","varp":"(O)","varScopep":"(UB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"t.between","addr":"(BF)","loc":"d,67:14,67:15","dtypep":"(H)","access":"RD","varp":"(O)","varScopep":"(FC)","classOrPackagep":"UNLINKED"} ], "lhsp": [ - {"type":"VARREF","name":"q","addr":"(LD)","loc":"d,56:10,56:11","dtypep":"(H)","access":"WR","varp":"(G)","varScopep":"(CB)","classOrPackagep":"UNLINKED"} + {"type":"VARREF","name":"q","addr":"(CF)","loc":"d,67:10,67:11","dtypep":"(H)","access":"WR","varp":"(G)","varScopep":"(NB)","classOrPackagep":"UNLINKED"} ],"timingControlp": [],"strengthSpecp": []} ]} ],"inlinesp": []} @@ -170,16 +257,20 @@ "miscsp": [ {"type":"TYPETABLE","name":"","addr":"(C)","loc":"a,0:0,0:0","constraintRefp":"UNLINKED","emptyQueuep":"UNLINKED","queueIndexp":"UNLINKED","streamp":"UNLINKED","voidp":"UNLINKED", "typesp": [ - {"type":"BASICDTYPE","name":"logic","addr":"(Q)","loc":"d,37:15,37:20","dtypep":"(Q)","keyword":"logic","range":"31:0","generic":true,"signed":true,"rangep": []}, - {"type":"BASICDTYPE","name":"logic","addr":"(J)","loc":"d,39:11,39:14","dtypep":"(J)","keyword":"logic","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"bit","addr":"(V)","loc":"d,23:35,23:40","dtypep":"(V)","keyword":"bit","range":"1:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(J)","loc":"d,27:32,27:34","dtypep":"(J)","keyword":"logic","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(T)","loc":"d,23:14,23:19","dtypep":"(T)","keyword":"logic","range":"1:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(BB)","loc":"d,48:15,48:20","dtypep":"(BB)","keyword":"logic","range":"31:0","generic":true,"signed":true,"rangep": []}, {"type":"BASICDTYPE","name":"logic","addr":"(H)","loc":"d,16:15,16:16","dtypep":"(H)","keyword":"logic","range":"3:0","generic":true,"rangep": []}, - {"type":"BASICDTYPE","name":"bit","addr":"(S)","loc":"d,21:14,21:15","dtypep":"(S)","keyword":"bit","range":"31:0","generic":true,"signed":true,"rangep": []} + {"type":"BASICDTYPE","name":"logic","addr":"(AE)","loc":"d,27:26,27:27","dtypep":"(AE)","keyword":"logic","range":"1:0","generic":true,"signed":true,"rangep": []}, + {"type":"BASICDTYPE","name":"bit","addr":"(VD)","loc":"d,27:32,27:34","dtypep":"(VD)","keyword":"bit","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"bit","addr":"(DB)","loc":"d,29:48,29:49","dtypep":"(DB)","keyword":"bit","range":"31:0","generic":true,"signed":true,"rangep": []} ]}, {"type":"CONSTPOOL","name":"","addr":"(D)","loc":"a,0:0,0:0", "modulep": [ - {"type":"MODULE","name":"@CONST-POOL@","addr":"(MD)","loc":"a,0:0,0:0","origName":"@CONST-POOL@","verilogName":"@CONST-POOL@","level":0,"timeunit":"NONE","inlinesp": [], + {"type":"MODULE","name":"@CONST-POOL@","addr":"(DF)","loc":"a,0:0,0:0","origName":"@CONST-POOL@","verilogName":"@CONST-POOL@","level":0,"timeunit":"NONE","inlinesp": [], "stmtsp": [ - {"type":"SCOPE","name":"@CONST-POOL@","addr":"(ND)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(MD)","varsp": [],"blocksp": [],"inlinesp": []} + {"type":"SCOPE","name":"@CONST-POOL@","addr":"(EF)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(DF)","varsp": [],"blocksp": [],"inlinesp": []} ]} ]} ]}