aboutsummaryrefslogtreecommitdiff
path: root/core/obj_dir/Vtb__Slow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/obj_dir/Vtb__Slow.cpp')
-rw-r--r--core/obj_dir/Vtb__Slow.cpp117
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);
+}