diff --git a/include/verilated.cpp b/include/verilated.cpp index 04e4b1da7..448b2f12f 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -2504,24 +2504,47 @@ VerilatedContext::Serialized::Serialized() { m_timeprecision = picosecond; // Initial value until overridden by _Vconfigure } -bool VerilatedContext::assertOn() const VL_MT_SAFE { - const VerilatedLockGuard lock{m_mutex}; - return m_s.m_assertOn; -} +bool VerilatedContext::assertOn() const VL_MT_SAFE { return m_s.m_assertOn; } void VerilatedContext::assertOn(bool flag) VL_MT_SAFE { - const VerilatedLockGuard lock{m_mutex}; - // set all assert types to 'on' when true, set all types to 'off' when false - m_s.m_assertOn = std::numeric_limits::max() - * static_cast(flag); + // Set all assert and directive types when true, clear otherwise. + m_s.m_assertOn = VL_MASK_I(ASSERT_ON_WIDTH) * flag; } -bool VerilatedContext::assertOnGet(VerilatedAssertType_t flags) const VL_MT_SAFE { - return m_s.m_assertOn & flags; +bool VerilatedContext::assertOnGet(VerilatedAssertType_t type, + VerilatedAssertDirectiveType_t directive) const VL_MT_SAFE { + // Check if selected directive type bit in the assertOn is enabled for assertion type. + // Note: it is assumed that this is checked only for one type at the time. + + // Flag unspecified assertion types as disabled. + if (type == 0) return false; + + // Get index of 3-bit group guarding assertion type status. + // Since the assertOnGet is generated __always__ for a single assert type, we assume that only + // a single bit will be set. Thus, ceil log2 will work fine. + VL_DEBUG_IFDEF(assert((type & (type - 1)) == 0);); + const IData typeMaskPosition = VL_CLOG2_I(type); + + // Check if directive type bit is enabled in corresponding assertion type bits. + return m_s.m_assertOn & (directive << (typeMaskPosition * ASSERT_DIRECTIVE_TYPE_MASK_WIDTH)); } -void VerilatedContext::assertOnSet(VerilatedAssertType_t flags) VL_MT_SAFE { - m_s.m_assertOn |= flags; +void VerilatedContext::assertOnSet(VerilatedAssertType_t types, + VerilatedAssertDirectiveType_t directives) VL_MT_SAFE { + // For each assertion type, set directive bits. + + // Iterate through all positions of assertion type bits. If bit for this assertion type is set, + // set directive type bits mask at this group index. + for (int i = 0; i < std::numeric_limits::digits; ++i) { + if (VL_BITISSET_I(types, i)) + m_s.m_assertOn |= directives << (i * ASSERT_DIRECTIVE_TYPE_MASK_WIDTH); + } } -void VerilatedContext::assertOnClear(VerilatedAssertType_t flags) VL_MT_SAFE { - m_s.m_assertOn &= flags; +void VerilatedContext::assertOnClear(VerilatedAssertType_t types, + VerilatedAssertDirectiveType_t directives) VL_MT_SAFE { + // Iterate through all positions of assertion type bits. If bit for this assertion type is set, + // clear directive type bits mask at this group index. + for (int i = 0; i < std::numeric_limits::digits; ++i) { + if (VL_BITISSET_I(types, i)) + m_s.m_assertOn &= ~(directives << (i * ASSERT_DIRECTIVE_TYPE_MASK_WIDTH)); + } } void VerilatedContext::calcUnusedSigs(bool flag) VL_MT_SAFE { const VerilatedLockGuard lock{m_mutex}; diff --git a/include/verilated.h b/include/verilated.h index e6d90d8fb..169ced582 100644 --- a/include/verilated.h +++ b/include/verilated.h @@ -165,7 +165,15 @@ enum class VerilatedAssertType : uint8_t { ASSERT_TYPE_UNIQUE0 = (1 << 6), ASSERT_TYPE_PRIORITY = (1 << 7), }; + +// IEEE 1800-2023 Table 20-7 +enum class VerilatedAssertDirectiveType : uint8_t { + DIRECTIVE_TYPE_ASSERT = (1 << 0), + DIRECTIVE_TYPE_COVER = (1 << 1), + DIRECTIVE_TYPE_ASSUME = (1 << 2), +}; using VerilatedAssertType_t = std::underlying_type::type; +using VerilatedAssertDirectiveType_t = std::underlying_type::type; //============================================================================= // Utility functions @@ -361,6 +369,19 @@ public: class VerilatedContext VL_NOT_FINAL { friend class VerilatedContextImp; +private: + // MEMBERS + // Numer of assertion directive type members. Then each of them will represented as 1-bit in a + // mask. + static constexpr size_t ASSERT_DIRECTIVE_TYPE_MASK_WIDTH = 3; + // Specifies how many groups of directive type bit groups there are based on a number of + // assertion types. + // Note: we add one bit to store information whether Verilator's internal + // directive types are enabled, for example `violation if`s. + static constexpr size_t ASSERT_ON_WIDTH + = ASSERT_DIRECTIVE_TYPE_MASK_WIDTH * std::numeric_limits::digits + + 1; + protected: // TYPES using traceBaseModelCb_t @@ -374,8 +395,11 @@ protected: // No std::strings or pointers or will serialize badly! // Fast path uint64_t m_time = 0; // Current $time (unscaled), 0=at zero, or legacy - std::atomic m_assertOn{ - std::numeric_limits::max()}; // Enabled assertion types + std::atomic m_assertOn{ + std::numeric_limits::max()}; // Enabled assertions, + // for each VerilatedAssertType we store + // 3-bits, one for each directive type. Last + // bit guards internal directive types. bool m_calcUnusedSigs = false; // Waves file on, need all signals calculated bool m_fatalOnError = true; // Fatal on $stop/non-fatal error bool m_fatalOnVpiError = true; // Fatal on vpi error/unsupported @@ -468,11 +492,14 @@ public: /// Enable all assertion types void assertOn(bool flag) VL_MT_SAFE; /// Get enabled status for given assertion types - bool assertOnGet(VerilatedAssertType_t flags) const VL_MT_SAFE; + bool assertOnGet(VerilatedAssertType_t type, + VerilatedAssertDirectiveType_t directive) const VL_MT_SAFE; /// Set enabled status for given assertion types - void assertOnSet(VerilatedAssertType_t flags) VL_MT_SAFE; + void assertOnSet(VerilatedAssertType_t types, + VerilatedAssertDirectiveType_t directives) VL_MT_SAFE; /// Clear enabled status for given assertion types - void assertOnClear(VerilatedAssertType_t flags) VL_MT_SAFE; + void assertOnClear(VerilatedAssertType_t types, + VerilatedAssertDirectiveType_t directives) VL_MT_SAFE; /// Return if calculating of unused signals (for traces) bool calcUnusedSigs() const VL_MT_SAFE { return m_s.m_calcUnusedSigs; } /// Enable calculation of unused signals (for traces) diff --git a/src/V3Assert.cpp b/src/V3Assert.cpp index b5e0dbd4f..c7ffea2ae 100644 --- a/src/V3Assert.cpp +++ b/src/V3Assert.cpp @@ -20,23 +20,16 @@ #include "V3Stats.h" -#include VL_DEFINE_DEBUG_FUNCTIONS; //###################################################################### // Assert class functions class AssertVisitor final : public VNVisitor { - // TYPES - enum class DirectiveType : uint8_t { - INTRINSIC, // AstNodeAssertIntrinsinc - CASE, // unique/unique0/priority case related checks - IF, // unique/unique0/priority if related checks - ASSERT, // assert statement - COVER, // cover statement - ASSUME, // assume statement - }; - using VAssertType_t = std::underlying_type::type; + // CONSTANTS + static constexpr uint8_t ALL_ASSERT_TYPES + = std::numeric_limits::type>::max(); + // NODE STATE/TYPES // Cleared on netlist // AstNode::user() -> bool. True if processed @@ -58,10 +51,39 @@ class AssertVisitor final : public VNVisitor { bool m_inSampled = false; // True inside a sampled expression // METHODS - static bool assertTypeOn(DirectiveType type) { - if (v3Global.opt.assertOn()) return true; - if (type == DirectiveType::CASE && v3Global.opt.assertCaseOn()) return true; - return false; + static AstNodeExpr* assertOnCond(FileLine* fl, VAssertType type, + VAssertDirectiveType directiveType) { + switch (directiveType) { + case VAssertDirectiveType::INTRINSIC: return new AstConst{fl, AstConst::BitTrue{}}; + case VAssertDirectiveType::VIOLATION_CASE: { + if (v3Global.opt.assertCaseOn()) { + return new AstCExpr{fl, "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. + return new AstConst{fl, AstConst::BitFalse{}}; + } + case VAssertDirectiveType::ASSERT: + case VAssertDirectiveType::COVER: + case VAssertDirectiveType::ASSUME: { + if (v3Global.opt.assertOn()) { + return new AstCExpr{fl, + "vlSymsp->_vm_contextp__->assertOnGet("s + std::to_string(type) + + ", "s + std::to_string(directiveType) + ")"s, + 1}; + } + return new AstConst{fl, AstConst::BitFalse{}}; + } + case VAssertDirectiveType::INTERNAL: + case VAssertDirectiveType::VIOLATION_IF: + case VAssertDirectiveType::RESTRICT: { + if (v3Global.opt.assertOn()) { + return new AstCExpr{fl, "vlSymsp->_vm_contextp__->assertOn()", 1}; + } + return new AstConst{fl, AstConst::BitFalse{}}; + } + } + VL_UNREACHABLE; } string assertDisplayMessage(AstNode* nodep, const string& prefix, const string& message, VDisplayType severity) { @@ -77,11 +99,11 @@ class AssertVisitor final : public VNVisitor { } static bool resolveAssertType(AstAssertCtl* nodep) { if (!nodep->assertTypesp()) { - nodep->ctlAssertTypes(std::numeric_limits::max()); + nodep->ctlAssertTypes(VAssertType{ALL_ASSERT_TYPES}); return true; } if (const AstConst* const assertTypesp = VN_CAST(nodep->assertTypesp(), Const)) { - nodep->ctlAssertTypes(assertTypesp->toUInt()); + nodep->ctlAssertTypes(VAssertType{assertTypesp->toSInt()}); return true; } return false; @@ -93,6 +115,18 @@ class AssertVisitor final : public VNVisitor { } return false; } + static bool resolveDirectiveType(AstAssertCtl* nodep) { + if (!nodep->directiveTypesp()) { + nodep->ctlDirectiveTypes(VAssertDirectiveType::ASSERT | VAssertDirectiveType::ASSUME + | VAssertDirectiveType::COVER); + return true; + } + if (const AstConst* const directiveTypesp = VN_CAST(nodep->directiveTypesp(), Const)) { + nodep->ctlDirectiveTypes(VAssertDirectiveType{directiveTypesp->toSInt()}); + return true; + } + return false; + } void replaceDisplay(AstDisplay* nodep, const string& prefix) { nodep->fmtp()->text( assertDisplayMessage(nodep, prefix, nodep->fmtp()->text(), nodep->displayType())); @@ -133,21 +167,13 @@ class AssertVisitor final : public VNVisitor { varrefp->classOrPackagep(v3Global.rootp()->dollarUnitPkgAddp()); return varrefp; } - static AstNodeStmt* newIfAssertOn(AstNode* bodyp, DirectiveType directiveType, - VAssertType::en type = VAssertType::INTERNAL) { + static AstNodeStmt* newIfAssertOn(AstNode* bodyp, VAssertDirectiveType directiveType, + VAssertType type = VAssertType::INTERNAL) { // Add a internal if to check assertions are on. // Don't make this a AND term, as it's unlikely to need to test this. FileLine* const fl = bodyp->fileline(); - // If assertions are off, have constant propagation rip them out later - // This allows syntax errors and such to be detected normally. - AstNodeExpr* const condp - = type == VAssertType::INTERNAL - ? static_cast(new AstConst{fl, AstConst::BitTrue{}}) - : assertTypeOn(directiveType) ? static_cast(new AstCExpr{ - fl, "vlSymsp->_vm_contextp__->assertOnGet("s + std::to_string(type) + ")"s, 1}) - : static_cast( - new AstConst{fl, AstConst::BitFalse{}}); + AstNodeExpr* const condp = assertOnCond(fl, type, directiveType); AstNodeIf* const newp = new AstIf{fl, condp, bodyp}; newp->isBoundsCheck(true); // To avoid LATCH warning newp->user1(true); // Don't assert/cover this if @@ -167,8 +193,8 @@ class AssertVisitor final : public VNVisitor { return bodysp; } - AstNodeStmt* newFireAssert(AstNodeStmt* nodep, DirectiveType directiveType, - VAssertType::en assertType, const string& message, + AstNodeStmt* newFireAssert(AstNodeStmt* nodep, VAssertDirectiveType directiveType, + VAssertType assertType, const string& message, AstNodeExpr* exprsp = nullptr) { AstNodeStmt* bodysp = newFireAssertUnchecked(nodep, message, exprsp); bodysp = newIfAssertOn(bodysp, directiveType, assertType); @@ -214,7 +240,7 @@ class AssertVisitor final : public VNVisitor { } if (bodysp && passsp) bodysp = bodysp->addNext(passsp); - if (bodysp) bodysp = newIfAssertOn(bodysp, DirectiveType::COVER, nodep->type()); + if (bodysp) bodysp = newIfAssertOn(bodysp, nodep->directive(), nodep->type()); ifp = new AstIf{nodep->fileline(), propp, bodysp}; ifp->isBoundsCheck(true); // To avoid LATCH warning bodysp = ifp; @@ -230,9 +256,7 @@ class AssertVisitor final : public VNVisitor { // It's more LIKELY that we'll take the nullptr if clause // than the sim-killing else clause: ifp->branchPred(VBranchPred::BP_LIKELY); - const DirectiveType directiveType - = VN_IS(nodep, AssertIntrinsic) ? DirectiveType::INTRINSIC : DirectiveType::ASSERT; - bodysp = newIfAssertOn(ifp, directiveType, nodep->type()); + bodysp = newIfAssertOn(ifp, nodep->directive(), nodep->type()); } else { nodep->v3fatalSrc("Unknown node type"); } @@ -303,11 +327,11 @@ class AssertVisitor final : public VNVisitor { = ((allow_none || hasDefaultElse) ? static_cast(new AstOneHot0{nodep->fileline(), propp}) : static_cast(new AstOneHot{nodep->fileline(), propp})); - const VAssertType::en assertType + const VAssertType assertType = nodep->uniquePragma() ? VAssertType::UNIQUE : VAssertType::UNIQUE0; AstIf* const checkifp = new AstIf{nodep->fileline(), new AstLogNot{nodep->fileline(), ohot}, - newFireAssert(nodep, DirectiveType::IF, assertType, + newFireAssert(nodep, VAssertDirectiveType::VIOLATION_IF, assertType, "'unique if' statement violated"), newifp}; checkifp->isBoundsCheck(true); // To avoid LATCH warning @@ -330,7 +354,7 @@ class AssertVisitor final : public VNVisitor { } const AstNodeDType* exprDtypep = nodep->exprp()->dtypep()->skipRefp(); - VAssertType::en assertType = VAssertType::INTERNAL; + VAssertType assertType = VAssertType::INTERNAL; if (nodep->priorityPragma()) { assertType = VAssertType::PRIORITY; } else if (nodep->uniquePragma()) { @@ -348,7 +372,7 @@ class AssertVisitor final : public VNVisitor { if (!has_default) { nodep->addItemsp(new AstCaseItem{ nodep->fileline(), nullptr /*DEFAULT*/, - newFireAssert(nodep, DirectiveType::CASE, assertType, + newFireAssert(nodep, VAssertDirectiveType::VIOLATION_CASE, assertType, nodep->pragmaString() + ", but non-match found" + valFmt, valFmt.empty() ? nullptr : nodep->exprp()->cloneTreePure(false))}); @@ -405,11 +429,11 @@ class AssertVisitor final : public VNVisitor { const string pragmaStr = nodep->pragmaString(); if (!allow_none) zeroIfp->addThensp( - newFireAssert(nodep, DirectiveType::CASE, assertType, + newFireAssert(nodep, VAssertDirectiveType::VIOLATION_CASE, assertType, pragmaStr + ", but none matched" + valFmt, valFmt.empty() ? nullptr : exprp->cloneTreePure(false))); zeroIfp->addElsesp( - newFireAssert(nodep, DirectiveType::CASE, assertType, + newFireAssert(nodep, VAssertDirectiveType::VIOLATION_CASE, assertType, pragmaStr + ", but multiple matches found" + valFmt, valFmt.empty() ? nullptr : exprp->cloneTreePure(false))); ohotIfp->addThensp(zeroIfp); @@ -586,10 +610,11 @@ class AssertVisitor final : public VNVisitor { "Unsupported: non-constant assert assertion-type expression"); VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep); return; - } else if (nodep->ctlAssertTypes() - & (VAssertType::EXPECT | VAssertType::UNIQUE | VAssertType::UNIQUE0 - | VAssertType::PRIORITY) - && !(nodep->ctlAssertTypes() == std::numeric_limits::max())) { + } + if (nodep->ctlAssertTypes() != ALL_ASSERT_TYPES + && nodep->ctlAssertTypes().containsAny(VAssertType::EXPECT | VAssertType::UNIQUE + | VAssertType::UNIQUE0 + | VAssertType::PRIORITY)) { nodep->v3warn(E_UNSUPPORTED, "Unsupported: assert control assertion_type"); VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep); return; @@ -599,26 +624,32 @@ class AssertVisitor final : public VNVisitor { VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep); return; } + if (!resolveDirectiveType(nodep)) { + nodep->v3warn(E_UNSUPPORTED, + "Unsupported: non-const assert directive type expression"); + VL_DO_DANGLING(pushDeletep(nodep->unlinkFrBack()), nodep); + return; + } FileLine* const fl = nodep->fileline(); switch (nodep->ctlType()) { case VAssertCtlType::ON: UINFO(9, "Generating assertctl for a module: " << m_modp << endl); - nodep->replaceWith(new AstCExpr{fl, - "vlSymsp->_vm_contextp__->assertOnSet("s - + std::to_string(nodep->ctlAssertTypes()) - + ");\n"s, - 1}); + nodep->replaceWith(new AstCExpr{ + fl, + "vlSymsp->_vm_contextp__->assertOnSet("s + std::to_string(nodep->ctlAssertTypes()) + + ", "s + std::to_string(nodep->ctlDirectiveTypes()) + ");\n"s, + 1}); break; case VAssertCtlType::OFF: case VAssertCtlType::KILL: { UINFO(9, "Generating assertctl for a module: " << m_modp << endl); - nodep->replaceWith(new AstCExpr{ - fl, - "vlSymsp->_vm_contextp__->assertOnClear("s - + std::to_string(static_cast(~nodep->ctlAssertTypes())) - + ");\n"s, - 1}); + nodep->replaceWith(new AstCExpr{fl, + "vlSymsp->_vm_contextp__->assertOnClear("s + + std::to_string(nodep->ctlAssertTypes()) + " ,"s + + std::to_string(nodep->ctlDirectiveTypes()) + + ");\n"s, + 1}); break; } case VAssertCtlType::LOCK: diff --git a/src/V3Ast.h b/src/V3Ast.h index 10fd44c1e..2c748a9dc 100644 --- a/src/V3Ast.h +++ b/src/V3Ast.h @@ -1154,6 +1154,53 @@ constexpr bool operator==(VAssertCtlType::en lhs, const VAssertCtlType& rhs) { // ###################################################################### +class VAssertDirectiveType final { +public: + // IEEE 1800-2023 Table 20-7 + enum en : uint8_t { + INTERNAL = 0, // Non IEEE type, for directives to be evaluated from expression. + ASSERT = (1 << 0), + COVER = (1 << 1), + ASSUME = (1 << 2), + VIOLATION_CASE = (1 << 3), // Non IEEE type, for case constructs + // with unique, unique0 or priority pragmas. + VIOLATION_IF = (1 << 4), // Non IEEE type, for if constructs + // with unique, unique0 or priority pragmas. + INTRINSIC = (1 << 5), // Non IEEE type, for intrinsic assertions. + RESTRICT = (1 << 6), // Non IEEE type, for ignored restrict assertions. + }; + enum en m_e; + VAssertDirectiveType() + : m_e{ASSERT} {} + // cppcheck-suppress noExplicitConstructor + constexpr VAssertDirectiveType(en _e) + : m_e{_e} {} + explicit VAssertDirectiveType(int _e) + : m_e(static_cast(_e)) {} // Need () or GCC 4.8 false warning + const char* ascii() const { + static const char* const names[] + = {"INTERNAL", "ASSERT", "COVER", "ASSUME", + "VIOLATION_CASE", "VIOLATION_IF", "INTRINSIC", "RESTRICT"}; + return names[m_e]; + } + constexpr operator en() const { return m_e; } +}; +constexpr bool operator==(const VAssertDirectiveType& lhs, const VAssertDirectiveType& rhs) { + return lhs.m_e == rhs.m_e; +} +constexpr bool operator==(const VAssertDirectiveType& lhs, VAssertDirectiveType::en rhs) { + return lhs.m_e == rhs; +} +constexpr bool operator==(VAssertDirectiveType::en lhs, const VAssertDirectiveType& rhs) { + return lhs == rhs.m_e; +} +constexpr VAssertDirectiveType::en operator|(VAssertDirectiveType::en lhs, + VAssertDirectiveType::en rhs) { + return VAssertDirectiveType::en(static_cast(lhs) | static_cast(rhs)); +} + +// ###################################################################### + class VAssertType final { public: // IEEE 1800-2023 Table 20-6 @@ -1172,10 +1219,11 @@ public: VAssertType() : m_e{INTERNAL} {} // cppcheck-suppress noExplicitConstructor - constexpr explicit VAssertType(en _e) + constexpr VAssertType(en _e) : m_e{_e} {} explicit VAssertType(int _e) : m_e(static_cast(_e)) {} // Need () or GCC 4.8 false warning + bool containsAny(VAssertType other) const { return m_e & other.m_e; } const char* ascii() const { static const char* const names[] = {"INTERNAL", "CONCURRENT", @@ -1195,6 +1243,9 @@ constexpr bool operator==(const VAssertType& lhs, const VAssertType& rhs) { } constexpr bool operator==(const VAssertType& lhs, VAssertType::en rhs) { return lhs.m_e == rhs; } constexpr bool operator==(VAssertType::en lhs, const VAssertType& rhs) { return lhs == rhs.m_e; } +constexpr VAssertType::en operator|(VAssertType::en lhs, VAssertType::en rhs) { + return VAssertType::en(static_cast(lhs) | static_cast(rhs)); +} // ###################################################################### diff --git a/src/V3AstNodeOther.h b/src/V3AstNodeOther.h index f64aca8ec..5ba270934 100644 --- a/src/V3AstNodeOther.h +++ b/src/V3AstNodeOther.h @@ -399,12 +399,15 @@ class AstNodeCoverOrAssert VL_NOT_FINAL : public AstNodeStmt { // @astgen op4 := passsp: List[AstNode] // Statements when propp is passing/truthly string m_name; // Name to report const VAssertType m_type; // Assertion/cover type + const VAssertDirectiveType m_directive; // Assertion directive type + public: - AstNodeCoverOrAssert(VNType t, FileLine* fl, AstNode* propp, AstNode* passsp, - VAssertType::en type, const string& name = "") + AstNodeCoverOrAssert(VNType t, FileLine* fl, AstNode* propp, AstNode* passsp, VAssertType type, + VAssertDirectiveType directive, const string& name = "") : AstNodeStmt{t, fl} , m_name{name} - , m_type{type} { + , m_type{type} + , m_directive{directive} { this->propp(propp); this->addPasssp(passsp); } @@ -415,10 +418,11 @@ public: void dump(std::ostream& str = std::cout) const override; void dumpJson(std::ostream& str = std::cout) const override; VAssertType type() const { return m_type; } + VAssertDirectiveType directive() const { return m_directive; } bool immediate() const { - return this->type() - & (VAssertType::SIMPLE_IMMEDIATE | VAssertType::OBSERVED_DEFERRED_IMMEDIATE - | VAssertType::FINAL_DEFERRED_IMMEDIATE) + return this->type().containsAny(VAssertType::SIMPLE_IMMEDIATE + | VAssertType::OBSERVED_DEFERRED_IMMEDIATE + | VAssertType::FINAL_DEFERRED_IMMEDIATE) || this->type() == VAssertType::INTERNAL; } }; @@ -2615,13 +2619,12 @@ public: class AstAssertCtl final : public AstNodeStmt { // @astgen op1 := controlTypep : AstNodeExpr // @astgen op2 := assertTypesp : Optional[AstNodeExpr] - // @astgen op3 := levelp : AstNodeExpr - // @astgen op4 := itemsp : List[AstNodeExpr] + // @astgen op3 := directiveTypesp : Optional[AstNodeExpr] // Type of assertcontrol task; either known from parser or from evaluated // controlTypep expression. VAssertCtlType m_ctlType; // $assert keyword type (control_type) - using VAssertType_t = std::underlying_type::type; - VAssertType_t m_assertTypes; // Type of assertions affected + VAssertType m_assertTypes; // Types of assertions affected + VAssertDirectiveType m_directiveTypes; // Types of directives affected public: AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, AstNodeExpr* levelp = nullptr, @@ -2637,8 +2640,10 @@ public: bool isOutputter() override { return true; } VAssertCtlType ctlType() const { return m_ctlType; } void ctlType(int32_t type) { m_ctlType = VAssertCtlType{type}; } - VAssertType_t ctlAssertTypes() const { return m_assertTypes; } - void ctlAssertTypes(VAssertType_t types) { m_assertTypes = types; } + VAssertType ctlAssertTypes() const { return m_assertTypes; } + void ctlAssertTypes(VAssertType types) { m_assertTypes = types; } + VAssertDirectiveType ctlDirectiveTypes() const { return m_directiveTypes; } + void ctlDirectiveTypes(VAssertDirectiveType types) { m_directiveTypes = types; } void dump(std::ostream& str = std::cout) const override; void dumpJson(std::ostream& str = std::cout) const override; }; @@ -3653,9 +3658,9 @@ class AstAssert final : public AstNodeCoverOrAssert { public: ASTGEN_MEMBERS_AstAssert; - AstAssert(FileLine* fl, AstNode* propp, AstNode* passsp, AstNode* failsp, VAssertType::en type, - const string& name = "") - : ASTGEN_SUPER_Assert(fl, propp, passsp, type, name) { + AstAssert(FileLine* fl, AstNode* propp, AstNode* passsp, AstNode* failsp, VAssertType type, + VAssertDirectiveType directive, const string& name = "") + : ASTGEN_SUPER_Assert(fl, propp, passsp, type, directive, name) { this->addFailsp(failsp); } }; @@ -3667,7 +3672,8 @@ public: AstAssertIntrinsic(FileLine* fl, AstNode* propp, AstNode* passsp, AstNode* failsp, const string& name = "") // Intrinsic asserts are always enabled thus 'type' field is set to INTERNAL. - : ASTGEN_SUPER_AssertIntrinsic(fl, propp, passsp, VAssertType::INTERNAL, name) { + : ASTGEN_SUPER_AssertIntrinsic(fl, propp, passsp, VAssertType::INTERNAL, + VAssertDirectiveType::INTRINSIC, name) { this->addFailsp(failsp); } }; @@ -3675,16 +3681,17 @@ class AstCover final : public AstNodeCoverOrAssert { // @astgen op3 := coverincsp: List[AstNode] // Coverage node public: ASTGEN_MEMBERS_AstCover; - AstCover(FileLine* fl, AstNode* propp, AstNode* stmtsp, VAssertType::en type, + AstCover(FileLine* fl, AstNode* propp, AstNode* stmtsp, VAssertType type, const string& name = "") - : ASTGEN_SUPER_Cover(fl, propp, stmtsp, type, name) {} + : ASTGEN_SUPER_Cover(fl, propp, stmtsp, type, VAssertDirectiveType::COVER, name) {} }; class AstRestrict final : public AstNodeCoverOrAssert { public: ASTGEN_MEMBERS_AstRestrict; AstRestrict(FileLine* fl, AstNode* propp) // Intrinsic asserts are always ignored thus 'type' field is set to INTERNAL. - : ASTGEN_SUPER_Restrict(fl, propp, nullptr, VAssertType::INTERNAL) {} + : ASTGEN_SUPER_Restrict(fl, propp, nullptr, VAssertType::INTERNAL, + VAssertDirectiveType::RESTRICT) {} }; // === AstNodeFor === diff --git a/src/V3AstNodes.cpp b/src/V3AstNodes.cpp index aed355447..b146d984a 100644 --- a/src/V3AstNodes.cpp +++ b/src/V3AstNodes.cpp @@ -1485,25 +1485,20 @@ void AstAlways::dumpJson(std::ostream& str) const { dumpJsonStr(str, "keyword", keyword().ascii()); dumpJsonGen(str); } -AstAssertCtl::AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, AstNodeExpr* levelp, - AstNodeExpr* itemsp) +AstAssertCtl::AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, AstNodeExpr*, AstNodeExpr*) : ASTGEN_SUPER_AssertCtl(fl) , m_ctlType{ctlType} { controlTypep(new AstConst{fl, ctlType}); - if (!levelp) levelp = new AstConst{fl, 0}; - this->levelp(levelp); - addItemsp(itemsp); } AstAssertCtl::AstAssertCtl(FileLine* fl, AstNodeExpr* controlTypep, AstNodeExpr* assertTypesp, - AstNodeExpr*, AstNodeExpr* levelp, AstNodeExpr* itemsp) + AstNodeExpr* directiveTypep, AstNodeExpr*, AstNodeExpr*) : ASTGEN_SUPER_AssertCtl(fl) , m_ctlType{VAssertCtlType::_TO_BE_EVALUATED} - , m_assertTypes{VAssertType::INTERNAL} { + , m_assertTypes{VAssertType::INTERNAL} + , m_directiveTypes{VAssertDirectiveType::INTERNAL} { this->controlTypep(controlTypep); this->assertTypesp(assertTypesp); - if (!levelp) levelp = new AstConst{fl, 0}; - this->levelp(levelp); - addItemsp(itemsp); + this->directiveTypesp(directiveTypep); } void AstAssertCtl::dump(std::ostream& str) const { this->AstNode::dump(str); diff --git a/src/V3ParseImp.h b/src/V3ParseImp.h index c3f8dd95c..9d828f81a 100644 --- a/src/V3ParseImp.h +++ b/src/V3ParseImp.h @@ -117,6 +117,7 @@ struct V3ParseBisonYYSType final { V3ErrorCode::en errcodeen; VAttrType::en attrtypeen; VAssertType::en asserttypeen; + VAssertDirectiveType::en assertdirectivetypeen; VLifetime::en lifetime; VStrength::en strength; diff --git a/src/verilog.y b/src/verilog.y index 1c67be1be..cbed89c0d 100644 --- a/src/verilog.y +++ b/src/verilog.y @@ -6003,18 +6003,18 @@ immediate_assertion_statement: // ==IEEE: immediate_assertion_statement simple_immediate_assertion_statement: // ==IEEE: simple_immediate_assertion_statement // // action_block expanded here, for compatibility with AstAssert assertOrAssume '(' expr ')' stmtBlock %prec prLOWER_THAN_ELSE - { $$ = new AstAssert{$1, $3, $5, nullptr, VAssertType::SIMPLE_IMMEDIATE}; } + { $$ = new AstAssert{$1, $3, $5, nullptr, VAssertType::SIMPLE_IMMEDIATE, $1}; } | assertOrAssume '(' expr ')' yELSE stmtBlock - { $$ = new AstAssert{$1, $3, nullptr, $6, VAssertType::SIMPLE_IMMEDIATE}; } + { $$ = new AstAssert{$1, $3, nullptr, $6, VAssertType::SIMPLE_IMMEDIATE, $1}; } | assertOrAssume '(' expr ')' stmtBlock yELSE stmtBlock - { $$ = new AstAssert{$1, $3, $5, $7, VAssertType::SIMPLE_IMMEDIATE}; } + { $$ = new AstAssert{$1, $3, $5, $7, VAssertType::SIMPLE_IMMEDIATE, $1}; } // // IEEE: simple_immediate_cover_statement | yCOVER '(' expr ')' stmt { $$ = new AstCover{$1, $3, $5, VAssertType::SIMPLE_IMMEDIATE}; } ; -assertOrAssume: - yASSERT { $$ = $1; } - | yASSUME { $$ = $1; } +assertOrAssume: + yASSERT { $$ = VAssertDirectiveType::ASSERT; } + | yASSUME { $$ = VAssertDirectiveType::ASSUME; } ; final_zero: // IEEE: part of deferred_immediate_assertion_statement @@ -6028,11 +6028,11 @@ final_zero: // IEEE: part of deferred_immediat deferred_immediate_assertion_statement: // ==IEEE: deferred_immediate_assertion_statement // // IEEE: deferred_immediate_assert_statement assertOrAssume final_zero '(' expr ')' stmtBlock %prec prLOWER_THAN_ELSE - { $$ = new AstAssert{$1, $4, $6, nullptr, $2}; } + { $$ = new AstAssert{$1, $4, $6, nullptr, $2, $1}; } | assertOrAssume final_zero '(' expr ')' yELSE stmtBlock - { $$ = new AstAssert{$1, $4, nullptr, $7, $2}; } + { $$ = new AstAssert{$1, $4, nullptr, $7, $2, $1}; } | assertOrAssume final_zero '(' expr ')' stmtBlock yELSE stmtBlock - { $$ = new AstAssert{$1, $4, $6, $8, $2}; } + { $$ = new AstAssert{$1, $4, $6, $8, $2, $1}; } // // IEEE: deferred_immediate_cover_statement | yCOVER final_zero '(' expr ')' stmt { $$ = new AstCover{$1, $4, $6, $2}; } ; @@ -6050,11 +6050,11 @@ concurrent_assertion_statement: // ==IEEE: concurrent_assertion_statemen // // IEEE: assume_property_statement // // action_block expanded here assertOrAssume yPROPERTY '(' property_spec ')' stmt %prec prLOWER_THAN_ELSE - { $$ = new AstAssert{$1, new AstSampled{$1, $4}, $6, nullptr, VAssertType::CONCURRENT}; } + { $$ = new AstAssert{$1, new AstSampled{$1, $4}, $6, nullptr, VAssertType::CONCURRENT, $1}; } | assertOrAssume yPROPERTY '(' property_spec ')' stmt yELSE stmt - { $$ = new AstAssert{$1, new AstSampled{$1, $4}, $6, $8, VAssertType::CONCURRENT}; } + { $$ = new AstAssert{$1, new AstSampled{$1, $4}, $6, $8, VAssertType::CONCURRENT, $1}; } | assertOrAssume yPROPERTY '(' property_spec ')' yELSE stmt - { $$ = new AstAssert{$1, new AstSampled{$1, $4}, nullptr, $7, VAssertType::CONCURRENT}; } + { $$ = new AstAssert{$1, new AstSampled{$1, $4}, nullptr, $7, VAssertType::CONCURRENT, $1}; } // // IEEE: cover_property_statement | yCOVER yPROPERTY '(' property_spec ')' stmtBlock { $$ = new AstCover{$1, $4, $6, VAssertType::CONCURRENT}; } diff --git a/test_regress/t/t_assert_ctl_arg.cpp b/test_regress/t/t_assert_ctl_arg.cpp new file mode 100644 index 000000000..050d30833 --- /dev/null +++ b/test_regress/t/t_assert_ctl_arg.cpp @@ -0,0 +1,113 @@ +// -*- mode: C++; c-file-style: "cc-mode" -*- +// +// DESCRIPTION: Verilator: Verilog Test module +// +// This file ONLY is placed under the Creative Commons Public Domain, for +// any use, without warranty, 2024 by Wilson Snyder. +// SPDX-License-Identifier: CC0-1.0 + +#include "verilated_cov.h" +#include +#include VM_PREFIX_INCLUDE + +// These require the above. Comment prevents clang-format moving them +#include "TestCheck.h" + +unsigned int main_time = 0; + +double sc_time_stamp() { return main_time; } +//====================================================================== + +int errors = 0; + +void verilatedTest() { + const std::unique_ptr contextp{new VerilatedContext}; + // Assert enable/disable + contextp->assertOn(true); + TEST_CHECK_NZ(contextp->assertOn()); + contextp->assertOn(false); + TEST_CHECK_Z(contextp->assertOn()); + TEST_CHECK_Z(contextp->assertOnGet(1, 1)); + + // Setting one type + contextp->assertOnSet(1, 1); + TEST_CHECK_NZ(contextp->assertOnGet(1, 1)); + TEST_CHECK_NZ(contextp->assertOn()); + TEST_CHECK_Z(contextp->assertOnGet(2, 2)); + + // Setting types + contextp->assertOn(false); + contextp->assertOnSet(1, 3); + TEST_CHECK_NZ(contextp->assertOnGet(1, 3)); + TEST_CHECK_NZ(contextp->assertOnGet(1, 2)); + TEST_CHECK_NZ(contextp->assertOnGet(1, 1)); + TEST_CHECK_Z(contextp->assertOnGet(1, 0)); + TEST_CHECK_Z(contextp->assertOnGet(2, 0)); + TEST_CHECK_Z(contextp->assertOnGet(0, 0)); + + // Setting multiple types separately + contextp->assertOn(false); + contextp->assertOnSet(0, 1); + contextp->assertOnSet(1, 2); + contextp->assertOnSet(2, 3); + TEST_CHECK_NZ(contextp->assertOn()); + TEST_CHECK_Z(contextp->assertOnGet(0, 1)); + TEST_CHECK_Z(contextp->assertOnGet(1, 1)); + TEST_CHECK_NZ(contextp->assertOnGet(1, 2)); + TEST_CHECK_NZ(contextp->assertOnGet(2, 1)); + TEST_CHECK_NZ(contextp->assertOnGet(2, 2)); + TEST_CHECK_NZ(contextp->assertOnGet(2, 3)); + TEST_CHECK_Z(contextp->assertOnGet(0, 2)); + TEST_CHECK_Z(contextp->assertOnGet(4, 1)); + TEST_CHECK_Z(contextp->assertOnGet(8, 7)); + + // Clearing selected types + contextp->assertOn(true); + contextp->assertOnClear(1, 3); + contextp->assertOnClear(1, 4); + TEST_CHECK_Z(contextp->assertOnGet(1, 1)); + TEST_CHECK_Z(contextp->assertOnGet(1, 2)); + TEST_CHECK_Z(contextp->assertOnGet(1, 4)); + contextp->assertOnClear(4, 4); + TEST_CHECK_Z(contextp->assertOnGet(4, 4)); + TEST_CHECK_NZ(contextp->assertOnGet(4, 1)); + TEST_CHECK_NZ(contextp->assertOnGet(4, 2)); + TEST_CHECK_NZ(contextp->assertOn()); + + // Clearing all assert types + contextp->assertOn(true); + contextp->assertOnClear(255, 7); + // Everything is disabled except internal asserts + TEST_CHECK_NZ(contextp->assertOn()); + contextp->assertOn(false); + // Now everything is disabled + TEST_CHECK_Z(contextp->assertOn()); +} +int main(int argc, char** argv) { + verilatedTest(); + if (errors) return 10; + + const std::unique_ptr contextp{new VerilatedContext}; + contextp->threads(1); + contextp->commandArgs(argc, argv); + contextp->debug(0); + + srand48(5); + + const std::unique_ptr topp{new VM_PREFIX{"top"}}; + constexpr uint64_t sim_time = 100; + while ((contextp->time() < sim_time) && !contextp->gotFinish()) { + topp->clk = !topp->clk; + topp->eval(); + contextp->timeInc(1); + } + const std::string filename = std::string{VL_STRINGIFY(TEST_OBJ_DIR) "/coverage.dat"}; + contextp->coveragep()->write(filename); + + if (!contextp->gotFinish()) { + vl_fatal(__FILE__, __LINE__, "main", "%Error: Timeout; never got a $finish"); + } + topp->final(); + + return 0; +} diff --git a/test_regress/t/t_assert_ctl_arg.out b/test_regress/t/t_assert_ctl_arg.out new file mode 100644 index 000000000..ea70da0f3 --- /dev/null +++ b/test_regress/t/t_assert_ctl_arg.out @@ -0,0 +1,415 @@ +========== +Running all asserts at: t/t_assert_ctl_arg.v:49 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:49 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +-Info: t/t_assert_ctl_arg.v:135: Verilog $stop, ignored due to +verilator+error+limit +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:49 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:49 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:49 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:49 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:49 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:49 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:49 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:49 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:49 +Passed 'top.t.cover_simple_immediate_stmt_49' at t/t_assert_ctl_arg.v:49 +========== +Running all asserts at: t/t_assert_ctl_arg.v:51 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:51 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:51 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:51 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:51 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:51 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:51 +========== +Running all asserts at: t/t_assert_ctl_arg.v:56 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:56 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:56 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:56 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:56 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:56 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:56 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:56 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:56 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:56 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:56 +Passed 'top.t.cover_observed_deferred_immediate_stmt_56' at t/t_assert_ctl_arg.v:56 +========== +Running all asserts at: t/t_assert_ctl_arg.v:58 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:58 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:58 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:58 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:58 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:58 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:58 +========== +Running all asserts at: t/t_assert_ctl_arg.v:63 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:63 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:63 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:63 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:63 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:63 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:63 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:63 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:63 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:63 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:63 +Passed 'top.t.cover_final_deferred_immediate_stmt_63' at t/t_assert_ctl_arg.v:63 +========== +Running all asserts at: t/t_assert_ctl_arg.v:65 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:65 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:65 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:65 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:65 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:65 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:65 +========== +Running all asserts at: t/t_assert_ctl_arg.v:69 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:69 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:69 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:69 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:69 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:69 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:69 +========== +Running all asserts at: t/t_assert_ctl_arg.v:71 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:71 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:71 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:71 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:71 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:71 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:71 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:71 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:71 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:71 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:71 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:71 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:71 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:71 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:71 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:71 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:71 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:71 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:71 +Passed 'top.t.cover_simple_immediate_stmt_71' at t/t_assert_ctl_arg.v:71 +Passed 'top.t.cover_observed_deferred_immediate_stmt_71' at t/t_assert_ctl_arg.v:71 +Passed 'top.t.cover_final_deferred_immediate_stmt_71' at t/t_assert_ctl_arg.v:71 +========== +Running all asserts at: t/t_assert_ctl_arg.v:73 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:73 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:73 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:73 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:73 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:73 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:73 +========== +Running all asserts at: t/t_assert_ctl_arg.v:76 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:76 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:76 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:76 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:76 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:76 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:76 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:76 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:76 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:76 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:76 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:76 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:76 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:76 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:76 +Passed 'top.t.cover_simple_immediate_stmt_76' at t/t_assert_ctl_arg.v:76 +Passed 'top.t.cover_observed_deferred_immediate_stmt_76' at t/t_assert_ctl_arg.v:76 +========== +Running all asserts at: t/t_assert_ctl_arg.v:78 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:78 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:78 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:78 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:78 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:78 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:78 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:78 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:78 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:78 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:78 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:78 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:78 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:78 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:78 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:78 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:78 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:78 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:78 +Passed 'top.t.cover_simple_immediate_stmt_78' at t/t_assert_ctl_arg.v:78 +Passed 'top.t.cover_observed_deferred_immediate_stmt_78' at t/t_assert_ctl_arg.v:78 +Passed 'top.t.cover_final_deferred_immediate_stmt_78' at t/t_assert_ctl_arg.v:78 +========== +Running all asserts at: t/t_assert_ctl_arg.v:80 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:80 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:80 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:80 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:80 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:80 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:80 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:80 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:80 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:80 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:80 +Passed 'top.t.cover_simple_immediate_stmt_80' at t/t_assert_ctl_arg.v:80 +========== +Running all asserts at: t/t_assert_ctl_arg.v:82 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:82 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:82 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:82 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:82 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:82 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:82 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:82 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:82 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:82 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:82 +Passed 'top.t.cover_simple_immediate_stmt_82' at t/t_assert_ctl_arg.v:82 +========== +Running all asserts at: t/t_assert_ctl_arg.v:84 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:84 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:84 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:84 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:84 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:84 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:84 +========== +Running all asserts at: t/t_assert_ctl_arg.v:86 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:86 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:86 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:86 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:86 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:86 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:86 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:86 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:86 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:86 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:86 +Passed 'top.t.cover_simple_immediate_stmt_86' at t/t_assert_ctl_arg.v:86 +========== +Running all asserts at: t/t_assert_ctl_arg.v:88 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:88 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:88 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:88 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:88 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:88 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:88 +========== +Running all asserts at: t/t_assert_ctl_arg.v:90 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:90 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:90 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:90 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:90 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:90 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:90 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:90 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:90 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:90 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:90 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:90 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:90 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:90 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:90 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:90 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:90 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:90 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:90 +Passed 'top.t.cover_simple_immediate_stmt_90' at t/t_assert_ctl_arg.v:90 +Passed 'top.t.cover_observed_deferred_immediate_stmt_90' at t/t_assert_ctl_arg.v:90 +Passed 'top.t.cover_final_deferred_immediate_stmt_90' at t/t_assert_ctl_arg.v:90 +========== +Running all asserts at: t/t_assert_ctl_arg.v:92 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:92 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:92 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:92 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:92 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:92 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:92 +========== +Running all asserts at: t/t_assert_ctl_arg.v:97 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:97 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:97 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:97 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:97 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:97 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:97 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:97 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:97 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:97 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:97 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:97 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:97 +========== +Running all asserts at: t/t_assert_ctl_arg.v:100 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:100 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:100 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:100 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:100 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:100 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:100 +Passed 'top.t.cover_simple_immediate_stmt_100' at t/t_assert_ctl_arg.v:100 +Passed 'top.t.cover_observed_deferred_immediate_stmt_100' at t/t_assert_ctl_arg.v:100 +Passed 'top.t.cover_final_deferred_immediate_stmt_100' at t/t_assert_ctl_arg.v:100 +========== +Running all asserts at: t/t_assert_ctl_arg.v:103 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:103 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:103 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:103 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:103 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:103 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:103 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:103 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:103 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:103 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:103 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:103 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:103 +========== +Running all asserts at: t/t_assert_ctl_arg.v:106 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:106 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:106 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:106 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:106 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:106 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:106 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:106 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:106 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:106 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:106 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:106 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:106 +Passed 'top.t.cover_simple_immediate_stmt_106' at t/t_assert_ctl_arg.v:106 +Passed 'top.t.cover_observed_deferred_immediate_stmt_106' at t/t_assert_ctl_arg.v:106 +Passed 'top.t.cover_final_deferred_immediate_stmt_106' at t/t_assert_ctl_arg.v:106 +========== +Running all asserts at: t/t_assert_ctl_arg.v:108 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:108 +[0] %Error: t_assert_ctl_arg.v:135: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_arg.v:108 +Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:108 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:108 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:108 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:108 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:108 +[0] %Error: t_assert_ctl_arg.v:149: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:108 +Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:108 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:108 +[0] %Error: t_assert_ctl_arg.v:155: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_arg.v:108 +Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:108 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:108 +[0] %Error: t_assert_ctl_arg.v:163: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:108 +Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:108 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:108 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:108 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:108 +Passed 'top.t.cover_simple_immediate_stmt_108' at t/t_assert_ctl_arg.v:108 +Passed 'top.t.cover_observed_deferred_immediate_stmt_108' at t/t_assert_ctl_arg.v:108 +Passed 'top.t.cover_final_deferred_immediate_stmt_108' at t/t_assert_ctl_arg.v:108 +========== +Running all asserts at: t/t_assert_ctl_arg.v:110 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:110 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:110 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:110 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:110 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:110 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:110 +========== +Running all asserts at: t/t_assert_ctl_arg.v:112 +========== +Testing assert_simple_immediate at t/t_assert_ctl_arg.v:112 +Testing assume_simple_immediate at t/t_assert_ctl_arg.v:112 +[0] %Error: t_assert_ctl_arg.v:141: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_arg.v:112 +Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_arg.v:112 +Testing assert_observed_deferred_immediate at t/t_assert_ctl_arg.v:112 +Testing assume_observed_deferred_immediate at t/t_assert_ctl_arg.v:112 +Testing assert_final_deferred_immediate at t/t_assert_ctl_arg.v:112 +Testing assume_final_deferred_immediate at t/t_assert_ctl_arg.v:112 +[0] %Error: t_assert_ctl_arg.v:169: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_arg.v:112 +Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_arg.v:112 +Passed 'top.t.cover_simple_immediate_stmt_112' at t/t_assert_ctl_arg.v:112 +Passed 'top.t.cover_final_deferred_immediate_stmt_112' at t/t_assert_ctl_arg.v:112 +Disabling concurrent asserts, time: 10 +Enabling concurrent asserts, time: 20 +[20] %Error: t_assert_ctl_arg.v:180: Assertion failed in top.t.concurrent.assert_concurrent: 'assert' failed. +Failed 'top.t.concurrent.assert_concurrent_else' at t/t_assert_ctl_arg.v:181 +Failed 'top.t.concurrent.assert_concurrent_stmt_else' at t/t_assert_ctl_arg.v:183 +[20] %Error: t_assert_ctl_arg.v:185: Assertion failed in top.t.concurrent.assume_concurrent: 'assert' failed. +Failed 'top.t.concurrent.assume_concurrent_else' at t/t_assert_ctl_arg.v:186 +Failed 'top.t.concurrent.assume_concurrent_stmt_else' at t/t_assert_ctl_arg.v:188 diff --git a/test_regress/t/t_assert_ctl_assertion_type.pl b/test_regress/t/t_assert_ctl_arg.pl similarity index 65% rename from test_regress/t/t_assert_ctl_assertion_type.pl rename to test_regress/t/t_assert_ctl_arg.pl index 379b002aa..c669fed5e 100755 --- a/test_regress/t/t_assert_ctl_assertion_type.pl +++ b/test_regress/t/t_assert_ctl_arg.pl @@ -11,8 +11,10 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di scenarios(vlt => 1); compile( - verilator_flags2 => ['--assert --timing --coverage-user'], - nc_flags2 => ["+nccovoverwrite +nccoverage+all +nccovtest+$Self->{name}"] + make_top_shell => 0, + make_main => 0, + verilator_flags2 => ["--assert", "--timing", "--coverage-user", "--exe $Self->{t_dir}/$Self->{name}.cpp"], + nc_flags2 => ["+nccovoverwrite", "+nccoverage+all", "+nccovtest+$Self->{name}"], ); execute( @@ -20,7 +22,7 @@ execute( expect_filename => $Self->{golden_filename}, ); -files_identical($Self->{coverage_filename}, "t/t_assert_ctl_assertion_type_coverage.out"); +files_identical($Self->{coverage_filename}, "$Self->{t_dir}/t_assert_ctl_arg_coverage.out"); ok(1); 1; diff --git a/test_regress/t/t_assert_ctl_assertion_type.v b/test_regress/t/t_assert_ctl_arg.v similarity index 85% rename from test_regress/t/t_assert_ctl_assertion_type.v rename to test_regress/t/t_assert_ctl_arg.v index 40c8ef047..04f88ca05 100644 --- a/test_regress/t/t_assert_ctl_assertion_type.v +++ b/test_regress/t/t_assert_ctl_arg.v @@ -34,27 +34,31 @@ module t (/*AUTOARG*/ let OBSERVED_DEFERRED_IMMEDIATE = 4; let FINAL_DEFERRED_IMMEDIATE = 8; - let ALL = CONCURRENT|SIMPLE_IMMEDIATE|OBSERVED_DEFERRED_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE; + let ALL_TYPES = CONCURRENT|SIMPLE_IMMEDIATE|OBSERVED_DEFERRED_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE; + + let ASSERT = 1; + let COVER = 2; + let ASSUME = 4; concurrent concurrent(.clk(clk)); initial begin // simple immediate - $assertcontrol(OFF, ALL); + $assertcontrol(OFF, ALL_TYPES); $assertcontrol(ON, SIMPLE_IMMEDIATE); `RUN_ALL_ASSERTS $assertcontrol(OFF, SIMPLE_IMMEDIATE); `RUN_ALL_ASSERTS // observed deferred immediate - $assertcontrol(OFF, ALL); + $assertcontrol(OFF, ALL_TYPES); $assertcontrol(ON, OBSERVED_DEFERRED_IMMEDIATE); `RUN_ALL_ASSERTS $assertcontrol(OFF, OBSERVED_DEFERRED_IMMEDIATE); `RUN_ALL_ASSERTS // final deferred immediate - $assertcontrol(OFF, ALL); + $assertcontrol(OFF, ALL_TYPES); $assertcontrol(ON, FINAL_DEFERRED_IMMEDIATE); `RUN_ALL_ASSERTS $assertcontrol(OFF, FINAL_DEFERRED_IMMEDIATE); @@ -80,17 +84,38 @@ module t (/*AUTOARG*/ `RUN_ALL_ASSERTS; $assertcontrol(ON, SIMPLE_IMMEDIATE); `RUN_ALL_ASSERTS; - $assertcontrol(OFF, ALL); + $assertcontrol(OFF, ALL_TYPES); `RUN_ALL_ASSERTS; - $assertcontrol(ON, ALL); + $assertcontrol(ON, ALL_TYPES); `RUN_ALL_ASSERTS; - $assertcontrol(KILL, ALL); + $assertcontrol(KILL, ALL_TYPES); `RUN_ALL_ASSERTS; + // directive_type test + $assertoff; + $assertcontrol(ON, ALL_TYPES, ASSERT); + `RUN_ALL_ASSERTS; + $assertcontrol(OFF, ALL_TYPES, ASSERT); + $assertcontrol(ON, ALL_TYPES, COVER); + `RUN_ALL_ASSERTS; + $assertcontrol(OFF, ALL_TYPES, COVER); + $assertcontrol(ON, ALL_TYPES, ASSUME); + `RUN_ALL_ASSERTS; + $assertcontrol(OFF, ALL_TYPES, ASSUME); + $assertcontrol(ON, ALL_TYPES, ASSERT|COVER); + `RUN_ALL_ASSERTS; + $assertcontrol(ON, ALL_TYPES, ASSUME); + `RUN_ALL_ASSERTS; + $assertoff; + `RUN_ALL_ASSERTS; + $assertcontrol(ON, SIMPLE_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE, COVER|ASSUME); + `RUN_ALL_ASSERTS; + $assertoff; + // concurrent test #10; $display("Disabling concurrent asserts, time: %g", $time); - $assertcontrol(ON, ALL); + $assertcontrol(ON, ALL_TYPES); $assertcontrol(OFF, CONCURRENT); #10; $display("Enabling concurrent asserts, time: %g", $time); diff --git a/test_regress/t/t_assert_ctl_arg_coverage.out b/test_regress/t/t_assert_ctl_arg_coverage.out new file mode 100644 index 000000000..792a95c95 --- /dev/null +++ b/test_regress/t/t_assert_ctl_arg_coverage.out @@ -0,0 +1,153 @@ +# SystemC::Coverage-3 +C 'ft/t_assert_ctl_arg.vl100n32pagev_user/tocover_simple_immediate_100htop.t.cover_simple_immediate_100' 1 +C 'ft/t_assert_ctl_arg.vl100n37pagev_user/tocover_simple_immediate_stmt_100htop.t.cover_simple_immediate_stmt_100' 1 +C 'ft/t_assert_ctl_arg.vl100n40pagev_user/tocover_final_deferred_immediate_100htop.t.cover_final_deferred_immediate_100' 1 +C 'ft/t_assert_ctl_arg.vl100n43pagev_user/tocover_observed_deferred_immediate_100htop.t.cover_observed_deferred_immediate_100' 1 +C 'ft/t_assert_ctl_arg.vl100n45pagev_user/tocover_final_deferred_immediate_stmt_100htop.t.cover_final_deferred_immediate_stmt_100' 1 +C 'ft/t_assert_ctl_arg.vl100n48pagev_user/tocover_observed_deferred_immediate_stmt_100htop.t.cover_observed_deferred_immediate_stmt_100' 1 +C 'ft/t_assert_ctl_arg.vl103n32pagev_user/tocover_simple_immediate_103htop.t.cover_simple_immediate_103' 0 +C 'ft/t_assert_ctl_arg.vl103n37pagev_user/tocover_simple_immediate_stmt_103htop.t.cover_simple_immediate_stmt_103' 0 +C 'ft/t_assert_ctl_arg.vl103n40pagev_user/tocover_final_deferred_immediate_103htop.t.cover_final_deferred_immediate_103' 0 +C 'ft/t_assert_ctl_arg.vl103n43pagev_user/tocover_observed_deferred_immediate_103htop.t.cover_observed_deferred_immediate_103' 0 +C 'ft/t_assert_ctl_arg.vl103n45pagev_user/tocover_final_deferred_immediate_stmt_103htop.t.cover_final_deferred_immediate_stmt_103' 0 +C 'ft/t_assert_ctl_arg.vl103n48pagev_user/tocover_observed_deferred_immediate_stmt_103htop.t.cover_observed_deferred_immediate_stmt_103' 0 +C 'ft/t_assert_ctl_arg.vl106n32pagev_user/tocover_simple_immediate_106htop.t.cover_simple_immediate_106' 1 +C 'ft/t_assert_ctl_arg.vl106n37pagev_user/tocover_simple_immediate_stmt_106htop.t.cover_simple_immediate_stmt_106' 1 +C 'ft/t_assert_ctl_arg.vl106n40pagev_user/tocover_final_deferred_immediate_106htop.t.cover_final_deferred_immediate_106' 1 +C 'ft/t_assert_ctl_arg.vl106n43pagev_user/tocover_observed_deferred_immediate_106htop.t.cover_observed_deferred_immediate_106' 1 +C 'ft/t_assert_ctl_arg.vl106n45pagev_user/tocover_final_deferred_immediate_stmt_106htop.t.cover_final_deferred_immediate_stmt_106' 1 +C 'ft/t_assert_ctl_arg.vl106n48pagev_user/tocover_observed_deferred_immediate_stmt_106htop.t.cover_observed_deferred_immediate_stmt_106' 1 +C 'ft/t_assert_ctl_arg.vl108n32pagev_user/tocover_simple_immediate_108htop.t.cover_simple_immediate_108' 1 +C 'ft/t_assert_ctl_arg.vl108n37pagev_user/tocover_simple_immediate_stmt_108htop.t.cover_simple_immediate_stmt_108' 1 +C 'ft/t_assert_ctl_arg.vl108n40pagev_user/tocover_final_deferred_immediate_108htop.t.cover_final_deferred_immediate_108' 1 +C 'ft/t_assert_ctl_arg.vl108n43pagev_user/tocover_observed_deferred_immediate_108htop.t.cover_observed_deferred_immediate_108' 1 +C 'ft/t_assert_ctl_arg.vl108n45pagev_user/tocover_final_deferred_immediate_stmt_108htop.t.cover_final_deferred_immediate_stmt_108' 1 +C 'ft/t_assert_ctl_arg.vl108n48pagev_user/tocover_observed_deferred_immediate_stmt_108htop.t.cover_observed_deferred_immediate_stmt_108' 1 +C 'ft/t_assert_ctl_arg.vl110n32pagev_user/tocover_simple_immediate_110htop.t.cover_simple_immediate_110' 0 +C 'ft/t_assert_ctl_arg.vl110n37pagev_user/tocover_simple_immediate_stmt_110htop.t.cover_simple_immediate_stmt_110' 0 +C 'ft/t_assert_ctl_arg.vl110n40pagev_user/tocover_final_deferred_immediate_110htop.t.cover_final_deferred_immediate_110' 0 +C 'ft/t_assert_ctl_arg.vl110n43pagev_user/tocover_observed_deferred_immediate_110htop.t.cover_observed_deferred_immediate_110' 0 +C 'ft/t_assert_ctl_arg.vl110n45pagev_user/tocover_final_deferred_immediate_stmt_110htop.t.cover_final_deferred_immediate_stmt_110' 0 +C 'ft/t_assert_ctl_arg.vl110n48pagev_user/tocover_observed_deferred_immediate_stmt_110htop.t.cover_observed_deferred_immediate_stmt_110' 0 +C 'ft/t_assert_ctl_arg.vl112n32pagev_user/tocover_simple_immediate_112htop.t.cover_simple_immediate_112' 1 +C 'ft/t_assert_ctl_arg.vl112n37pagev_user/tocover_simple_immediate_stmt_112htop.t.cover_simple_immediate_stmt_112' 1 +C 'ft/t_assert_ctl_arg.vl112n40pagev_user/tocover_final_deferred_immediate_112htop.t.cover_final_deferred_immediate_112' 1 +C 'ft/t_assert_ctl_arg.vl112n43pagev_user/tocover_observed_deferred_immediate_112htop.t.cover_observed_deferred_immediate_112' 0 +C 'ft/t_assert_ctl_arg.vl112n45pagev_user/tocover_final_deferred_immediate_stmt_112htop.t.cover_final_deferred_immediate_stmt_112' 1 +C 'ft/t_assert_ctl_arg.vl112n48pagev_user/tocover_observed_deferred_immediate_stmt_112htop.t.cover_observed_deferred_immediate_stmt_112' 0 +C 'ft/t_assert_ctl_arg.vl190n22pagev_user/concurrentocover_concurrenthtop.t.concurrent.cover_concurrent' 0 +C 'ft/t_assert_ctl_arg.vl191n27pagev_user/concurrentocover_concurrent_stmthtop.t.concurrent.cover_concurrent_stmt' 0 +C 'ft/t_assert_ctl_arg.vl49n31pagev_user/tocover_simple_immediate_49htop.t.cover_simple_immediate_49' 1 +C 'ft/t_assert_ctl_arg.vl49n36pagev_user/tocover_simple_immediate_stmt_49htop.t.cover_simple_immediate_stmt_49' 1 +C 'ft/t_assert_ctl_arg.vl49n39pagev_user/tocover_final_deferred_immediate_49htop.t.cover_final_deferred_immediate_49' 0 +C 'ft/t_assert_ctl_arg.vl49n42pagev_user/tocover_observed_deferred_immediate_49htop.t.cover_observed_deferred_immediate_49' 0 +C 'ft/t_assert_ctl_arg.vl49n44pagev_user/tocover_final_deferred_immediate_stmt_49htop.t.cover_final_deferred_immediate_stmt_49' 0 +C 'ft/t_assert_ctl_arg.vl49n47pagev_user/tocover_observed_deferred_immediate_stmt_49htop.t.cover_observed_deferred_immediate_stmt_49' 0 +C 'ft/t_assert_ctl_arg.vl51n31pagev_user/tocover_simple_immediate_51htop.t.cover_simple_immediate_51' 0 +C 'ft/t_assert_ctl_arg.vl51n36pagev_user/tocover_simple_immediate_stmt_51htop.t.cover_simple_immediate_stmt_51' 0 +C 'ft/t_assert_ctl_arg.vl51n39pagev_user/tocover_final_deferred_immediate_51htop.t.cover_final_deferred_immediate_51' 0 +C 'ft/t_assert_ctl_arg.vl51n42pagev_user/tocover_observed_deferred_immediate_51htop.t.cover_observed_deferred_immediate_51' 0 +C 'ft/t_assert_ctl_arg.vl51n44pagev_user/tocover_final_deferred_immediate_stmt_51htop.t.cover_final_deferred_immediate_stmt_51' 0 +C 'ft/t_assert_ctl_arg.vl51n47pagev_user/tocover_observed_deferred_immediate_stmt_51htop.t.cover_observed_deferred_immediate_stmt_51' 0 +C 'ft/t_assert_ctl_arg.vl56n31pagev_user/tocover_simple_immediate_56htop.t.cover_simple_immediate_56' 0 +C 'ft/t_assert_ctl_arg.vl56n36pagev_user/tocover_simple_immediate_stmt_56htop.t.cover_simple_immediate_stmt_56' 0 +C 'ft/t_assert_ctl_arg.vl56n39pagev_user/tocover_final_deferred_immediate_56htop.t.cover_final_deferred_immediate_56' 0 +C 'ft/t_assert_ctl_arg.vl56n42pagev_user/tocover_observed_deferred_immediate_56htop.t.cover_observed_deferred_immediate_56' 1 +C 'ft/t_assert_ctl_arg.vl56n44pagev_user/tocover_final_deferred_immediate_stmt_56htop.t.cover_final_deferred_immediate_stmt_56' 0 +C 'ft/t_assert_ctl_arg.vl56n47pagev_user/tocover_observed_deferred_immediate_stmt_56htop.t.cover_observed_deferred_immediate_stmt_56' 1 +C 'ft/t_assert_ctl_arg.vl58n31pagev_user/tocover_simple_immediate_58htop.t.cover_simple_immediate_58' 0 +C 'ft/t_assert_ctl_arg.vl58n36pagev_user/tocover_simple_immediate_stmt_58htop.t.cover_simple_immediate_stmt_58' 0 +C 'ft/t_assert_ctl_arg.vl58n39pagev_user/tocover_final_deferred_immediate_58htop.t.cover_final_deferred_immediate_58' 0 +C 'ft/t_assert_ctl_arg.vl58n42pagev_user/tocover_observed_deferred_immediate_58htop.t.cover_observed_deferred_immediate_58' 0 +C 'ft/t_assert_ctl_arg.vl58n44pagev_user/tocover_final_deferred_immediate_stmt_58htop.t.cover_final_deferred_immediate_stmt_58' 0 +C 'ft/t_assert_ctl_arg.vl58n47pagev_user/tocover_observed_deferred_immediate_stmt_58htop.t.cover_observed_deferred_immediate_stmt_58' 0 +C 'ft/t_assert_ctl_arg.vl63n31pagev_user/tocover_simple_immediate_63htop.t.cover_simple_immediate_63' 0 +C 'ft/t_assert_ctl_arg.vl63n36pagev_user/tocover_simple_immediate_stmt_63htop.t.cover_simple_immediate_stmt_63' 0 +C 'ft/t_assert_ctl_arg.vl63n39pagev_user/tocover_final_deferred_immediate_63htop.t.cover_final_deferred_immediate_63' 1 +C 'ft/t_assert_ctl_arg.vl63n42pagev_user/tocover_observed_deferred_immediate_63htop.t.cover_observed_deferred_immediate_63' 0 +C 'ft/t_assert_ctl_arg.vl63n44pagev_user/tocover_final_deferred_immediate_stmt_63htop.t.cover_final_deferred_immediate_stmt_63' 1 +C 'ft/t_assert_ctl_arg.vl63n47pagev_user/tocover_observed_deferred_immediate_stmt_63htop.t.cover_observed_deferred_immediate_stmt_63' 0 +C 'ft/t_assert_ctl_arg.vl65n31pagev_user/tocover_simple_immediate_65htop.t.cover_simple_immediate_65' 0 +C 'ft/t_assert_ctl_arg.vl65n36pagev_user/tocover_simple_immediate_stmt_65htop.t.cover_simple_immediate_stmt_65' 0 +C 'ft/t_assert_ctl_arg.vl65n39pagev_user/tocover_final_deferred_immediate_65htop.t.cover_final_deferred_immediate_65' 0 +C 'ft/t_assert_ctl_arg.vl65n42pagev_user/tocover_observed_deferred_immediate_65htop.t.cover_observed_deferred_immediate_65' 0 +C 'ft/t_assert_ctl_arg.vl65n44pagev_user/tocover_final_deferred_immediate_stmt_65htop.t.cover_final_deferred_immediate_stmt_65' 0 +C 'ft/t_assert_ctl_arg.vl65n47pagev_user/tocover_observed_deferred_immediate_stmt_65htop.t.cover_observed_deferred_immediate_stmt_65' 0 +C 'ft/t_assert_ctl_arg.vl69n31pagev_user/tocover_simple_immediate_69htop.t.cover_simple_immediate_69' 0 +C 'ft/t_assert_ctl_arg.vl69n36pagev_user/tocover_simple_immediate_stmt_69htop.t.cover_simple_immediate_stmt_69' 0 +C 'ft/t_assert_ctl_arg.vl69n39pagev_user/tocover_final_deferred_immediate_69htop.t.cover_final_deferred_immediate_69' 0 +C 'ft/t_assert_ctl_arg.vl69n42pagev_user/tocover_observed_deferred_immediate_69htop.t.cover_observed_deferred_immediate_69' 0 +C 'ft/t_assert_ctl_arg.vl69n44pagev_user/tocover_final_deferred_immediate_stmt_69htop.t.cover_final_deferred_immediate_stmt_69' 0 +C 'ft/t_assert_ctl_arg.vl69n47pagev_user/tocover_observed_deferred_immediate_stmt_69htop.t.cover_observed_deferred_immediate_stmt_69' 0 +C 'ft/t_assert_ctl_arg.vl71n31pagev_user/tocover_simple_immediate_71htop.t.cover_simple_immediate_71' 1 +C 'ft/t_assert_ctl_arg.vl71n36pagev_user/tocover_simple_immediate_stmt_71htop.t.cover_simple_immediate_stmt_71' 1 +C 'ft/t_assert_ctl_arg.vl71n39pagev_user/tocover_final_deferred_immediate_71htop.t.cover_final_deferred_immediate_71' 1 +C 'ft/t_assert_ctl_arg.vl71n42pagev_user/tocover_observed_deferred_immediate_71htop.t.cover_observed_deferred_immediate_71' 1 +C 'ft/t_assert_ctl_arg.vl71n44pagev_user/tocover_final_deferred_immediate_stmt_71htop.t.cover_final_deferred_immediate_stmt_71' 1 +C 'ft/t_assert_ctl_arg.vl71n47pagev_user/tocover_observed_deferred_immediate_stmt_71htop.t.cover_observed_deferred_immediate_stmt_71' 1 +C 'ft/t_assert_ctl_arg.vl73n31pagev_user/tocover_simple_immediate_73htop.t.cover_simple_immediate_73' 0 +C 'ft/t_assert_ctl_arg.vl73n36pagev_user/tocover_simple_immediate_stmt_73htop.t.cover_simple_immediate_stmt_73' 0 +C 'ft/t_assert_ctl_arg.vl73n39pagev_user/tocover_final_deferred_immediate_73htop.t.cover_final_deferred_immediate_73' 0 +C 'ft/t_assert_ctl_arg.vl73n42pagev_user/tocover_observed_deferred_immediate_73htop.t.cover_observed_deferred_immediate_73' 0 +C 'ft/t_assert_ctl_arg.vl73n44pagev_user/tocover_final_deferred_immediate_stmt_73htop.t.cover_final_deferred_immediate_stmt_73' 0 +C 'ft/t_assert_ctl_arg.vl73n47pagev_user/tocover_observed_deferred_immediate_stmt_73htop.t.cover_observed_deferred_immediate_stmt_73' 0 +C 'ft/t_assert_ctl_arg.vl76n31pagev_user/tocover_simple_immediate_76htop.t.cover_simple_immediate_76' 1 +C 'ft/t_assert_ctl_arg.vl76n36pagev_user/tocover_simple_immediate_stmt_76htop.t.cover_simple_immediate_stmt_76' 1 +C 'ft/t_assert_ctl_arg.vl76n39pagev_user/tocover_final_deferred_immediate_76htop.t.cover_final_deferred_immediate_76' 0 +C 'ft/t_assert_ctl_arg.vl76n42pagev_user/tocover_observed_deferred_immediate_76htop.t.cover_observed_deferred_immediate_76' 1 +C 'ft/t_assert_ctl_arg.vl76n44pagev_user/tocover_final_deferred_immediate_stmt_76htop.t.cover_final_deferred_immediate_stmt_76' 0 +C 'ft/t_assert_ctl_arg.vl76n47pagev_user/tocover_observed_deferred_immediate_stmt_76htop.t.cover_observed_deferred_immediate_stmt_76' 1 +C 'ft/t_assert_ctl_arg.vl78n31pagev_user/tocover_simple_immediate_78htop.t.cover_simple_immediate_78' 1 +C 'ft/t_assert_ctl_arg.vl78n36pagev_user/tocover_simple_immediate_stmt_78htop.t.cover_simple_immediate_stmt_78' 1 +C 'ft/t_assert_ctl_arg.vl78n39pagev_user/tocover_final_deferred_immediate_78htop.t.cover_final_deferred_immediate_78' 1 +C 'ft/t_assert_ctl_arg.vl78n42pagev_user/tocover_observed_deferred_immediate_78htop.t.cover_observed_deferred_immediate_78' 1 +C 'ft/t_assert_ctl_arg.vl78n44pagev_user/tocover_final_deferred_immediate_stmt_78htop.t.cover_final_deferred_immediate_stmt_78' 1 +C 'ft/t_assert_ctl_arg.vl78n47pagev_user/tocover_observed_deferred_immediate_stmt_78htop.t.cover_observed_deferred_immediate_stmt_78' 1 +C 'ft/t_assert_ctl_arg.vl80n31pagev_user/tocover_simple_immediate_80htop.t.cover_simple_immediate_80' 1 +C 'ft/t_assert_ctl_arg.vl80n36pagev_user/tocover_simple_immediate_stmt_80htop.t.cover_simple_immediate_stmt_80' 1 +C 'ft/t_assert_ctl_arg.vl80n39pagev_user/tocover_final_deferred_immediate_80htop.t.cover_final_deferred_immediate_80' 0 +C 'ft/t_assert_ctl_arg.vl80n42pagev_user/tocover_observed_deferred_immediate_80htop.t.cover_observed_deferred_immediate_80' 0 +C 'ft/t_assert_ctl_arg.vl80n44pagev_user/tocover_final_deferred_immediate_stmt_80htop.t.cover_final_deferred_immediate_stmt_80' 0 +C 'ft/t_assert_ctl_arg.vl80n47pagev_user/tocover_observed_deferred_immediate_stmt_80htop.t.cover_observed_deferred_immediate_stmt_80' 0 +C 'ft/t_assert_ctl_arg.vl82n31pagev_user/tocover_simple_immediate_82htop.t.cover_simple_immediate_82' 1 +C 'ft/t_assert_ctl_arg.vl82n36pagev_user/tocover_simple_immediate_stmt_82htop.t.cover_simple_immediate_stmt_82' 1 +C 'ft/t_assert_ctl_arg.vl82n39pagev_user/tocover_final_deferred_immediate_82htop.t.cover_final_deferred_immediate_82' 0 +C 'ft/t_assert_ctl_arg.vl82n42pagev_user/tocover_observed_deferred_immediate_82htop.t.cover_observed_deferred_immediate_82' 0 +C 'ft/t_assert_ctl_arg.vl82n44pagev_user/tocover_final_deferred_immediate_stmt_82htop.t.cover_final_deferred_immediate_stmt_82' 0 +C 'ft/t_assert_ctl_arg.vl82n47pagev_user/tocover_observed_deferred_immediate_stmt_82htop.t.cover_observed_deferred_immediate_stmt_82' 0 +C 'ft/t_assert_ctl_arg.vl84n31pagev_user/tocover_simple_immediate_84htop.t.cover_simple_immediate_84' 0 +C 'ft/t_assert_ctl_arg.vl84n36pagev_user/tocover_simple_immediate_stmt_84htop.t.cover_simple_immediate_stmt_84' 0 +C 'ft/t_assert_ctl_arg.vl84n39pagev_user/tocover_final_deferred_immediate_84htop.t.cover_final_deferred_immediate_84' 0 +C 'ft/t_assert_ctl_arg.vl84n42pagev_user/tocover_observed_deferred_immediate_84htop.t.cover_observed_deferred_immediate_84' 0 +C 'ft/t_assert_ctl_arg.vl84n44pagev_user/tocover_final_deferred_immediate_stmt_84htop.t.cover_final_deferred_immediate_stmt_84' 0 +C 'ft/t_assert_ctl_arg.vl84n47pagev_user/tocover_observed_deferred_immediate_stmt_84htop.t.cover_observed_deferred_immediate_stmt_84' 0 +C 'ft/t_assert_ctl_arg.vl86n31pagev_user/tocover_simple_immediate_86htop.t.cover_simple_immediate_86' 1 +C 'ft/t_assert_ctl_arg.vl86n36pagev_user/tocover_simple_immediate_stmt_86htop.t.cover_simple_immediate_stmt_86' 1 +C 'ft/t_assert_ctl_arg.vl86n39pagev_user/tocover_final_deferred_immediate_86htop.t.cover_final_deferred_immediate_86' 0 +C 'ft/t_assert_ctl_arg.vl86n42pagev_user/tocover_observed_deferred_immediate_86htop.t.cover_observed_deferred_immediate_86' 0 +C 'ft/t_assert_ctl_arg.vl86n44pagev_user/tocover_final_deferred_immediate_stmt_86htop.t.cover_final_deferred_immediate_stmt_86' 0 +C 'ft/t_assert_ctl_arg.vl86n47pagev_user/tocover_observed_deferred_immediate_stmt_86htop.t.cover_observed_deferred_immediate_stmt_86' 0 +C 'ft/t_assert_ctl_arg.vl88n31pagev_user/tocover_simple_immediate_88htop.t.cover_simple_immediate_88' 0 +C 'ft/t_assert_ctl_arg.vl88n36pagev_user/tocover_simple_immediate_stmt_88htop.t.cover_simple_immediate_stmt_88' 0 +C 'ft/t_assert_ctl_arg.vl88n39pagev_user/tocover_final_deferred_immediate_88htop.t.cover_final_deferred_immediate_88' 0 +C 'ft/t_assert_ctl_arg.vl88n42pagev_user/tocover_observed_deferred_immediate_88htop.t.cover_observed_deferred_immediate_88' 0 +C 'ft/t_assert_ctl_arg.vl88n44pagev_user/tocover_final_deferred_immediate_stmt_88htop.t.cover_final_deferred_immediate_stmt_88' 0 +C 'ft/t_assert_ctl_arg.vl88n47pagev_user/tocover_observed_deferred_immediate_stmt_88htop.t.cover_observed_deferred_immediate_stmt_88' 0 +C 'ft/t_assert_ctl_arg.vl90n31pagev_user/tocover_simple_immediate_90htop.t.cover_simple_immediate_90' 1 +C 'ft/t_assert_ctl_arg.vl90n36pagev_user/tocover_simple_immediate_stmt_90htop.t.cover_simple_immediate_stmt_90' 1 +C 'ft/t_assert_ctl_arg.vl90n39pagev_user/tocover_final_deferred_immediate_90htop.t.cover_final_deferred_immediate_90' 1 +C 'ft/t_assert_ctl_arg.vl90n42pagev_user/tocover_observed_deferred_immediate_90htop.t.cover_observed_deferred_immediate_90' 1 +C 'ft/t_assert_ctl_arg.vl90n44pagev_user/tocover_final_deferred_immediate_stmt_90htop.t.cover_final_deferred_immediate_stmt_90' 1 +C 'ft/t_assert_ctl_arg.vl90n47pagev_user/tocover_observed_deferred_immediate_stmt_90htop.t.cover_observed_deferred_immediate_stmt_90' 1 +C 'ft/t_assert_ctl_arg.vl92n31pagev_user/tocover_simple_immediate_92htop.t.cover_simple_immediate_92' 0 +C 'ft/t_assert_ctl_arg.vl92n36pagev_user/tocover_simple_immediate_stmt_92htop.t.cover_simple_immediate_stmt_92' 0 +C 'ft/t_assert_ctl_arg.vl92n39pagev_user/tocover_final_deferred_immediate_92htop.t.cover_final_deferred_immediate_92' 0 +C 'ft/t_assert_ctl_arg.vl92n42pagev_user/tocover_observed_deferred_immediate_92htop.t.cover_observed_deferred_immediate_92' 0 +C 'ft/t_assert_ctl_arg.vl92n44pagev_user/tocover_final_deferred_immediate_stmt_92htop.t.cover_final_deferred_immediate_stmt_92' 0 +C 'ft/t_assert_ctl_arg.vl92n47pagev_user/tocover_observed_deferred_immediate_stmt_92htop.t.cover_observed_deferred_immediate_stmt_92' 0 +C 'ft/t_assert_ctl_arg.vl97n31pagev_user/tocover_simple_immediate_97htop.t.cover_simple_immediate_97' 0 +C 'ft/t_assert_ctl_arg.vl97n36pagev_user/tocover_simple_immediate_stmt_97htop.t.cover_simple_immediate_stmt_97' 0 +C 'ft/t_assert_ctl_arg.vl97n39pagev_user/tocover_final_deferred_immediate_97htop.t.cover_final_deferred_immediate_97' 0 +C 'ft/t_assert_ctl_arg.vl97n42pagev_user/tocover_observed_deferred_immediate_97htop.t.cover_observed_deferred_immediate_97' 0 +C 'ft/t_assert_ctl_arg.vl97n44pagev_user/tocover_final_deferred_immediate_stmt_97htop.t.cover_final_deferred_immediate_stmt_97' 0 +C 'ft/t_assert_ctl_arg.vl97n47pagev_user/tocover_observed_deferred_immediate_stmt_97htop.t.cover_observed_deferred_immediate_stmt_97' 0 diff --git a/test_regress/t/t_assert_ctl_arg_noinl.pl b/test_regress/t/t_assert_ctl_arg_noinl.pl new file mode 100755 index 000000000..32cb9b25f --- /dev/null +++ b/test_regress/t/t_assert_ctl_arg_noinl.pl @@ -0,0 +1,31 @@ +#!/usr/bin/env perl +if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; } +# DESCRIPTION: Verilator: Verilog Test driver/expect definition +# +# Copyright 2024 by Wilson Snyder. This program is free software; you +# can redistribute it and/or modify it under the terms of either the GNU +# Lesser General Public License Version 3 or the Perl Artistic License +# Version 2.0. +# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0 + +scenarios(vlt => 1); + +top_filename("t_assert_ctl_arg.v"); +compile( + make_top_shell => 0, + make_main => 0, + verilator_flags2 => [ + "--assert", "--timing", "--coverage-user", "--exe $Self->{t_dir}/t_assert_ctl_arg.cpp", "-fno-inline" + ], + nc_flags2 => ["+nccovoverwrite", "+nccoverage+all", "+nccovtest+$Self->{name}"], + ); + +execute( + all_run_flags => ["+verilator+error+limit+100"], + expect_filename => "$Self->{t_dir}/t_assert_ctl_arg.out", + ); + +files_identical($Self->{coverage_filename}, "$Self->{t_dir}/t_assert_ctl_arg_coverage.out"); + +ok(1); +1; diff --git a/test_regress/t/t_assert_ctl_arg_unsup.out b/test_regress/t/t_assert_ctl_arg_unsup.out new file mode 100644 index 000000000..863f8394b --- /dev/null +++ b/test_regress/t/t_assert_ctl_arg_unsup.out @@ -0,0 +1,18 @@ +%Error-UNSUPPORTED: t/t_assert_ctl_arg_unsup.v:15:7: Unsupported: assert control assertion_type + : ... note: In instance 't' + 15 | $assertcontrol(OFF, EXPECT); + | ^~~~~~~~~~~~~~ + ... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest +%Error-UNSUPPORTED: t/t_assert_ctl_arg_unsup.v:16:7: Unsupported: assert control assertion_type + : ... note: In instance 't' + 16 | $assertcontrol(OFF, UNIQUE); + | ^~~~~~~~~~~~~~ +%Error-UNSUPPORTED: t/t_assert_ctl_arg_unsup.v:17:7: Unsupported: assert control assertion_type + : ... note: In instance 't' + 17 | $assertcontrol(OFF, UNIQUE0); + | ^~~~~~~~~~~~~~ +%Error-UNSUPPORTED: t/t_assert_ctl_arg_unsup.v:18:7: Unsupported: assert control assertion_type + : ... note: In instance 't' + 18 | $assertcontrol(OFF, PRIORITY); + | ^~~~~~~~~~~~~~ +%Error: Exiting due to diff --git a/test_regress/t/t_assert_ctl_assertion_type_unsup.pl b/test_regress/t/t_assert_ctl_arg_unsup.pl similarity index 100% rename from test_regress/t/t_assert_ctl_assertion_type_unsup.pl rename to test_regress/t/t_assert_ctl_arg_unsup.pl diff --git a/test_regress/t/t_assert_ctl_assertion_type_unsup.v b/test_regress/t/t_assert_ctl_arg_unsup.v similarity index 100% rename from test_regress/t/t_assert_ctl_assertion_type_unsup.v rename to test_regress/t/t_assert_ctl_arg_unsup.v diff --git a/test_regress/t/t_assert_ctl_assertion_type.out b/test_regress/t/t_assert_ctl_assertion_type.out deleted file mode 100644 index b012e53cb..000000000 --- a/test_regress/t/t_assert_ctl_assertion_type.out +++ /dev/null @@ -1,290 +0,0 @@ -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:45 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:45 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. --Info: t/t_assert_ctl_assertion_type.v:110: Verilog $stop, ignored due to +verilator+error+limit -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:45 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:45 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:45 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:45 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:45 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:45 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:45 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:45 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:45 -Passed 'top.t.cover_simple_immediate_stmt_45' at t/t_assert_ctl_assertion_type.v:45 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:47 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:47 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:47 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:47 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:47 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:47 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:47 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:52 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:52 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:52 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:52 -[0] %Error: t_assert_ctl_assertion_type.v:124: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:52 -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:52 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:52 -[0] %Error: t_assert_ctl_assertion_type.v:130: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:52 -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:52 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:52 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:52 -Passed 'top.t.cover_observed_deferred_immediate_stmt_52' at t/t_assert_ctl_assertion_type.v:52 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:54 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:54 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:54 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:54 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:54 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:54 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:54 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:59 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:59 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:59 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:59 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:59 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:59 -[0] %Error: t_assert_ctl_assertion_type.v:138: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:59 -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:59 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:59 -[0] %Error: t_assert_ctl_assertion_type.v:144: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:59 -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:59 -Passed 'top.t.cover_final_deferred_immediate_stmt_59' at t/t_assert_ctl_assertion_type.v:59 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:61 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:61 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:61 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:61 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:61 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:61 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:61 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:65 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:65 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:65 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:65 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:65 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:65 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:65 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:67 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:67 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:67 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:67 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:67 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:67 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:67 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:67 -[0] %Error: t_assert_ctl_assertion_type.v:124: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:67 -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:67 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:67 -[0] %Error: t_assert_ctl_assertion_type.v:130: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:67 -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:67 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:67 -[0] %Error: t_assert_ctl_assertion_type.v:138: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:67 -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:67 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:67 -[0] %Error: t_assert_ctl_assertion_type.v:144: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:67 -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:67 -Passed 'top.t.cover_simple_immediate_stmt_67' at t/t_assert_ctl_assertion_type.v:67 -Passed 'top.t.cover_observed_deferred_immediate_stmt_67' at t/t_assert_ctl_assertion_type.v:67 -Passed 'top.t.cover_final_deferred_immediate_stmt_67' at t/t_assert_ctl_assertion_type.v:67 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:69 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:69 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:69 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:69 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:69 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:69 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:69 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:72 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:72 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:72 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:72 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:72 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:72 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:72 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:72 -[0] %Error: t_assert_ctl_assertion_type.v:124: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:72 -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:72 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:72 -[0] %Error: t_assert_ctl_assertion_type.v:130: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:72 -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:72 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:72 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:72 -Passed 'top.t.cover_simple_immediate_stmt_72' at t/t_assert_ctl_assertion_type.v:72 -Passed 'top.t.cover_observed_deferred_immediate_stmt_72' at t/t_assert_ctl_assertion_type.v:72 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:74 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:74 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:74 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:74 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:74 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:74 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:74 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:74 -[0] %Error: t_assert_ctl_assertion_type.v:124: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:74 -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:74 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:74 -[0] %Error: t_assert_ctl_assertion_type.v:130: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:74 -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:74 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:74 -[0] %Error: t_assert_ctl_assertion_type.v:138: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:74 -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:74 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:74 -[0] %Error: t_assert_ctl_assertion_type.v:144: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:74 -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:74 -Passed 'top.t.cover_simple_immediate_stmt_74' at t/t_assert_ctl_assertion_type.v:74 -Passed 'top.t.cover_observed_deferred_immediate_stmt_74' at t/t_assert_ctl_assertion_type.v:74 -Passed 'top.t.cover_final_deferred_immediate_stmt_74' at t/t_assert_ctl_assertion_type.v:74 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:76 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:76 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:76 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:76 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:76 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:76 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:76 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:76 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:76 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:76 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:76 -Passed 'top.t.cover_simple_immediate_stmt_76' at t/t_assert_ctl_assertion_type.v:76 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:78 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:78 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:78 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:78 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:78 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:78 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:78 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:78 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:78 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:78 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:78 -Passed 'top.t.cover_simple_immediate_stmt_78' at t/t_assert_ctl_assertion_type.v:78 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:80 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:80 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:80 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:80 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:80 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:80 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:80 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:82 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:82 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:82 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:82 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:82 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:82 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:82 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:82 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:82 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:82 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:82 -Passed 'top.t.cover_simple_immediate_stmt_82' at t/t_assert_ctl_assertion_type.v:82 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:84 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:84 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:84 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:84 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:84 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:84 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:84 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:86 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:86 -[0] %Error: t_assert_ctl_assertion_type.v:110: Assertion failed in top.$unit.run_simple_immediate.assert_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:86 -Failed 'top.$unit.run_simple_immediate.assert_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:86 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:86 -[0] %Error: t_assert_ctl_assertion_type.v:116: Assertion failed in top.$unit.run_simple_immediate.assume_simple_immediate: 'assert' failed. -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_else' at t/t_assert_ctl_assertion_type.v:86 -Failed 'top.$unit.run_simple_immediate.assume_simple_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:86 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:86 -[0] %Error: t_assert_ctl_assertion_type.v:124: Assertion failed in top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:86 -Failed 'top.$unit.run_observed_deferred_immediate.assert_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:86 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:86 -[0] %Error: t_assert_ctl_assertion_type.v:130: Assertion failed in top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:86 -Failed 'top.$unit.run_observed_deferred_immediate.assume_observed_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:86 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:86 -[0] %Error: t_assert_ctl_assertion_type.v:138: Assertion failed in top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:86 -Failed 'top.$unit.run_final_deferred_immediate.assert_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:86 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:86 -[0] %Error: t_assert_ctl_assertion_type.v:144: Assertion failed in top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate: 'assert' failed. -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_else' at t/t_assert_ctl_assertion_type.v:86 -Failed 'top.$unit.run_final_deferred_immediate.assume_final_deferred_immediate_stmt_else' at t/t_assert_ctl_assertion_type.v:86 -Passed 'top.t.cover_simple_immediate_stmt_86' at t/t_assert_ctl_assertion_type.v:86 -Passed 'top.t.cover_observed_deferred_immediate_stmt_86' at t/t_assert_ctl_assertion_type.v:86 -Passed 'top.t.cover_final_deferred_immediate_stmt_86' at t/t_assert_ctl_assertion_type.v:86 -========== -Running all asserts at: t/t_assert_ctl_assertion_type.v:88 -========== -Testing assert_simple_immediate at t/t_assert_ctl_assertion_type.v:88 -Testing assume_simple_immediate at t/t_assert_ctl_assertion_type.v:88 -Testing assert_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:88 -Testing assume_observed_deferred_immediate at t/t_assert_ctl_assertion_type.v:88 -Testing assert_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:88 -Testing assume_final_deferred_immediate at t/t_assert_ctl_assertion_type.v:88 -Disabling concurrent asserts, time: 10 -Enabling concurrent asserts, time: 20 -[20] %Error: t_assert_ctl_assertion_type.v:155: Assertion failed in top.t.concurrent.assert_concurrent: 'assert' failed. -Failed 'top.t.concurrent.assert_concurrent_else' at t/t_assert_ctl_assertion_type.v:156 -Failed 'top.t.concurrent.assert_concurrent_stmt_else' at t/t_assert_ctl_assertion_type.v:158 -[20] %Error: t_assert_ctl_assertion_type.v:160: Assertion failed in top.t.concurrent.assume_concurrent: 'assert' failed. -Failed 'top.t.concurrent.assume_concurrent_else' at t/t_assert_ctl_assertion_type.v:161 -Failed 'top.t.concurrent.assume_concurrent_stmt_else' at t/t_assert_ctl_assertion_type.v:163 diff --git a/test_regress/t/t_assert_ctl_assertion_type_coverage.out b/test_regress/t/t_assert_ctl_assertion_type_coverage.out deleted file mode 100644 index e06d252df..000000000 --- a/test_regress/t/t_assert_ctl_assertion_type_coverage.out +++ /dev/null @@ -1,111 +0,0 @@ -# SystemC::Coverage-3 -C 'ft/t_assert_ctl_assertion_type.vl165n22pagev_user/concurrentocover_concurrenthtop.t.concurrent.cover_concurrent' 0 -C 'ft/t_assert_ctl_assertion_type.vl166n27pagev_user/concurrentocover_concurrent_stmthtop.t.concurrent.cover_concurrent_stmt' 0 -C 'ft/t_assert_ctl_assertion_type.vl45n31pagev_user/tocover_simple_immediate_45htop.t.cover_simple_immediate_45' 1 -C 'ft/t_assert_ctl_assertion_type.vl45n36pagev_user/tocover_simple_immediate_stmt_45htop.t.cover_simple_immediate_stmt_45' 1 -C 'ft/t_assert_ctl_assertion_type.vl45n39pagev_user/tocover_final_deferred_immediate_45htop.t.cover_final_deferred_immediate_45' 0 -C 'ft/t_assert_ctl_assertion_type.vl45n42pagev_user/tocover_observed_deferred_immediate_45htop.t.cover_observed_deferred_immediate_45' 0 -C 'ft/t_assert_ctl_assertion_type.vl45n44pagev_user/tocover_final_deferred_immediate_stmt_45htop.t.cover_final_deferred_immediate_stmt_45' 0 -C 'ft/t_assert_ctl_assertion_type.vl45n47pagev_user/tocover_observed_deferred_immediate_stmt_45htop.t.cover_observed_deferred_immediate_stmt_45' 0 -C 'ft/t_assert_ctl_assertion_type.vl47n31pagev_user/tocover_simple_immediate_47htop.t.cover_simple_immediate_47' 0 -C 'ft/t_assert_ctl_assertion_type.vl47n36pagev_user/tocover_simple_immediate_stmt_47htop.t.cover_simple_immediate_stmt_47' 0 -C 'ft/t_assert_ctl_assertion_type.vl47n39pagev_user/tocover_final_deferred_immediate_47htop.t.cover_final_deferred_immediate_47' 0 -C 'ft/t_assert_ctl_assertion_type.vl47n42pagev_user/tocover_observed_deferred_immediate_47htop.t.cover_observed_deferred_immediate_47' 0 -C 'ft/t_assert_ctl_assertion_type.vl47n44pagev_user/tocover_final_deferred_immediate_stmt_47htop.t.cover_final_deferred_immediate_stmt_47' 0 -C 'ft/t_assert_ctl_assertion_type.vl47n47pagev_user/tocover_observed_deferred_immediate_stmt_47htop.t.cover_observed_deferred_immediate_stmt_47' 0 -C 'ft/t_assert_ctl_assertion_type.vl52n31pagev_user/tocover_simple_immediate_52htop.t.cover_simple_immediate_52' 0 -C 'ft/t_assert_ctl_assertion_type.vl52n36pagev_user/tocover_simple_immediate_stmt_52htop.t.cover_simple_immediate_stmt_52' 0 -C 'ft/t_assert_ctl_assertion_type.vl52n39pagev_user/tocover_final_deferred_immediate_52htop.t.cover_final_deferred_immediate_52' 0 -C 'ft/t_assert_ctl_assertion_type.vl52n42pagev_user/tocover_observed_deferred_immediate_52htop.t.cover_observed_deferred_immediate_52' 1 -C 'ft/t_assert_ctl_assertion_type.vl52n44pagev_user/tocover_final_deferred_immediate_stmt_52htop.t.cover_final_deferred_immediate_stmt_52' 0 -C 'ft/t_assert_ctl_assertion_type.vl52n47pagev_user/tocover_observed_deferred_immediate_stmt_52htop.t.cover_observed_deferred_immediate_stmt_52' 1 -C 'ft/t_assert_ctl_assertion_type.vl54n31pagev_user/tocover_simple_immediate_54htop.t.cover_simple_immediate_54' 0 -C 'ft/t_assert_ctl_assertion_type.vl54n36pagev_user/tocover_simple_immediate_stmt_54htop.t.cover_simple_immediate_stmt_54' 0 -C 'ft/t_assert_ctl_assertion_type.vl54n39pagev_user/tocover_final_deferred_immediate_54htop.t.cover_final_deferred_immediate_54' 0 -C 'ft/t_assert_ctl_assertion_type.vl54n42pagev_user/tocover_observed_deferred_immediate_54htop.t.cover_observed_deferred_immediate_54' 0 -C 'ft/t_assert_ctl_assertion_type.vl54n44pagev_user/tocover_final_deferred_immediate_stmt_54htop.t.cover_final_deferred_immediate_stmt_54' 0 -C 'ft/t_assert_ctl_assertion_type.vl54n47pagev_user/tocover_observed_deferred_immediate_stmt_54htop.t.cover_observed_deferred_immediate_stmt_54' 0 -C 'ft/t_assert_ctl_assertion_type.vl59n31pagev_user/tocover_simple_immediate_59htop.t.cover_simple_immediate_59' 0 -C 'ft/t_assert_ctl_assertion_type.vl59n36pagev_user/tocover_simple_immediate_stmt_59htop.t.cover_simple_immediate_stmt_59' 0 -C 'ft/t_assert_ctl_assertion_type.vl59n39pagev_user/tocover_final_deferred_immediate_59htop.t.cover_final_deferred_immediate_59' 1 -C 'ft/t_assert_ctl_assertion_type.vl59n42pagev_user/tocover_observed_deferred_immediate_59htop.t.cover_observed_deferred_immediate_59' 0 -C 'ft/t_assert_ctl_assertion_type.vl59n44pagev_user/tocover_final_deferred_immediate_stmt_59htop.t.cover_final_deferred_immediate_stmt_59' 1 -C 'ft/t_assert_ctl_assertion_type.vl59n47pagev_user/tocover_observed_deferred_immediate_stmt_59htop.t.cover_observed_deferred_immediate_stmt_59' 0 -C 'ft/t_assert_ctl_assertion_type.vl61n31pagev_user/tocover_simple_immediate_61htop.t.cover_simple_immediate_61' 0 -C 'ft/t_assert_ctl_assertion_type.vl61n36pagev_user/tocover_simple_immediate_stmt_61htop.t.cover_simple_immediate_stmt_61' 0 -C 'ft/t_assert_ctl_assertion_type.vl61n39pagev_user/tocover_final_deferred_immediate_61htop.t.cover_final_deferred_immediate_61' 0 -C 'ft/t_assert_ctl_assertion_type.vl61n42pagev_user/tocover_observed_deferred_immediate_61htop.t.cover_observed_deferred_immediate_61' 0 -C 'ft/t_assert_ctl_assertion_type.vl61n44pagev_user/tocover_final_deferred_immediate_stmt_61htop.t.cover_final_deferred_immediate_stmt_61' 0 -C 'ft/t_assert_ctl_assertion_type.vl61n47pagev_user/tocover_observed_deferred_immediate_stmt_61htop.t.cover_observed_deferred_immediate_stmt_61' 0 -C 'ft/t_assert_ctl_assertion_type.vl65n31pagev_user/tocover_simple_immediate_65htop.t.cover_simple_immediate_65' 0 -C 'ft/t_assert_ctl_assertion_type.vl65n36pagev_user/tocover_simple_immediate_stmt_65htop.t.cover_simple_immediate_stmt_65' 0 -C 'ft/t_assert_ctl_assertion_type.vl65n39pagev_user/tocover_final_deferred_immediate_65htop.t.cover_final_deferred_immediate_65' 0 -C 'ft/t_assert_ctl_assertion_type.vl65n42pagev_user/tocover_observed_deferred_immediate_65htop.t.cover_observed_deferred_immediate_65' 0 -C 'ft/t_assert_ctl_assertion_type.vl65n44pagev_user/tocover_final_deferred_immediate_stmt_65htop.t.cover_final_deferred_immediate_stmt_65' 0 -C 'ft/t_assert_ctl_assertion_type.vl65n47pagev_user/tocover_observed_deferred_immediate_stmt_65htop.t.cover_observed_deferred_immediate_stmt_65' 0 -C 'ft/t_assert_ctl_assertion_type.vl67n31pagev_user/tocover_simple_immediate_67htop.t.cover_simple_immediate_67' 1 -C 'ft/t_assert_ctl_assertion_type.vl67n36pagev_user/tocover_simple_immediate_stmt_67htop.t.cover_simple_immediate_stmt_67' 1 -C 'ft/t_assert_ctl_assertion_type.vl67n39pagev_user/tocover_final_deferred_immediate_67htop.t.cover_final_deferred_immediate_67' 1 -C 'ft/t_assert_ctl_assertion_type.vl67n42pagev_user/tocover_observed_deferred_immediate_67htop.t.cover_observed_deferred_immediate_67' 1 -C 'ft/t_assert_ctl_assertion_type.vl67n44pagev_user/tocover_final_deferred_immediate_stmt_67htop.t.cover_final_deferred_immediate_stmt_67' 1 -C 'ft/t_assert_ctl_assertion_type.vl67n47pagev_user/tocover_observed_deferred_immediate_stmt_67htop.t.cover_observed_deferred_immediate_stmt_67' 1 -C 'ft/t_assert_ctl_assertion_type.vl69n31pagev_user/tocover_simple_immediate_69htop.t.cover_simple_immediate_69' 0 -C 'ft/t_assert_ctl_assertion_type.vl69n36pagev_user/tocover_simple_immediate_stmt_69htop.t.cover_simple_immediate_stmt_69' 0 -C 'ft/t_assert_ctl_assertion_type.vl69n39pagev_user/tocover_final_deferred_immediate_69htop.t.cover_final_deferred_immediate_69' 0 -C 'ft/t_assert_ctl_assertion_type.vl69n42pagev_user/tocover_observed_deferred_immediate_69htop.t.cover_observed_deferred_immediate_69' 0 -C 'ft/t_assert_ctl_assertion_type.vl69n44pagev_user/tocover_final_deferred_immediate_stmt_69htop.t.cover_final_deferred_immediate_stmt_69' 0 -C 'ft/t_assert_ctl_assertion_type.vl69n47pagev_user/tocover_observed_deferred_immediate_stmt_69htop.t.cover_observed_deferred_immediate_stmt_69' 0 -C 'ft/t_assert_ctl_assertion_type.vl72n31pagev_user/tocover_simple_immediate_72htop.t.cover_simple_immediate_72' 1 -C 'ft/t_assert_ctl_assertion_type.vl72n36pagev_user/tocover_simple_immediate_stmt_72htop.t.cover_simple_immediate_stmt_72' 1 -C 'ft/t_assert_ctl_assertion_type.vl72n39pagev_user/tocover_final_deferred_immediate_72htop.t.cover_final_deferred_immediate_72' 0 -C 'ft/t_assert_ctl_assertion_type.vl72n42pagev_user/tocover_observed_deferred_immediate_72htop.t.cover_observed_deferred_immediate_72' 1 -C 'ft/t_assert_ctl_assertion_type.vl72n44pagev_user/tocover_final_deferred_immediate_stmt_72htop.t.cover_final_deferred_immediate_stmt_72' 0 -C 'ft/t_assert_ctl_assertion_type.vl72n47pagev_user/tocover_observed_deferred_immediate_stmt_72htop.t.cover_observed_deferred_immediate_stmt_72' 1 -C 'ft/t_assert_ctl_assertion_type.vl74n31pagev_user/tocover_simple_immediate_74htop.t.cover_simple_immediate_74' 1 -C 'ft/t_assert_ctl_assertion_type.vl74n36pagev_user/tocover_simple_immediate_stmt_74htop.t.cover_simple_immediate_stmt_74' 1 -C 'ft/t_assert_ctl_assertion_type.vl74n39pagev_user/tocover_final_deferred_immediate_74htop.t.cover_final_deferred_immediate_74' 1 -C 'ft/t_assert_ctl_assertion_type.vl74n42pagev_user/tocover_observed_deferred_immediate_74htop.t.cover_observed_deferred_immediate_74' 1 -C 'ft/t_assert_ctl_assertion_type.vl74n44pagev_user/tocover_final_deferred_immediate_stmt_74htop.t.cover_final_deferred_immediate_stmt_74' 1 -C 'ft/t_assert_ctl_assertion_type.vl74n47pagev_user/tocover_observed_deferred_immediate_stmt_74htop.t.cover_observed_deferred_immediate_stmt_74' 1 -C 'ft/t_assert_ctl_assertion_type.vl76n31pagev_user/tocover_simple_immediate_76htop.t.cover_simple_immediate_76' 1 -C 'ft/t_assert_ctl_assertion_type.vl76n36pagev_user/tocover_simple_immediate_stmt_76htop.t.cover_simple_immediate_stmt_76' 1 -C 'ft/t_assert_ctl_assertion_type.vl76n39pagev_user/tocover_final_deferred_immediate_76htop.t.cover_final_deferred_immediate_76' 0 -C 'ft/t_assert_ctl_assertion_type.vl76n42pagev_user/tocover_observed_deferred_immediate_76htop.t.cover_observed_deferred_immediate_76' 0 -C 'ft/t_assert_ctl_assertion_type.vl76n44pagev_user/tocover_final_deferred_immediate_stmt_76htop.t.cover_final_deferred_immediate_stmt_76' 0 -C 'ft/t_assert_ctl_assertion_type.vl76n47pagev_user/tocover_observed_deferred_immediate_stmt_76htop.t.cover_observed_deferred_immediate_stmt_76' 0 -C 'ft/t_assert_ctl_assertion_type.vl78n31pagev_user/tocover_simple_immediate_78htop.t.cover_simple_immediate_78' 1 -C 'ft/t_assert_ctl_assertion_type.vl78n36pagev_user/tocover_simple_immediate_stmt_78htop.t.cover_simple_immediate_stmt_78' 1 -C 'ft/t_assert_ctl_assertion_type.vl78n39pagev_user/tocover_final_deferred_immediate_78htop.t.cover_final_deferred_immediate_78' 0 -C 'ft/t_assert_ctl_assertion_type.vl78n42pagev_user/tocover_observed_deferred_immediate_78htop.t.cover_observed_deferred_immediate_78' 0 -C 'ft/t_assert_ctl_assertion_type.vl78n44pagev_user/tocover_final_deferred_immediate_stmt_78htop.t.cover_final_deferred_immediate_stmt_78' 0 -C 'ft/t_assert_ctl_assertion_type.vl78n47pagev_user/tocover_observed_deferred_immediate_stmt_78htop.t.cover_observed_deferred_immediate_stmt_78' 0 -C 'ft/t_assert_ctl_assertion_type.vl80n31pagev_user/tocover_simple_immediate_80htop.t.cover_simple_immediate_80' 0 -C 'ft/t_assert_ctl_assertion_type.vl80n36pagev_user/tocover_simple_immediate_stmt_80htop.t.cover_simple_immediate_stmt_80' 0 -C 'ft/t_assert_ctl_assertion_type.vl80n39pagev_user/tocover_final_deferred_immediate_80htop.t.cover_final_deferred_immediate_80' 0 -C 'ft/t_assert_ctl_assertion_type.vl80n42pagev_user/tocover_observed_deferred_immediate_80htop.t.cover_observed_deferred_immediate_80' 0 -C 'ft/t_assert_ctl_assertion_type.vl80n44pagev_user/tocover_final_deferred_immediate_stmt_80htop.t.cover_final_deferred_immediate_stmt_80' 0 -C 'ft/t_assert_ctl_assertion_type.vl80n47pagev_user/tocover_observed_deferred_immediate_stmt_80htop.t.cover_observed_deferred_immediate_stmt_80' 0 -C 'ft/t_assert_ctl_assertion_type.vl82n31pagev_user/tocover_simple_immediate_82htop.t.cover_simple_immediate_82' 1 -C 'ft/t_assert_ctl_assertion_type.vl82n36pagev_user/tocover_simple_immediate_stmt_82htop.t.cover_simple_immediate_stmt_82' 1 -C 'ft/t_assert_ctl_assertion_type.vl82n39pagev_user/tocover_final_deferred_immediate_82htop.t.cover_final_deferred_immediate_82' 0 -C 'ft/t_assert_ctl_assertion_type.vl82n42pagev_user/tocover_observed_deferred_immediate_82htop.t.cover_observed_deferred_immediate_82' 0 -C 'ft/t_assert_ctl_assertion_type.vl82n44pagev_user/tocover_final_deferred_immediate_stmt_82htop.t.cover_final_deferred_immediate_stmt_82' 0 -C 'ft/t_assert_ctl_assertion_type.vl82n47pagev_user/tocover_observed_deferred_immediate_stmt_82htop.t.cover_observed_deferred_immediate_stmt_82' 0 -C 'ft/t_assert_ctl_assertion_type.vl84n31pagev_user/tocover_simple_immediate_84htop.t.cover_simple_immediate_84' 0 -C 'ft/t_assert_ctl_assertion_type.vl84n36pagev_user/tocover_simple_immediate_stmt_84htop.t.cover_simple_immediate_stmt_84' 0 -C 'ft/t_assert_ctl_assertion_type.vl84n39pagev_user/tocover_final_deferred_immediate_84htop.t.cover_final_deferred_immediate_84' 0 -C 'ft/t_assert_ctl_assertion_type.vl84n42pagev_user/tocover_observed_deferred_immediate_84htop.t.cover_observed_deferred_immediate_84' 0 -C 'ft/t_assert_ctl_assertion_type.vl84n44pagev_user/tocover_final_deferred_immediate_stmt_84htop.t.cover_final_deferred_immediate_stmt_84' 0 -C 'ft/t_assert_ctl_assertion_type.vl84n47pagev_user/tocover_observed_deferred_immediate_stmt_84htop.t.cover_observed_deferred_immediate_stmt_84' 0 -C 'ft/t_assert_ctl_assertion_type.vl86n31pagev_user/tocover_simple_immediate_86htop.t.cover_simple_immediate_86' 1 -C 'ft/t_assert_ctl_assertion_type.vl86n36pagev_user/tocover_simple_immediate_stmt_86htop.t.cover_simple_immediate_stmt_86' 1 -C 'ft/t_assert_ctl_assertion_type.vl86n39pagev_user/tocover_final_deferred_immediate_86htop.t.cover_final_deferred_immediate_86' 1 -C 'ft/t_assert_ctl_assertion_type.vl86n42pagev_user/tocover_observed_deferred_immediate_86htop.t.cover_observed_deferred_immediate_86' 1 -C 'ft/t_assert_ctl_assertion_type.vl86n44pagev_user/tocover_final_deferred_immediate_stmt_86htop.t.cover_final_deferred_immediate_stmt_86' 1 -C 'ft/t_assert_ctl_assertion_type.vl86n47pagev_user/tocover_observed_deferred_immediate_stmt_86htop.t.cover_observed_deferred_immediate_stmt_86' 1 -C 'ft/t_assert_ctl_assertion_type.vl88n31pagev_user/tocover_simple_immediate_88htop.t.cover_simple_immediate_88' 0 -C 'ft/t_assert_ctl_assertion_type.vl88n36pagev_user/tocover_simple_immediate_stmt_88htop.t.cover_simple_immediate_stmt_88' 0 -C 'ft/t_assert_ctl_assertion_type.vl88n39pagev_user/tocover_final_deferred_immediate_88htop.t.cover_final_deferred_immediate_88' 0 -C 'ft/t_assert_ctl_assertion_type.vl88n42pagev_user/tocover_observed_deferred_immediate_88htop.t.cover_observed_deferred_immediate_88' 0 -C 'ft/t_assert_ctl_assertion_type.vl88n44pagev_user/tocover_final_deferred_immediate_stmt_88htop.t.cover_final_deferred_immediate_stmt_88' 0 -C 'ft/t_assert_ctl_assertion_type.vl88n47pagev_user/tocover_observed_deferred_immediate_stmt_88htop.t.cover_observed_deferred_immediate_stmt_88' 0 diff --git a/test_regress/t/t_assert_ctl_assertion_type_unsup.out b/test_regress/t/t_assert_ctl_assertion_type_unsup.out deleted file mode 100644 index 7b58f7a54..000000000 --- a/test_regress/t/t_assert_ctl_assertion_type_unsup.out +++ /dev/null @@ -1,18 +0,0 @@ -%Error-UNSUPPORTED: t/t_assert_ctl_assertion_type_unsup.v:15:7: Unsupported: assert control assertion_type - : ... note: In instance 't' - 15 | $assertcontrol(OFF, EXPECT); - | ^~~~~~~~~~~~~~ - ... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest -%Error-UNSUPPORTED: t/t_assert_ctl_assertion_type_unsup.v:16:7: Unsupported: assert control assertion_type - : ... note: In instance 't' - 16 | $assertcontrol(OFF, UNIQUE); - | ^~~~~~~~~~~~~~ -%Error-UNSUPPORTED: t/t_assert_ctl_assertion_type_unsup.v:17:7: Unsupported: assert control assertion_type - : ... note: In instance 't' - 17 | $assertcontrol(OFF, UNIQUE0); - | ^~~~~~~~~~~~~~ -%Error-UNSUPPORTED: t/t_assert_ctl_assertion_type_unsup.v:18:7: Unsupported: assert control assertion_type - : ... note: In instance 't' - 18 | $assertcontrol(OFF, PRIORITY); - | ^~~~~~~~~~~~~~ -%Error: Exiting due to diff --git a/test_regress/t/t_dump_json.out b/test_regress/t/t_dump_json.out index 07a907726..40959ac43 100644 --- a/test_regress/t/t_dump_json.out +++ b/test_regress/t/t_dump_json.out @@ -491,53 +491,41 @@ {"type":"ASSERTCTL","name":"","addr":"(WH)","loc":"d,86:7,86:17","ctlType":"$assertoff", "controlTypep": [ {"type":"CONST","name":"32'h4","addr":"(XH)","loc":"d,86:7,86:17","dtypep":"(MC)"} - ],"assertTypesp": [], - "levelp": [ - {"type":"CONST","name":"32'h0","addr":"(YH)","loc":"d,86:7,86:17","dtypep":"(MC)"} - ],"itemsp": []}, - {"type":"ASSERTCTL","name":"","addr":"(ZH)","loc":"d,87:7,87:18","ctlType":"$assertkill", + ],"assertTypesp": [],"directiveTypesp": []}, + {"type":"ASSERTCTL","name":"","addr":"(YH)","loc":"d,87:7,87:18","ctlType":"$assertkill", "controlTypep": [ - {"type":"CONST","name":"32'h5","addr":"(AI)","loc":"d,87:7,87:18","dtypep":"(MC)"} - ],"assertTypesp": [], - "levelp": [ - {"type":"CONST","name":"32'h0","addr":"(BI)","loc":"d,87:7,87:18","dtypep":"(MC)"} - ],"itemsp": []}, - {"type":"ASSERT","name":"","addr":"(CI)","loc":"d,88:7,88:13","type":"[SIMPLE_IMMEDIATE]", + {"type":"CONST","name":"32'h5","addr":"(ZH)","loc":"d,87:7,87:18","dtypep":"(MC)"} + ],"assertTypesp": [],"directiveTypesp": []}, + {"type":"ASSERT","name":"","addr":"(AI)","loc":"d,88:7,88:13","type":"[SIMPLE_IMMEDIATE]", "propp": [ - {"type":"CONST","name":"?32?sh0","addr":"(DI)","loc":"d,88:14,88:15","dtypep":"(L)"} + {"type":"CONST","name":"?32?sh0","addr":"(BI)","loc":"d,88:14,88:15","dtypep":"(L)"} ],"sentreep": [],"failsp": [],"passsp": []}, - {"type":"ASSERTCTL","name":"","addr":"(EI)","loc":"d,89:7,89:16","ctlType":"$asserton", + {"type":"ASSERTCTL","name":"","addr":"(CI)","loc":"d,89:7,89:16","ctlType":"$asserton", "controlTypep": [ - {"type":"CONST","name":"32'h3","addr":"(FI)","loc":"d,89:7,89:16","dtypep":"(MC)"} - ],"assertTypesp": [], - "levelp": [ - {"type":"CONST","name":"32'h0","addr":"(GI)","loc":"d,89:7,89:16","dtypep":"(MC)"} - ],"itemsp": []}, - {"type":"ASSERTCTL","name":"","addr":"(HI)","loc":"d,90:7,90:21","ctlType":"", + {"type":"CONST","name":"32'h3","addr":"(DI)","loc":"d,89:7,89:16","dtypep":"(MC)"} + ],"assertTypesp": [],"directiveTypesp": []}, + {"type":"ASSERTCTL","name":"","addr":"(EI)","loc":"d,90:7,90:21","ctlType":"", "controlTypep": [ - {"type":"CONST","name":"?32?sh3","addr":"(II)","loc":"d,90:22,90:23","dtypep":"(QD)"} + {"type":"CONST","name":"?32?sh3","addr":"(FI)","loc":"d,90:22,90:23","dtypep":"(QD)"} ], "assertTypesp": [ - {"type":"CONST","name":"?32?sh8","addr":"(JI)","loc":"d,90:25,90:26","dtypep":"(JF)"} - ], - "levelp": [ - {"type":"CONST","name":"32'h0","addr":"(KI)","loc":"d,90:7,90:21","dtypep":"(MC)"} - ],"itemsp": []} + {"type":"CONST","name":"?32?sh8","addr":"(GI)","loc":"d,90:25,90:26","dtypep":"(JF)"} + ],"directiveTypesp": []} ]} ]} ]} ],"activesp": []} ],"filesp": [], "miscsp": [ - {"type":"TYPETABLE","name":"","addr":"(C)","loc":"a,0:0,0:0","constraintRefp":"UNLINKED","emptyQueuep":"UNLINKED","queueIndexp":"UNLINKED","streamp":"UNLINKED","voidp":"(LI)", + {"type":"TYPETABLE","name":"","addr":"(C)","loc":"a,0:0,0:0","constraintRefp":"UNLINKED","emptyQueuep":"UNLINKED","queueIndexp":"UNLINKED","streamp":"UNLINKED","voidp":"(HI)", "typesp": [ - {"type":"BASICDTYPE","name":"integer","addr":"(MI)","loc":"c,31:27,31:28","dtypep":"(MI)","keyword":"integer","range":"31:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"integer","addr":"(II)","loc":"c,31:27,31:28","dtypep":"(II)","keyword":"integer","range":"31:0","generic":true,"rangep": []}, {"type":"BASICDTYPE","name":"logic","addr":"(L)","loc":"c,33:32,33:33","dtypep":"(L)","keyword":"logic","range":"31:0","generic":true,"rangep": []}, {"type":"BASICDTYPE","name":"logic","addr":"(UE)","loc":"c,50:22,50:24","dtypep":"(UE)","keyword":"logic","generic":true,"rangep": []}, - {"type":"VOIDDTYPE","name":"","addr":"(LI)","loc":"c,51:21,51:30","dtypep":"(LI)","generic":false}, + {"type":"VOIDDTYPE","name":"","addr":"(HI)","loc":"c,51:21,51:30","dtypep":"(HI)","generic":false}, {"type":"BASICDTYPE","name":"logic","addr":"(QD)","loc":"c,125:22,125:23","dtypep":"(QD)","keyword":"logic","range":"31:0","generic":true,"rangep": []}, - {"type":"BASICDTYPE","name":"logic","addr":"(NI)","loc":"c,127:22,127:23","dtypep":"(NI)","keyword":"logic","range":"31:0","generic":true,"rangep": []}, - {"type":"BASICDTYPE","name":"logic","addr":"(OI)","loc":"c,162:17,162:56","dtypep":"(OI)","keyword":"logic","range":"295:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(JI)","loc":"c,127:22,127:23","dtypep":"(JI)","keyword":"logic","range":"31:0","generic":true,"rangep": []}, + {"type":"BASICDTYPE","name":"logic","addr":"(KI)","loc":"c,162:17,162:56","dtypep":"(KI)","keyword":"logic","range":"295:0","generic":true,"rangep": []}, {"type":"BASICDTYPE","name":"string","addr":"(BG)","loc":"c,162:10,162:16","dtypep":"(BG)","keyword":"string","generic":true,"rangep": []}, {"type":"BASICDTYPE","name":"logic","addr":"(Q)","loc":"d,14:9,14:11","dtypep":"(Q)","keyword":"logic","range":"31:0","generic":true,"rangep": []}, {"type":"BASICDTYPE","name":"logic","addr":"(BB)","loc":"d,18:10,18:12","dtypep":"(BB)","keyword":"logic","range":"31:0","generic":true,"rangep": []}, @@ -552,9 +540,9 @@ ]}, {"type":"CONSTPOOL","name":"","addr":"(D)","loc":"a,0:0,0:0", "modulep": [ - {"type":"MODULE","name":"@CONST-POOL@","addr":"(PI)","loc":"a,0:0,0:0","origName":"@CONST-POOL@","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","inlinesp": [], + {"type":"MODULE","name":"@CONST-POOL@","addr":"(LI)","loc":"a,0:0,0:0","origName":"@CONST-POOL@","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","inlinesp": [], "stmtsp": [ - {"type":"SCOPE","name":"@CONST-POOL@","addr":"(QI)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(PI)","varsp": [],"blocksp": [],"inlinesp": []} + {"type":"SCOPE","name":"@CONST-POOL@","addr":"(MI)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(LI)","varsp": [],"blocksp": [],"inlinesp": []} ],"activesp": []} ]} ]}