#include #include "Vtestbench_top.h" vluint64_t main_time = 0; double sc_time_stamp() { return main_time; } int main(int argc, char **argv, char **env) { Verilated::debug(0); Verilated::randReset(2); Verilated::traceEverOn(true); Verilated::commandArgs(argc, argv); Verilated::mkdir("logs"); const int reset_time = 10; Vtestbench_top *top = new Vtestbench_top; // Or use a const unique_ptr, or the VL_UNIQUE_PTR wrapper top->clk = 0; while (!Verilated::gotFinish()) { ++main_time; top->clk = !top->clk; top->resetn = (main_time < reset_time) ? 1 : 0; if (main_time < reset_time) { // Zero coverage if still early in reset, otherwise toggles there may // falsely indicate a signal is covered VerilatedCov::zero(); } top->eval(); } top->final(); // Coverage analysis (since test passed) #if VM_COVERAGE Verilated::mkdir("logs"); VerilatedCov::write("logs/coverage.dat"); #endif delete top; top = NULL; exit(0); }