UberDDR3/delete_later/rtl/obj_dir/Vmain.cpp

209 lines
8.5 KiB
C++

// Verilated -*- C++ -*-
// DESCRIPTION: Verilator output: Model implementation (design independent parts)
#include "Vmain.h"
#include "Vmain__Syms.h"
#include "verilated_vcd_c.h"
#include "verilated_dpi.h"
//============================================================
// Constructors
Vmain::Vmain(VerilatedContext* _vcontextp__, const char* _vcname__)
: VerilatedModel{*_vcontextp__}
, vlSymsp{new Vmain__Syms(contextp(), _vcname__, this)}
, i_clk{vlSymsp->TOP.i_clk}
, i_reset{vlSymsp->TOP.i_reset}
, i_ddr3_controller_idelayctrl_rdy{vlSymsp->TOP.i_ddr3_controller_idelayctrl_rdy}
, o_ddr3_controller_dqs_tri_control{vlSymsp->TOP.o_ddr3_controller_dqs_tri_control}
, o_ddr3_controller_dq_tri_control{vlSymsp->TOP.o_ddr3_controller_dq_tri_control}
, o_ddr3_controller_toggle_dqs{vlSymsp->TOP.o_ddr3_controller_toggle_dqs}
, o_ddr3_controller_odelay_data_cntvaluein{vlSymsp->TOP.o_ddr3_controller_odelay_data_cntvaluein}
, o_ddr3_controller_odelay_dqs_cntvaluein{vlSymsp->TOP.o_ddr3_controller_odelay_dqs_cntvaluein}
, o_ddr3_controller_idelay_data_cntvaluein{vlSymsp->TOP.o_ddr3_controller_idelay_data_cntvaluein}
, o_ddr3_controller_idelay_dqs_cntvaluein{vlSymsp->TOP.o_ddr3_controller_idelay_dqs_cntvaluein}
, o_ddr3_controller_odelay_data_ld{vlSymsp->TOP.o_ddr3_controller_odelay_data_ld}
, o_ddr3_controller_odelay_dqs_ld{vlSymsp->TOP.o_ddr3_controller_odelay_dqs_ld}
, o_ddr3_controller_idelay_data_ld{vlSymsp->TOP.o_ddr3_controller_idelay_data_ld}
, o_ddr3_controller_idelay_dqs_ld{vlSymsp->TOP.o_ddr3_controller_idelay_dqs_ld}
, o_ddr3_controller_bitslip{vlSymsp->TOP.o_ddr3_controller_bitslip}
, o_sirefclk_word{vlSymsp->TOP.o_sirefclk_word}
, o_sirefclk_ce{vlSymsp->TOP.o_sirefclk_ce}
, i_fan_sda{vlSymsp->TOP.i_fan_sda}
, i_fan_scl{vlSymsp->TOP.i_fan_scl}
, o_fan_sda{vlSymsp->TOP.o_fan_sda}
, o_fan_scl{vlSymsp->TOP.o_fan_scl}
, o_fpga_pwm{vlSymsp->TOP.o_fpga_pwm}
, o_sys_pwm{vlSymsp->TOP.o_sys_pwm}
, i_fan_tach{vlSymsp->TOP.i_fan_tach}
, o_emmc_clk{vlSymsp->TOP.o_emmc_clk}
, i_emmc_ds{vlSymsp->TOP.i_emmc_ds}
, io_emmc_cmd_tristate{vlSymsp->TOP.io_emmc_cmd_tristate}
, o_emmc_cmd{vlSymsp->TOP.o_emmc_cmd}
, i_emmc_cmd{vlSymsp->TOP.i_emmc_cmd}
, io_emmc_dat_tristate{vlSymsp->TOP.io_emmc_dat_tristate}
, o_emmc_dat{vlSymsp->TOP.o_emmc_dat}
, i_emmc_dat{vlSymsp->TOP.i_emmc_dat}
, i_emmc_detect{vlSymsp->TOP.i_emmc_detect}
, i_i2c_sda{vlSymsp->TOP.i_i2c_sda}
, i_i2c_scl{vlSymsp->TOP.i_i2c_scl}
, o_i2c_sda{vlSymsp->TOP.o_i2c_sda}
, o_i2c_scl{vlSymsp->TOP.o_i2c_scl}
, o_sdcard_clk{vlSymsp->TOP.o_sdcard_clk}
, i_sdcard_ds{vlSymsp->TOP.i_sdcard_ds}
, io_sdcard_cmd_tristate{vlSymsp->TOP.io_sdcard_cmd_tristate}
, o_sdcard_cmd{vlSymsp->TOP.o_sdcard_cmd}
, i_sdcard_cmd{vlSymsp->TOP.i_sdcard_cmd}
, io_sdcard_dat_tristate{vlSymsp->TOP.io_sdcard_dat_tristate}
, o_sdcard_dat{vlSymsp->TOP.o_sdcard_dat}
, i_sdcard_dat{vlSymsp->TOP.i_sdcard_dat}
, i_sdcard_detect{vlSymsp->TOP.i_sdcard_detect}
, cpu_sim_cyc{vlSymsp->TOP.cpu_sim_cyc}
, cpu_sim_stb{vlSymsp->TOP.cpu_sim_stb}
, cpu_sim_we{vlSymsp->TOP.cpu_sim_we}
, cpu_sim_addr{vlSymsp->TOP.cpu_sim_addr}
, cpu_sim_stall{vlSymsp->TOP.cpu_sim_stall}
, cpu_sim_ack{vlSymsp->TOP.cpu_sim_ack}
, cpu_prof_stb{vlSymsp->TOP.cpu_prof_stb}
, i_cpu_reset{vlSymsp->TOP.i_cpu_reset}
, i_clk200{vlSymsp->TOP.i_clk200}
, i_wbu_uart_rx{vlSymsp->TOP.i_wbu_uart_rx}
, o_wbu_uart_tx{vlSymsp->TOP.o_wbu_uart_tx}
, o_wbu_uart_cts_n{vlSymsp->TOP.o_wbu_uart_cts_n}
, o_gpio{vlSymsp->TOP.o_gpio}
, i_sw{vlSymsp->TOP.i_sw}
, i_btn{vlSymsp->TOP.i_btn}
, o_led{vlSymsp->TOP.o_led}
, i_gpio{vlSymsp->TOP.i_gpio}
, i_ddr3_controller_iserdes_data{vlSymsp->TOP.i_ddr3_controller_iserdes_data}
, o_ddr3_controller_cmd{vlSymsp->TOP.o_ddr3_controller_cmd}
, o_ddr3_controller_data{vlSymsp->TOP.o_ddr3_controller_data}
, cpu_sim_data{vlSymsp->TOP.cpu_sim_data}
, cpu_sim_idata{vlSymsp->TOP.cpu_sim_idata}
, cpu_prof_addr{vlSymsp->TOP.cpu_prof_addr}
, cpu_prof_ticks{vlSymsp->TOP.cpu_prof_ticks}
, i_ddr3_controller_iserdes_dqs{vlSymsp->TOP.i_ddr3_controller_iserdes_dqs}
, i_ddr3_controller_iserdes_bitslip_reference{vlSymsp->TOP.i_ddr3_controller_iserdes_bitslip_reference}
, o_ddr3_controller_dm{vlSymsp->TOP.o_ddr3_controller_dm}
, rootp{&(vlSymsp->TOP)}
{
// Register model with the context
contextp()->addModel(this);
}
Vmain::Vmain(const char* _vcname__)
: Vmain(Verilated::threadContextp(), _vcname__)
{
}
//============================================================
// Destructor
Vmain::~Vmain() {
delete vlSymsp;
}
//============================================================
// Evaluation function
#ifdef VL_DEBUG
void Vmain___024root___eval_debug_assertions(Vmain___024root* vlSelf);
#endif // VL_DEBUG
void Vmain___024root___eval_static(Vmain___024root* vlSelf);
void Vmain___024root___eval_initial(Vmain___024root* vlSelf);
void Vmain___024root___eval_settle(Vmain___024root* vlSelf);
void Vmain___024root___eval(Vmain___024root* vlSelf);
void Vmain::eval_step() {
VL_DEBUG_IF(VL_DBG_MSGF("+++++TOP Evaluate Vmain::eval_step\n"); );
#ifdef VL_DEBUG
// Debug assertions
Vmain___024root___eval_debug_assertions(&(vlSymsp->TOP));
#endif // VL_DEBUG
vlSymsp->__Vm_activity = true;
vlSymsp->__Vm_deleter.deleteAll();
if (VL_UNLIKELY(!vlSymsp->__Vm_didInit)) {
vlSymsp->__Vm_didInit = true;
VL_DEBUG_IF(VL_DBG_MSGF("+ Initial\n"););
Vmain___024root___eval_static(&(vlSymsp->TOP));
Vmain___024root___eval_initial(&(vlSymsp->TOP));
Vmain___024root___eval_settle(&(vlSymsp->TOP));
}
// MTask 0 start
VL_DEBUG_IF(VL_DBG_MSGF("MTask0 starting\n"););
Verilated::mtaskId(0);
VL_DEBUG_IF(VL_DBG_MSGF("+ Eval\n"););
Vmain___024root___eval(&(vlSymsp->TOP));
// Evaluate cleanup
Verilated::endOfThreadMTask(vlSymsp->__Vm_evalMsgQp);
Verilated::endOfEval(vlSymsp->__Vm_evalMsgQp);
}
//============================================================
// Events and timing
bool Vmain::eventsPending() { return false; }
uint64_t Vmain::nextTimeSlot() {
VL_FATAL_MT(__FILE__, __LINE__, "", "%Error: No delays in the design");
return 0;
}
//============================================================
// Utilities
const char* Vmain::name() const {
return vlSymsp->name();
}
//============================================================
// Invoke final blocks
void Vmain___024root___eval_final(Vmain___024root* vlSelf);
VL_ATTR_COLD void Vmain::final() {
Vmain___024root___eval_final(&(vlSymsp->TOP));
}
//============================================================
// Implementations of abstract methods from VerilatedModel
const char* Vmain::hierName() const { return vlSymsp->name(); }
const char* Vmain::modelName() const { return "Vmain"; }
unsigned Vmain::threads() const { return 1; }
std::unique_ptr<VerilatedTraceConfig> Vmain::traceConfig() const {
return std::unique_ptr<VerilatedTraceConfig>{new VerilatedTraceConfig{false, false, false}};
};
//============================================================
// Trace configuration
void Vmain___024root__trace_init_top(Vmain___024root* vlSelf, VerilatedVcd* tracep);
VL_ATTR_COLD static void trace_init(void* voidSelf, VerilatedVcd* tracep, uint32_t code) {
// Callback from tracep->open()
Vmain___024root* const __restrict vlSelf VL_ATTR_UNUSED = static_cast<Vmain___024root*>(voidSelf);
Vmain__Syms* const __restrict vlSymsp VL_ATTR_UNUSED = vlSelf->vlSymsp;
if (!vlSymsp->_vm_contextp__->calcUnusedSigs()) {
VL_FATAL_MT(__FILE__, __LINE__, __FILE__,
"Turning on wave traces requires Verilated::traceEverOn(true) call before time 0.");
}
vlSymsp->__Vm_baseCode = code;
tracep->scopeEscape(' ');
tracep->pushNamePrefix(std::string{vlSymsp->name()} + ' ');
Vmain___024root__trace_init_top(vlSelf, tracep);
tracep->popNamePrefix();
tracep->scopeEscape('.');
}
VL_ATTR_COLD void Vmain___024root__trace_register(Vmain___024root* vlSelf, VerilatedVcd* tracep);
VL_ATTR_COLD void Vmain::trace(VerilatedVcdC* tfp, int levels, int options) {
if (tfp->isOpen()) {
vl_fatal(__FILE__, __LINE__, __FILE__,"'Vmain::trace()' shall not be called after 'VerilatedVcdC::open()'.");
}
if (false && levels && options) {} // Prevent unused
tfp->spTrace()->addModel(this);
tfp->spTrace()->addInitCb(&trace_init, &(vlSymsp->TOP));
Vmain___024root__trace_register(&(vlSymsp->TOP), tfp->spTrace());
}