verilog/tetirs/obj_dir/Vtb___024root__DepSet_ha183790c__0.cpp
2024-07-14 04:03:23 +03:00

202 lines
9.0 KiB
C++

// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Design implementation internals
// See Vtb.h for the primary calling header
#include "verilated.h"
#include "Vtb___024root.h"
VlCoroutine Vtb___024root___eval_initial__TOP__0(Vtb___024root* vlSelf);
void Vtb___024root___eval_initial(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_initial\n"); );
// Body
Vtb___024root___eval_initial__TOP__0(vlSelf);
vlSelf->__Vtrigrprev__TOP__tb__DOT__clk = vlSelf->tb__DOT__clk;
vlSelf->__Vtrigrprev__TOP__tb__DOT__bitti_mi = vlSelf->tb__DOT__bitti_mi;
}
VL_INLINE_OPT VlCoroutine Vtb___024root___eval_initial__TOP__0(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_initial__TOP__0\n"); );
// Body
while (1U) {
co_await vlSelf->__VdlySched.delay(5U, "tb.v",
20);
vlSelf->tb__DOT__clk = (1U & (~ (IData)(vlSelf->tb__DOT__clk)));
}
vlSelf->tb__DOT__parca = 5U;
co_await vlSelf->__VdlySched.delay(0xc8U, "tb.v",
21);
VL_WRITEF("%2#\n%2#\n%1#\n",5,vlSelf->tb__DOT__yukseklik,
5,(IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r),
1,vlSelf->tb__DOT__bitti_mi);
VL_FINISH_MT("tb.v", 25, "");
}
void Vtb___024root___eval_act(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_act\n"); );
}
VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__0(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__0\n"); );
// Body
vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = vlSelf->tb__DOT__uut__DOT__y_2;
vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = vlSelf->tb__DOT__uut__DOT__y_1;
vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = vlSelf->tb__DOT__uut__DOT__y_0;
if ((0x10U != (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r))) {
vlSelf->__Vdly__tb__DOT__uut__DOT__y_2 = (0x1fU
& ((IData)(vlSelf->tb__DOT__uut__DOT__y_2)
+
(1U
& ((IData)(vlSelf->tb__DOT__parca)
>> 2U))));
vlSelf->__Vdly__tb__DOT__uut__DOT__y_1 = (0x1fU
& ((IData)(vlSelf->tb__DOT__uut__DOT__y_1)
+
(1U
& ((IData)(vlSelf->tb__DOT__parca)
>> 1U))));
vlSelf->__Vdly__tb__DOT__uut__DOT__y_0 = (0x1fU
& ((IData)(vlSelf->tb__DOT__uut__DOT__y_0)
+
(1U
& (IData)(vlSelf->tb__DOT__parca))));
}
if ((0x10U != (IData)(vlSelf->tb__DOT__cevrim))) {
vlSelf->tb__DOT__uut__DOT__cevrim_r = (0x1fU
& ((IData)(1U)
+ (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r)));
}
vlSelf->tb__DOT__cevrim = vlSelf->tb__DOT__uut__DOT__cevrim_r;
vlSelf->tb__DOT__bitti_mi = (0x10U == (IData)(vlSelf->tb__DOT__uut__DOT__cevrim_r));
}
VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__1(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__1\n"); );
// Body
if (((IData)(vlSelf->tb__DOT__uut__DOT__y_0) > (IData)(vlSelf->tb__DOT__uut__DOT__y_1))) {
vlSelf->tb__DOT__yukseklik = (((IData)(vlSelf->tb__DOT__uut__DOT__y_0)
> (IData)(vlSelf->tb__DOT__uut__DOT__y_2))
? (IData)(vlSelf->tb__DOT__uut__DOT__y_0)
: (IData)(vlSelf->tb__DOT__uut__DOT__y_2));
} else if (((IData)(vlSelf->tb__DOT__uut__DOT__y_0)
> (IData)(vlSelf->tb__DOT__uut__DOT__y_1))) {
vlSelf->tb__DOT__yukseklik = (((IData)(vlSelf->tb__DOT__uut__DOT__y_1)
> (IData)(vlSelf->tb__DOT__uut__DOT__y_2))
? (IData)(vlSelf->tb__DOT__uut__DOT__y_1)
: (IData)(vlSelf->tb__DOT__uut__DOT__y_2));
}
}
VL_INLINE_OPT void Vtb___024root___nba_sequent__TOP__2(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___nba_sequent__TOP__2\n"); );
// Body
vlSelf->tb__DOT__uut__DOT__y_0 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_0;
vlSelf->tb__DOT__uut__DOT__y_1 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_1;
vlSelf->tb__DOT__uut__DOT__y_2 = vlSelf->__Vdly__tb__DOT__uut__DOT__y_2;
}
void Vtb___024root___eval_nba(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_nba\n"); );
// Body
if (vlSelf->__VnbaTriggered.at(0U)) {
Vtb___024root___nba_sequent__TOP__0(vlSelf);
}
if (vlSelf->__VnbaTriggered.at(1U)) {
Vtb___024root___nba_sequent__TOP__1(vlSelf);
}
if (vlSelf->__VnbaTriggered.at(0U)) {
Vtb___024root___nba_sequent__TOP__2(vlSelf);
}
}
void Vtb___024root___eval_triggers__act(Vtb___024root* vlSelf);
#ifdef VL_DEBUG
VL_ATTR_COLD void Vtb___024root___dump_triggers__act(Vtb___024root* vlSelf);
#endif // VL_DEBUG
void Vtb___024root___timing_resume(Vtb___024root* vlSelf);
#ifdef VL_DEBUG
VL_ATTR_COLD void Vtb___024root___dump_triggers__nba(Vtb___024root* vlSelf);
#endif // VL_DEBUG
void Vtb___024root___eval(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval\n"); );
// Init
VlTriggerVec<3> __VpreTriggered;
IData/*31:0*/ __VnbaIterCount;
CData/*0:0*/ __VnbaContinue;
// Body
__VnbaIterCount = 0U;
__VnbaContinue = 1U;
while (__VnbaContinue) {
__VnbaContinue = 0U;
vlSelf->__VnbaTriggered.clear();
vlSelf->__VactIterCount = 0U;
vlSelf->__VactContinue = 1U;
while (vlSelf->__VactContinue) {
vlSelf->__VactContinue = 0U;
Vtb___024root___eval_triggers__act(vlSelf);
if (vlSelf->__VactTriggered.any()) {
vlSelf->__VactContinue = 1U;
if (VL_UNLIKELY((0x64U < vlSelf->__VactIterCount))) {
#ifdef VL_DEBUG
Vtb___024root___dump_triggers__act(vlSelf);
#endif
VL_FATAL_MT("tb.v", 1, "", "Active region did not converge.");
}
vlSelf->__VactIterCount = ((IData)(1U)
+ vlSelf->__VactIterCount);
__VpreTriggered.andNot(vlSelf->__VactTriggered, vlSelf->__VnbaTriggered);
vlSelf->__VnbaTriggered.set(vlSelf->__VactTriggered);
Vtb___024root___timing_resume(vlSelf);
Vtb___024root___eval_act(vlSelf);
}
}
if (vlSelf->__VnbaTriggered.any()) {
__VnbaContinue = 1U;
if (VL_UNLIKELY((0x64U < __VnbaIterCount))) {
#ifdef VL_DEBUG
Vtb___024root___dump_triggers__nba(vlSelf);
#endif
VL_FATAL_MT("tb.v", 1, "", "NBA region did not converge.");
}
__VnbaIterCount = ((IData)(1U) + __VnbaIterCount);
Vtb___024root___eval_nba(vlSelf);
}
}
}
void Vtb___024root___timing_resume(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___timing_resume\n"); );
// Body
if (vlSelf->__VactTriggered.at(2U)) {
vlSelf->__VdlySched.resume();
}
}
#ifdef VL_DEBUG
void Vtb___024root___eval_debug_assertions(Vtb___024root* vlSelf) {
if (false && vlSelf) {} // Prevent unused
Vtb__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb___024root___eval_debug_assertions\n"); );
}
#endif // VL_DEBUG