Skip to content

Instantly share code, notes, and snippets.

@gmlewis
Created March 4, 2019 13:13
Show Gist options
  • Save gmlewis/0f9d37e6e15ec361cf5b3e6c7d0d11aa to your computer and use it in GitHub Desktop.
Save gmlewis/0f9d37e6e15ec361cf5b3e6c7d0d11aa to your computer and use it in GitHub Desktop.
VCoupling.h for Luis
// 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 _VCoupling_H_
#define _VCoupling_H_
#include "verilated.h"
class VCoupling__Syms;
//----------
VL_MODULE(VCoupling) {
public:
// PORTS
// The application code writes and reads these signals to
// propagate new values into/out from the Verilated model.
// Begin mtask footprint all:
VL_IN8(clock,0,0);
VL_IN8(a_payload,7,0);
VL_OUT8(a_ready,0,0);
VL_IN8(a_valid,0,0);
VL_IN8(reset,0,0);
VL_OUT8(b,7,0);
// LOCAL SIGNALS
// Internals; generally not touched by application code
// Begin mtask footprint all:
VL_SIG8(Coupling__DOT__reg_,0,0);
VL_SIG8(Coupling__DOT___T_0,0,0);
// LOCAL VARIABLES
// Internals; generally not touched by application code
// Begin mtask footprint all:
VL_SIG8(__Vclklast__TOP__clock,0,0);
// INTERNAL VARIABLES
// Internals; generally not touched by application code
VCoupling__Syms* __VlSymsp; // Symbol table
// PARAMETERS
// Parameters marked /*verilator public*/ for use by application code
// CONSTRUCTORS
private:
VL_UNCOPYABLE(VCoupling); ///< 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.
VCoupling(const char* name="TOP");
/// Destroy the model; called (often implicitly) by application code
~VCoupling();
// API METHODS
/// Evaluate the model. Application must call when inputs change.
void eval();
/// Simulation complete, run final blocks. Application must call on completion.
void final();
// INTERNAL METHODS
private:
static void _eval_initial_loop(VCoupling__Syms* __restrict vlSymsp);
public:
void __Vconfigure(VCoupling__Syms* symsp, bool first);
private:
static QData _change_request(VCoupling__Syms* __restrict vlSymsp);
public:
static void _combo__TOP__3(VCoupling__Syms* __restrict vlSymsp);
private:
void _ctor_var_reset();
public:
static void _eval(VCoupling__Syms* __restrict vlSymsp);
private:
#ifdef VL_DEBUG
void _eval_debug_assertions();
#endif // VL_DEBUG
public:
static void _eval_initial(VCoupling__Syms* __restrict vlSymsp);
static void _eval_settle(VCoupling__Syms* __restrict vlSymsp);
static void _sequent__TOP__1(VCoupling__Syms* __restrict vlSymsp);
static void _settle__TOP__2(VCoupling__Syms* __restrict vlSymsp);
} VL_ATTR_ALIGNED(128);
#endif // guard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment