// Verilated -*- C++ -*- // DESCRIPTION: Verilator output: Design implementation internals // See Vtb.h for the primary calling header #include "Vtb.h" #include "Vtb__Syms.h" //========== VL_CTOR_IMP(Vtb) { Vtb__Syms* __restrict vlSymsp = __VlSymsp = new Vtb__Syms(this, name()); Vtb* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Reset internal values // Reset structure values _ctor_var_reset(); } void Vtb::__Vconfigure(Vtb__Syms* vlSymsp, bool first) { if (false && first) {} // Prevent unused this->__VlSymsp = vlSymsp; if (false && this->__VlSymsp) {} // Prevent unused Verilated::timeunit(-3); Verilated::timeprecision(-3); } Vtb::~Vtb() { VL_DO_CLEAR(delete __VlSymsp, __VlSymsp = nullptr); } void Vtb::_initial__TOP__1(Vtb__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb::_initial__TOP__1\n"); ); Vtb* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body VL_WRITEF("%10# %10#\n",32,(IData)(vlTOPp->tb__DOT__val1), 32,(IData)(vlTOPp->tb__DOT__val2)); vlTOPp->tb__DOT__write = 2U; vlTOPp->tb__DOT__write_data = 0x14ULL; vlTOPp->tb__DOT__read1 = 1U; vlTOPp->tb__DOT__read2 = 2U; VL_WRITEF("%10# %10#\n",32,(IData)(vlTOPp->tb__DOT__val1), 32,(IData)(vlTOPp->tb__DOT__val2)); VL_STOP_MT("tb.v", 48, ""); vlTOPp->__Vtask_tb__DOT__r__DOT__write_reg__0__data = 0x14ULL; vlTOPp->__Vtask_tb__DOT__r__DOT__write_reg__0__regid = 2U; vlTOPp->tb__DOT__r__DOT__reg_array[2U] = 0x14ULL; } void Vtb::_settle__TOP__2(Vtb__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb::_settle__TOP__2\n"); ); Vtb* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Variables CData/*4:0*/ __Vfunc_tb__DOT__r__DOT__read_reg__1__regid; CData/*4:0*/ __Vfunc_tb__DOT__r__DOT__read_reg__2__regid; QData/*63:0*/ __Vfunc_tb__DOT__r__DOT__read_reg__1__Vfuncout; QData/*63:0*/ __Vfunc_tb__DOT__r__DOT__read_reg__2__Vfuncout; // Body vlTOPp->__Vtask_tb__DOT__r__DOT__write_reg__0__data = vlTOPp->tb__DOT__write_data; vlTOPp->__Vtask_tb__DOT__r__DOT__write_reg__0__regid = vlTOPp->tb__DOT__write; vlTOPp->tb__DOT__r__DOT__reg_array[vlTOPp->__Vtask_tb__DOT__r__DOT__write_reg__0__regid] = vlTOPp->__Vtask_tb__DOT__r__DOT__write_reg__0__data; __Vfunc_tb__DOT__r__DOT__read_reg__1__regid = vlTOPp->tb__DOT__read1; __Vfunc_tb__DOT__r__DOT__read_reg__1__Vfuncout = vlTOPp->tb__DOT__r__DOT__reg_array[__Vfunc_tb__DOT__r__DOT__read_reg__1__regid]; __Vfunc_tb__DOT__r__DOT__read_reg__2__regid = vlTOPp->tb__DOT__read2; __Vfunc_tb__DOT__r__DOT__read_reg__2__Vfuncout = vlTOPp->tb__DOT__r__DOT__reg_array[__Vfunc_tb__DOT__r__DOT__read_reg__2__regid]; __Vfunc_tb__DOT__r__DOT__read_reg__1__regid = vlTOPp->tb__DOT__read1; __Vfunc_tb__DOT__r__DOT__read_reg__1__Vfuncout = vlTOPp->tb__DOT__r__DOT__reg_array[__Vfunc_tb__DOT__r__DOT__read_reg__1__regid]; vlTOPp->tb__DOT__val1 = __Vfunc_tb__DOT__r__DOT__read_reg__1__Vfuncout; __Vfunc_tb__DOT__r__DOT__read_reg__2__regid = vlTOPp->tb__DOT__read2; __Vfunc_tb__DOT__r__DOT__read_reg__2__Vfuncout = vlTOPp->tb__DOT__r__DOT__reg_array[__Vfunc_tb__DOT__r__DOT__read_reg__2__regid]; vlTOPp->tb__DOT__val2 = __Vfunc_tb__DOT__r__DOT__read_reg__2__Vfuncout; } void Vtb::_eval_initial(Vtb__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb::_eval_initial\n"); ); Vtb* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body vlTOPp->_initial__TOP__1(vlSymsp); } void Vtb::final() { VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb::final\n"); ); // Variables Vtb__Syms* __restrict vlSymsp = this->__VlSymsp; Vtb* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; } void Vtb::_eval_settle(Vtb__Syms* __restrict vlSymsp) { VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb::_eval_settle\n"); ); Vtb* const __restrict vlTOPp VL_ATTR_UNUSED = vlSymsp->TOPp; // Body vlTOPp->_settle__TOP__2(vlSymsp); } void Vtb::_ctor_var_reset() { VL_DEBUG_IF(VL_DBG_MSGF("+ Vtb::_ctor_var_reset\n"); ); // Body tb__DOT__read1 = VL_RAND_RESET_I(5); tb__DOT__read2 = VL_RAND_RESET_I(5); tb__DOT__val1 = VL_RAND_RESET_Q(64); tb__DOT__val2 = VL_RAND_RESET_Q(64); tb__DOT__write = VL_RAND_RESET_I(5); tb__DOT__write_data = VL_RAND_RESET_Q(64); for (int __Vi0=0; __Vi0<32; ++__Vi0) { tb__DOT__r__DOT__reg_array[__Vi0] = VL_RAND_RESET_Q(64); } __Vtask_tb__DOT__r__DOT__write_reg__0__regid = VL_RAND_RESET_I(5); __Vtask_tb__DOT__r__DOT__write_reg__0__data = VL_RAND_RESET_Q(64); __Vchglast__TOP__tb__DOT__val1 = VL_RAND_RESET_Q(64); __Vchglast__TOP__tb__DOT__val2 = VL_RAND_RESET_Q(64); }