#include #include #include "verilated.h" #include "verilated_vcd_c.h" #include "Vtop.h" void tick(int tickcount, Vtop *tb, VerilatedVcdC* tfp) { tb->eval(); if (tfp) tfp->dump(tickcount * 10 - 2); tb->i_clk = 1; tb->eval(); if (tfp) tfp->dump(tickcount * 10); tb->i_clk = 0; tb->eval(); if (tfp) { tfp->dump(tickcount * 10 + 5); tfp->flush(); } } int main(int argc, char **argv) { // Call commandArgs first! Verilated::commandArgs(argc, argv); // Instantiate our design Vtop *tb = new Vtop; Verilated::traceEverOn(true); VerilatedVcdC* tfp = new VerilatedVcdC; tb->trace(tfp, 00); tfp->open("build/waveform.vcd"); unsigned tickcount = 0; int last_led = tb->o_led; for(int k=0; k<(1 << 12); k++) { tick(++tickcount, tb, tfp); if (last_led != tb->o_led) { printf("k = %7d, led = %d\n", k, tb->o_led); } last_led = tb->o_led; } }