df992995ca
ysyx_22040000 李心杨 Linux calcite 6.1.65 #1-NixOS SMP PREEMPT_DYNAMIC Sun Dec 3 06:32:13 UTC 2023 x86_64 GNU/Linux 18:31:48 up 21:29, 2 users, load average: 1.18, 0.83, 0.63
149 lines
5.9 KiB
C++
149 lines
5.9 KiB
C++
// Verilated -*- C++ -*-
|
|
// DESCRIPTION: Verilator output: Design implementation internals
|
|
// See Vexample.h for the primary calling header
|
|
|
|
#include "Vexample__pch.h"
|
|
#include "Vexample___024root.h"
|
|
|
|
VL_ATTR_COLD void Vexample___024root___eval_static(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___eval_static\n"); );
|
|
}
|
|
|
|
VL_ATTR_COLD void Vexample___024root___eval_initial(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___eval_initial\n"); );
|
|
}
|
|
|
|
VL_ATTR_COLD void Vexample___024root___eval_final(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___eval_final\n"); );
|
|
}
|
|
|
|
#ifdef VL_DEBUG
|
|
VL_ATTR_COLD void Vexample___024root___dump_triggers__stl(Vexample___024root* vlSelf);
|
|
#endif // VL_DEBUG
|
|
VL_ATTR_COLD bool Vexample___024root___eval_phase__stl(Vexample___024root* vlSelf);
|
|
|
|
VL_ATTR_COLD void Vexample___024root___eval_settle(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___eval_settle\n"); );
|
|
// Init
|
|
IData/*31:0*/ __VstlIterCount;
|
|
CData/*0:0*/ __VstlContinue;
|
|
// Body
|
|
__VstlIterCount = 0U;
|
|
vlSelf->__VstlFirstIteration = 1U;
|
|
__VstlContinue = 1U;
|
|
while (__VstlContinue) {
|
|
if (VL_UNLIKELY((0x64U < __VstlIterCount))) {
|
|
#ifdef VL_DEBUG
|
|
Vexample___024root___dump_triggers__stl(vlSelf);
|
|
#endif
|
|
VL_FATAL_MT("vsrc/example.v", 1, "", "Settle region did not converge.");
|
|
}
|
|
__VstlIterCount = ((IData)(1U) + __VstlIterCount);
|
|
__VstlContinue = 0U;
|
|
if (Vexample___024root___eval_phase__stl(vlSelf)) {
|
|
__VstlContinue = 1U;
|
|
}
|
|
vlSelf->__VstlFirstIteration = 0U;
|
|
}
|
|
}
|
|
|
|
#ifdef VL_DEBUG
|
|
VL_ATTR_COLD void Vexample___024root___dump_triggers__stl(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___dump_triggers__stl\n"); );
|
|
// Body
|
|
if ((1U & (~ (IData)(vlSelf->__VstlTriggered.any())))) {
|
|
VL_DBG_MSGF(" No triggers active\n");
|
|
}
|
|
if ((1ULL & vlSelf->__VstlTriggered.word(0U))) {
|
|
VL_DBG_MSGF(" 'stl' region trigger index 0 is active: Internal 'stl' trigger - first iteration\n");
|
|
}
|
|
}
|
|
#endif // VL_DEBUG
|
|
|
|
void Vexample___024root___ico_sequent__TOP__0(Vexample___024root* vlSelf);
|
|
|
|
VL_ATTR_COLD void Vexample___024root___eval_stl(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___eval_stl\n"); );
|
|
// Body
|
|
if ((1ULL & vlSelf->__VstlTriggered.word(0U))) {
|
|
Vexample___024root___ico_sequent__TOP__0(vlSelf);
|
|
}
|
|
}
|
|
|
|
VL_ATTR_COLD void Vexample___024root___eval_triggers__stl(Vexample___024root* vlSelf);
|
|
|
|
VL_ATTR_COLD bool Vexample___024root___eval_phase__stl(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___eval_phase__stl\n"); );
|
|
// Init
|
|
CData/*0:0*/ __VstlExecute;
|
|
// Body
|
|
Vexample___024root___eval_triggers__stl(vlSelf);
|
|
__VstlExecute = vlSelf->__VstlTriggered.any();
|
|
if (__VstlExecute) {
|
|
Vexample___024root___eval_stl(vlSelf);
|
|
}
|
|
return (__VstlExecute);
|
|
}
|
|
|
|
#ifdef VL_DEBUG
|
|
VL_ATTR_COLD void Vexample___024root___dump_triggers__ico(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___dump_triggers__ico\n"); );
|
|
// Body
|
|
if ((1U & (~ (IData)(vlSelf->__VicoTriggered.any())))) {
|
|
VL_DBG_MSGF(" No triggers active\n");
|
|
}
|
|
if ((1ULL & vlSelf->__VicoTriggered.word(0U))) {
|
|
VL_DBG_MSGF(" 'ico' region trigger index 0 is active: Internal 'ico' trigger - first iteration\n");
|
|
}
|
|
}
|
|
#endif // VL_DEBUG
|
|
|
|
#ifdef VL_DEBUG
|
|
VL_ATTR_COLD void Vexample___024root___dump_triggers__act(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___dump_triggers__act\n"); );
|
|
// Body
|
|
if ((1U & (~ (IData)(vlSelf->__VactTriggered.any())))) {
|
|
VL_DBG_MSGF(" No triggers active\n");
|
|
}
|
|
}
|
|
#endif // VL_DEBUG
|
|
|
|
#ifdef VL_DEBUG
|
|
VL_ATTR_COLD void Vexample___024root___dump_triggers__nba(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___dump_triggers__nba\n"); );
|
|
// Body
|
|
if ((1U & (~ (IData)(vlSelf->__VnbaTriggered.any())))) {
|
|
VL_DBG_MSGF(" No triggers active\n");
|
|
}
|
|
}
|
|
#endif // VL_DEBUG
|
|
|
|
VL_ATTR_COLD void Vexample___024root___ctor_var_reset(Vexample___024root* vlSelf) {
|
|
if (false && vlSelf) {} // Prevent unused
|
|
Vexample__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
|
|
VL_DEBUG_IF(VL_DBG_MSGF("+ Vexample___024root___ctor_var_reset\n"); );
|
|
// Body
|
|
vlSelf->a = VL_RAND_RESET_I(1);
|
|
vlSelf->b = VL_RAND_RESET_I(1);
|
|
vlSelf->f = VL_RAND_RESET_I(1);
|
|
}
|