// Verilated -*- C++ -*- // DESCRIPTION: Verilator output: main() simulation loop, created with --main #include "verilated.h" #include "Vsim.h" //====================== 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->threads(1); contextp->commandArgs(argc, argv); // Construct the Verilated model, from Vtop.h generated from Verilating const std::unique_ptr topp{new Vsim{contextp.get(), ""}}; // Simulate until $finish while (VL_LIKELY(!contextp->gotFinish())) { // Evaluate model topp->eval(); // Advance time if (!topp->eventsPending()) break; contextp->time(topp->nextTimeSlot()); } if (VL_LIKELY(!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(); return 0; }