202 lines
9.0 KiB
C++
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
|