blob: 11ef2cb654f0232866e63f096394bf28a730d989 [file] [log] [blame]
// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Model implementation (design independent parts)
#include "Vdecoder.h"
#include "Vdecoder__Syms.h"
//============================================================
// Constructors
Vdecoder::Vdecoder(VerilatedContext* _vcontextp__, const char* _vcname__)
: vlSymsp{new Vdecoder__Syms(_vcontextp__, _vcname__, this)}
, rootp{&(vlSymsp->TOP)}
{
}
Vdecoder::Vdecoder(const char* _vcname__)
: Vdecoder(nullptr, _vcname__)
{
}
//============================================================
// Destructor
Vdecoder::~Vdecoder() {
delete vlSymsp;
}
//============================================================
// Evaluation loop
void Vdecoder___024root___eval_initial(Vdecoder___024root* vlSelf);
void Vdecoder___024root___eval_settle(Vdecoder___024root* vlSelf);
void Vdecoder___024root___eval(Vdecoder___024root* vlSelf);
#ifdef VL_DEBUG
void Vdecoder___024root___eval_debug_assertions(Vdecoder___024root* vlSelf);
#endif // VL_DEBUG
void Vdecoder___024root___final(Vdecoder___024root* vlSelf);
static void _eval_initial_loop(Vdecoder__Syms* __restrict vlSymsp) {
vlSymsp->__Vm_didInit = true;
Vdecoder___024root___eval_initial(&(vlSymsp->TOP));
// Evaluate till stable
do {
VL_DEBUG_IF(VL_DBG_MSGF("+ Initial loop\n"););
Vdecoder___024root___eval_settle(&(vlSymsp->TOP));
Vdecoder___024root___eval(&(vlSymsp->TOP));
} while (0);
}
void Vdecoder::eval_step() {
VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vdecoder::eval_step\n"); );
#ifdef VL_DEBUG
// Debug assertions
Vdecoder___024root___eval_debug_assertions(&(vlSymsp->TOP));
#endif // VL_DEBUG
// Initialize
if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) _eval_initial_loop(vlSymsp);
// Evaluate till stable
do {
VL_DEBUG_IF(VL_DBG_MSGF("+ Clock loop\n"););
Vdecoder___024root___eval(&(vlSymsp->TOP));
} while (0);
// Evaluate cleanup
}
//============================================================
// Utilities
VerilatedContext* Vdecoder::contextp() const {
return vlSymsp->_vm_contextp__;
}
const char* Vdecoder::name() const {
return vlSymsp->name();
}
//============================================================
// Invoke final blocks
VL_ATTR_COLD void Vdecoder::final() {
Vdecoder___024root___final(&(vlSymsp->TOP));
}