// DESCRIPTION: Verilator: Verilog example module // // This file ONLY is placed under the Creative Commons Public Domain, for // any use, without warranty, 2017 by Wilson Snyder. // SPDX-License-Identifier: CC0-1.0 //====================================================================== // Include common routines #include // Include model header, generated from Verilating "top.v" #include "Vtop.h" int main(int argc, char** argv) { // See a similar example walkthrough in the verilator manpage. // This is intended to be a minimal example. Before copying this to start a // real project, it is better to start with a more complete example, // e.g. examples/c_tracing. // Construct a VerilatedContext to hold simulation time, etc. VerilatedContext* const contextp = new VerilatedContext; // Pass arguments so Verilated code can see them, e.g. $value$plusargs // This needs to be called before you create any model contextp->commandArgs(argc, argv); // Construct the Verilated model, from Vtop.h generated from Verilating "top.v" Vtop* const top = new Vtop{contextp}; // Simulate until $finish while (!contextp->gotFinish()) { // Evaluate model top->eval(); } // Final model cleanup top->final(); // Destroy model delete top; // Return good completion status return 0; }