blob: 6059d635a8c77f8300ea1bea18c4a7955f233fbd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <cstdint>
#include <cstdio>
#include "Vadd.h"
#include "verilated.h"
enum { MAX = 10000 };
int
main(int argc, char **argv)
{
VerilatedContext *cp = new VerilatedContext;
cp->commandArgs(argc, argv);
Vadd *top = new Vadd{cp};
top->clk = 0;
int numclks = 0;
for (int x = 0; x < MAX; ++x) {
for (int y = 0; y < MAX; ++y) {
top->x = x;
top->y = y;
top->clk = 1;
top->eval();
int s = top->s;
if (s != (uint8_t)(x + y))
printf("%4d + %4d = %4d\n", x, y, s);
top->clk = 0;
top->eval();
++numclks;
}
}
fprintf(stderr, "%d clock cycles\n", numclks);
}
|