diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-11-13 23:00:12 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-11-13 23:00:12 +0000 |
commit | 003c2ebeed882c83ac06a0cd1f7449677ca31d14 (patch) | |
tree | ab2aa367b86b2bfa6b1f66bb747390dabf1f3e78 /scripts/verilator_main.cpp | |
parent | 182b6dec50ee4698bff6ef70f93788641d154cdb (diff) | |
download | vericert-003c2ebeed882c83ac06a0cd1f7449677ca31d14.tar.gz vericert-003c2ebeed882c83ac06a0cd1f7449677ca31d14.zip |
Rename the verilator script
Diffstat (limited to 'scripts/verilator_main.cpp')
-rw-r--r-- | scripts/verilator_main.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/verilator_main.cpp b/scripts/verilator_main.cpp new file mode 100644 index 0000000..4561158 --- /dev/null +++ b/scripts/verilator_main.cpp @@ -0,0 +1,35 @@ +#include <stdlib.h> +#include <stdio.h> +#include "Vmain.h" +#include "verilated.h" + +int main(int argc, char **argv) { + // Initialize Verilators variables + Verilated::commandArgs(argc, argv); + + // Create an instance of our module under test + Vmain *tb = new Vmain; + + tb->clk = 0; + tb->start = 0; + tb->reset = 0; + tb->eval(); tb->clk = 1; tb->eval(); tb->clk = 0; tb->eval(); + tb->reset = 1; + tb->eval(); tb->clk = 1; tb->eval(); tb->clk = 0; tb->eval(); + tb->reset = 0; + tb->eval(); tb->clk = 1; tb->eval(); tb->clk = 0; tb->eval(); + + int cycles = 1; + + // Tick the clock until we are done + while(!tb->finish) { + tb->clk = 1; + tb->eval(); + tb->clk = 0; + tb->eval(); + cycles++; + } + + printf("cycles: %d\nfinished: %d\n", cycles, (unsigned)tb->return_val); + exit(EXIT_SUCCESS); +} |