diff options
Diffstat (limited to 'core/obj_dir/Vtb__Slow.cpp')
| -rw-r--r-- | core/obj_dir/Vtb__Slow.cpp | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/core/obj_dir/Vtb__Slow.cpp b/core/obj_dir/Vtb__Slow.cpp new file mode 100644 index 0000000..2423d7b --- /dev/null +++ b/core/obj_dir/Vtb__Slow.cpp @@ -0,0 +1,117 @@ +// 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); +} |
