| |
| |
| |
|
|
| #include "Vsim__pch.h" |
|
|
| VL_ATTR_COLD void Vsim___024root___eval_static(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___eval_static\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| |
| do { |
| vlSelfRef.__VactTriggeredAcc[vlSelfRef.__Vi] |
| = vlSelfRef.__VactTriggered[vlSelfRef.__Vi]; |
| vlSelfRef.__Vi = ((IData)(1U) + vlSelfRef.__Vi); |
| } while ((0U >= vlSelfRef.__Vi)); |
| } |
|
|
| VL_ATTR_COLD void Vsim___024root___eval_final(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___eval_final\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| } |
|
|
| #ifdef VL_DEBUG |
| VL_ATTR_COLD void Vsim___024root___dump_triggers__stl(const VlUnpacked<QData, 1> &triggers, const std::string &tag); |
| #endif |
| VL_ATTR_COLD bool Vsim___024root___eval_phase__stl(Vsim___024root* vlSelf); |
|
|
| VL_ATTR_COLD void Vsim___024root___eval_settle(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___eval_settle\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| |
| IData __VstlIterCount; |
| |
| __VstlIterCount = 0U; |
| vlSelfRef.__VstlFirstIteration = 1U; |
| do { |
| if (VL_UNLIKELY(((0x00002710U < __VstlIterCount)))) { |
| #ifdef VL_DEBUG |
| Vsim___024root___dump_triggers__stl(vlSelfRef.__VstlTriggered, "stl"s); |
| #endif |
| VL_FATAL_MT("/workspace/.tmp_verilator/testbench.sv", 3, "", "DIDNOTCONVERGE: Settle region did not converge after '--converge-limit' of 10000 tries"); |
| } |
| __VstlIterCount = ((IData)(1U) + __VstlIterCount); |
| vlSelfRef.__VstlPhaseResult = Vsim___024root___eval_phase__stl(vlSelf); |
| vlSelfRef.__VstlFirstIteration = 0U; |
| } while (vlSelfRef.__VstlPhaseResult); |
| } |
|
|
| VL_ATTR_COLD void Vsim___024root___eval_triggers_vec__stl(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___eval_triggers_vec__stl\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| |
| vlSelfRef.__VstlTriggered[0U] = ((0xfffffffffffffffeULL |
| & vlSelfRef.__VstlTriggered[0U]) |
| | (IData)((IData)(vlSelfRef.__VstlFirstIteration))); |
| } |
|
|
| VL_ATTR_COLD bool Vsim___024root___trigger_anySet__stl(const VlUnpacked<QData, 1> &in); |
|
|
| #ifdef VL_DEBUG |
| VL_ATTR_COLD void Vsim___024root___dump_triggers__stl(const VlUnpacked<QData, 1> &triggers, const std::string &tag) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___dump_triggers__stl\n"); ); |
| |
| if ((1U & (~ (IData)(Vsim___024root___trigger_anySet__stl(triggers))))) { |
| VL_DBG_MSGS(" No '" + tag + "' region triggers active\n"); |
| } |
| if ((1U & (IData)(triggers[0U]))) { |
| VL_DBG_MSGS(" '" + tag + "' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n"); |
| } |
| } |
| #endif |
|
|
| VL_ATTR_COLD bool Vsim___024root___trigger_anySet__stl(const VlUnpacked<QData, 1> &in) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___trigger_anySet__stl\n"); ); |
| |
| IData n; |
| |
| n = 0U; |
| do { |
| if (in[n]) { |
| return (1U); |
| } |
| n = ((IData)(1U) + n); |
| } while ((1U > n)); |
| return (0U); |
| } |
|
|
| void Vsim___024root___act_sequent__TOP__0(Vsim___024root* vlSelf); |
|
|
| VL_ATTR_COLD void Vsim___024root___eval_stl(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___eval_stl\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| |
| if ((1ULL & vlSelfRef.__VstlTriggered[0U])) { |
| Vsim___024root___act_sequent__TOP__0(vlSelf); |
| } |
| } |
|
|
| VL_ATTR_COLD bool Vsim___024root___eval_phase__stl(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___eval_phase__stl\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| |
| CData __VstlExecute; |
| |
| Vsim___024root___eval_triggers_vec__stl(vlSelf); |
| #ifdef VL_DEBUG |
| if (VL_UNLIKELY(vlSymsp->_vm_contextp__->debug())) { |
| Vsim___024root___dump_triggers__stl(vlSelfRef.__VstlTriggered, "stl"s); |
| } |
| #endif |
| __VstlExecute = Vsim___024root___trigger_anySet__stl(vlSelfRef.__VstlTriggered); |
| if (__VstlExecute) { |
| Vsim___024root___eval_stl(vlSelf); |
| } |
| return (__VstlExecute); |
| } |
|
|
| bool Vsim___024root___trigger_anySet__act(const VlUnpacked<QData, 1> &in); |
|
|
| #ifdef VL_DEBUG |
| VL_ATTR_COLD void Vsim___024root___dump_triggers__act(const VlUnpacked<QData, 1> &triggers, const std::string &tag) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___dump_triggers__act\n"); ); |
| |
| if ((1U & (~ (IData)(Vsim___024root___trigger_anySet__act(triggers))))) { |
| VL_DBG_MSGS(" No '" + tag + "' region triggers active\n"); |
| } |
| if ((1U & (IData)(triggers[0U]))) { |
| VL_DBG_MSGS(" '" + tag + "' region trigger index 0 is active: @([true] __VdlySched.awaitingCurrentTime())\n"); |
| } |
| } |
| #endif |
|
|
| VL_ATTR_COLD void Vsim___024root___ctor_var_reset(Vsim___024root* vlSelf) { |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Vsim___024root___ctor_var_reset\n"); ); |
| Vsim__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp; |
| auto& vlSelfRef = std::ref(*vlSelf).get(); |
| |
| const uint64_t __VscopeHash = VL_MURMUR64_HASH(vlSelf->vlNamep); |
| vlSelf->tb_full_adder__DOT__a = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 13747735994981389321ull); |
| vlSelf->tb_full_adder__DOT__b = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 686105649783556071ull); |
| vlSelf->tb_full_adder__DOT__cin = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 4012772730186193120ull); |
| vlSelf->tb_full_adder__DOT__uut__DOT__sum = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 13287595272639865983ull); |
| vlSelf->tb_full_adder__DOT__uut__DOT__cout = VL_SCOPED_RAND_RESET_I(1, __VscopeHash, 13664396158812022014ull); |
| for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) { |
| vlSelf->__VstlTriggered[__Vi0] = 0; |
| } |
| for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) { |
| vlSelf->__VactTriggered[__Vi0] = 0; |
| } |
| for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) { |
| vlSelf->__VactTriggeredAcc[__Vi0] = 0; |
| } |
| for (int __Vi0 = 0; __Vi0 < 1; ++__Vi0) { |
| vlSelf->__VnbaTriggered[__Vi0] = 0; |
| } |
| vlSelf->__Vi = 0; |
| for (int __Vi0 = 0; __Vi0 < 3; ++__Vi0) { |
| vlSelf->__Vm_traceActivity[__Vi0] = 0; |
| } |
| } |
|
|