aboutsummaryrefslogtreecommitdiff
path: root/core/obj_dir/Vtb__Slow.cpp
blob: 2423d7baecf607d0804392502ae2e428e4148fa1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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);
}