Spaces:
Sleeping
Sleeping
| // Verilated -*- C++ -*- | |
| // DESCRIPTION: Verilator output: Model implementation (design independent parts) | |
| //============================================================ | |
| // Constructors | |
| Vtop::Vtop(VerilatedContext* _vcontextp__, const char* _vcname__) | |
| : VerilatedModel{*_vcontextp__} | |
| , vlSymsp{new Vtop__Syms(contextp(), _vcname__, this)} | |
| , inp{vlSymsp->TOP.inp} | |
| , clk{vlSymsp->TOP.clk} | |
| , reset{vlSymsp->TOP.reset} | |
| , out{vlSymsp->TOP.out} | |
| , rootp{&(vlSymsp->TOP)} | |
| { | |
| // Register model with the context | |
| contextp()->addModel(this); | |
| } | |
| Vtop::Vtop(const char* _vcname__) | |
| : Vtop(Verilated::threadContextp(), _vcname__) | |
| { | |
| } | |
| //============================================================ | |
| // Destructor | |
| Vtop::~Vtop() { | |
| delete vlSymsp; | |
| } | |
| //============================================================ | |
| // Evaluation function | |
| void Vtop___024root___eval_debug_assertions(Vtop___024root* vlSelf); | |
| void Vtop___024root___eval_static(Vtop___024root* vlSelf); | |
| void Vtop___024root___eval_initial(Vtop___024root* vlSelf); | |
| void Vtop___024root___eval_settle(Vtop___024root* vlSelf); | |
| void Vtop___024root___eval(Vtop___024root* vlSelf); | |
| void Vtop::eval_step() { | |
| VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vtop::eval_step\n"); ); | |
| // Debug assertions | |
| Vtop___024root___eval_debug_assertions(&(vlSymsp->TOP)); | |
| vlSymsp->__Vm_deleter.deleteAll(); | |
| if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) { | |
| vlSymsp->__Vm_didInit = true; | |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n");); | |
| Vtop___024root___eval_static(&(vlSymsp->TOP)); | |
| Vtop___024root___eval_initial(&(vlSymsp->TOP)); | |
| Vtop___024root___eval_settle(&(vlSymsp->TOP)); | |
| } | |
| VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n");); | |
| Vtop___024root___eval(&(vlSymsp->TOP)); | |
| // Evaluate cleanup | |
| Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp); | |
| } | |
| //============================================================ | |
| // Events and timing | |
| bool Vtop::eventsPending() { return false; } | |
| uint64_t Vtop::nextTimeSlot() { | |
| VL_FATAL_MT(__FILE__, __LINE__, "", "No delays in the design"); | |
| return 0; | |
| } | |
| //============================================================ | |
| // Utilities | |
| const char* Vtop::name() const { | |
| return vlSymsp->name(); | |
| } | |
| //============================================================ | |
| // Invoke final blocks | |
| void Vtop___024root___eval_final(Vtop___024root* vlSelf); | |
| VL_ATTR_COLD void Vtop::final() { | |
| Vtop___024root___eval_final(&(vlSymsp->TOP)); | |
| } | |
| //============================================================ | |
| // Implementations of abstract methods from VerilatedModel | |
| const char* Vtop::hierName() const { return vlSymsp->name(); } | |
| const char* Vtop::modelName() const { return "Vtop"; } | |
| unsigned Vtop::threads() const { return 1; } | |
| void Vtop::prepareClone() const { contextp()->prepareClone(); } | |
| void Vtop::atClone() const { | |
| contextp()->threadPoolpOnClone(); | |
| } | |