38 lines
786 B
C++
38 lines
786 B
C++
|
#include "Vrot.h"
|
||
|
#include "verilated.h"
|
||
|
#include "verilated_vcd_c.h"
|
||
|
|
||
|
int main(int argc, char** argv) {
|
||
|
VerilatedContext* contextp = new VerilatedContext;
|
||
|
contextp->commandArgs(argc, argv);
|
||
|
|
||
|
Vrot* rot = new Vrot{contextp};
|
||
|
|
||
|
Verilated::traceEverOn(true);
|
||
|
VerilatedVcdC* tracer = new VerilatedVcdC;
|
||
|
|
||
|
if (argc == 2) {
|
||
|
rot->trace(tracer, 10);
|
||
|
tracer->open(argv[1]);
|
||
|
}
|
||
|
|
||
|
|
||
|
while (!contextp->gotFinish() && contextp->time() < 100000) {
|
||
|
contextp->timeInc(1);
|
||
|
rot->clk = 1;
|
||
|
rot->eval();
|
||
|
tracer->dump(contextp->time());
|
||
|
|
||
|
contextp->timeInc(1);
|
||
|
rot->clk = 0;
|
||
|
rot->eval();
|
||
|
tracer->dump(contextp->time());
|
||
|
}
|
||
|
|
||
|
tracer->close();
|
||
|
|
||
|
delete rot;
|
||
|
delete contextp;
|
||
|
return 0;
|
||
|
}
|