// 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 _VALU6_H_
#define _VALU6_H_ // guard
#include "verilated_heavy.h"
//==========
class Valu6__Syms;
class Valu6_VerilatedVcd;
//----------
VL_MODULE(Valu6) {
public:
// PORTS
// The application code writes and reads these signals to
// propagate new values into/out from the Verilated model.
VL_IN8(alu_op_i,3,0);
VL_IN(alu_in_1,31,0);
VL_IN(alu_in_2,31,0);
VL_OUT(alu_output,31,0);
// LOCAL SIGNALS
// Internals; generally not touched by application code
IData/*31:0*/ alu6__DOT__sum;
// LOCAL VARIABLES
// Internals; generally not touched by application code
CData/*0:0*/ __Vm_traceActivity[1];
// INTERNAL VARIABLES
// Internals; generally not touched by application code
Valu6__Syms* __VlSymsp; // Symbol table
// CONSTRUCTORS
private:
VL_UNCOPYABLE(Valu6); ///< 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.
Valu6(const char* name = "TOP");
/// Destroy the model; called (often implicitly) by application code
~Valu6();
/// Trace signals in the model; called by application code
void trace(VerilatedVcdC* tfp, int levels, int options = 0);
// 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(Valu6__Syms* __restrict vlSymsp);
void __Vconfigure(Valu6__Syms* symsp, bool first);
private:
static QData _change_request(Valu6__Syms* __restrict vlSymsp);
static QData _change_request_1(Valu6__Syms* __restrict vlSymsp);
public:
static void _combo__TOP__1(Valu6__Syms* __restrict vlSymsp);
private:
void _ctor_var_reset() VL_ATTR_COLD;
public:
static void _eval(Valu6__Syms* __restrict vlSymsp);
private:
#ifdef VL_DEBUG
void _eval_debug_assertions();
#endif // VL_DEBUG
public:
static void _eval_initial(Valu6__Syms* __restrict vlSymsp) VL_ATTR_COLD;
static void _eval_settle(Valu6__Syms* __restrict vlSymsp) VL_ATTR_COLD;
private:
static void traceChgSub0(void* userp, VerilatedVcd* tracep);
static void traceChgTop0(void* userp, VerilatedVcd* tracep);
static void traceCleanup(void* userp, VerilatedVcd* /*unused*/);
static void traceFullSub0(void* userp, VerilatedVcd* tracep) VL_ATTR_COLD;
static void traceFullTop0(void* userp, VerilatedVcd* tracep) VL_ATTR_COLD;
static void traceInitSub0(void* userp, VerilatedVcd* tracep) VL_ATTR_COLD;
static void traceInitTop(void* userp, VerilatedVcd* tracep) VL_ATTR_COLD;
void traceRegister(VerilatedVcd* tracep) VL_ATTR_COLD;
static void traceInit(void* userp, VerilatedVcd* tracep, uint32_t code) VL_ATTR_COLD;
} VL_ATTR_ALIGNED(VL_CACHE_LINE_BYTES);
//----------
#endif // guard