#include "verilated.h" #include "verilated_vcd_c.h" #include "V@TOPMODULE@.h" #define DUMPFILE "@WORKDIR@/@TOPMODULE@.vcd" int main(int argc, char** argv, char**) { // Setup context, defaults, and parse command line Verilated::debug(0); const std::unique_ptr contextp{new VerilatedContext}; contextp->traceEverOn(true); contextp->commandArgs(argc, argv); // Construct the Verilated model, from Vtop.h generated from Verilating const std::unique_ptr topp{new V@TOPMODULE@{contextp.get()}}; VerilatedVcdC *vcd = new VerilatedVcdC; topp->trace(vcd, 99); vcd->open(DUMPFILE); // Simulate until $finish while (!contextp->gotFinish()) { // Evaluate model topp->eval(); vcd->dump(contextp->time()); // Advance time if (!topp->eventsPending()) break; contextp->time(topp->nextTimeSlot()); } if (!contextp->gotFinish()) { VL_DEBUG_IF(VL_PRINTF("+ Exiting without $finish; no events left\n");); } // Execute 'final' processes topp->final(); // Print statistical summary report contextp->statsPrintSummary(); vcd->close(); return 0; }