diff options
| author | Aditya Naik | 2021-05-08 12:51:18 -0400 |
|---|---|---|
| committer | Aditya Naik | 2021-05-08 12:51:18 -0400 |
| commit | 1acccc74b1036d9d3847fdcc60c392125a03be85 (patch) | |
| tree | 609c192f1b3e1b4ab89e1992741d988f4120138c /core/obj_dir/Vtb.h | |
Initial
Added work on RV64 I core to date, including tb
Diffstat (limited to 'core/obj_dir/Vtb.h')
| -rw-r--r-- | core/obj_dir/Vtb.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/core/obj_dir/Vtb.h b/core/obj_dir/Vtb.h new file mode 100644 index 0000000..e1386e3 --- /dev/null +++ b/core/obj_dir/Vtb.h @@ -0,0 +1,88 @@ +// Verilated -*- C++ -*- +// DESCRIPTION: Verilator output: Primary design header +// +// This header should be included by all source files instantiating the design. +// The class here is then constructed to instantiate the design. +// See the Verilator manual for examples. + +#ifndef _VTB_H_ +#define _VTB_H_ // guard + +#include "verilated_heavy.h" + +//========== + +class Vtb__Syms; + +//---------- + +VL_MODULE(Vtb) { + public: + + // LOCAL SIGNALS + // Internals; generally not touched by application code + CData/*4:0*/ tb__DOT__read1; + CData/*4:0*/ tb__DOT__read2; + CData/*4:0*/ tb__DOT__write; + QData/*63:0*/ tb__DOT__val1; + QData/*63:0*/ tb__DOT__val2; + QData/*63:0*/ tb__DOT__write_data; + QData/*63:0*/ tb__DOT__r__DOT__reg_array[32]; + + // LOCAL VARIABLES + // Internals; generally not touched by application code + CData/*4:0*/ __Vtask_tb__DOT__r__DOT__write_reg__0__regid; + QData/*63:0*/ __Vtask_tb__DOT__r__DOT__write_reg__0__data; + QData/*63:0*/ __Vchglast__TOP__tb__DOT__val1; + QData/*63:0*/ __Vchglast__TOP__tb__DOT__val2; + + // INTERNAL VARIABLES + // Internals; generally not touched by application code + Vtb__Syms* __VlSymsp; // Symbol table + + // CONSTRUCTORS + private: + VL_UNCOPYABLE(Vtb); ///< Copying not allowed + public: + /// Construct the model; called by application code + /// The special name may be used to make a wrapper with a + /// single model invisible with respect to DPI scope names. + Vtb(const char* name = "TOP"); + /// Destroy the model; called (often implicitly) by application code + ~Vtb(); + + // API METHODS + /// Evaluate the model. Application must call when inputs change. + void eval() { eval_step(); } + /// Evaluate when calling multiple units/models per time step. + void eval_step(); + /// Evaluate at end of a timestep for tracing, when using eval_step(). + /// Application must call after all eval() and before time changes. + void eval_end_step() {} + /// Simulation complete, run final blocks. Application must call on completion. + void final(); + + // INTERNAL METHODS + static void _eval_initial_loop(Vtb__Syms* __restrict vlSymsp); + void __Vconfigure(Vtb__Syms* symsp, bool first); + private: + static QData _change_request(Vtb__Syms* __restrict vlSymsp); + static QData _change_request_1(Vtb__Syms* __restrict vlSymsp); + void _ctor_var_reset() VL_ATTR_COLD; + public: + static void _eval(Vtb__Syms* __restrict vlSymsp); + private: +#ifdef VL_DEBUG + void _eval_debug_assertions(); +#endif // VL_DEBUG + public: + static void _eval_initial(Vtb__Syms* __restrict vlSymsp) VL_ATTR_COLD; + static void _eval_settle(Vtb__Syms* __restrict vlSymsp) VL_ATTR_COLD; + static void _initial__TOP__1(Vtb__Syms* __restrict vlSymsp) VL_ATTR_COLD; + static void _settle__TOP__2(Vtb__Syms* __restrict vlSymsp) VL_ATTR_COLD; +} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES); + +//---------- + + +#endif // guard |
