blob: c6c378b62d35cc412db2ec2e0a5a0fd7ac8298c9 (
plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include <verilated.h>
#include <verilated_vcd_c.h>
#include "Vsystem.h"
#include <iostream>
#include "DRAM.h"
struct Bench {
Vsystem *system;
DRAM *dram;
Bench() {
system = new Vsystem();
dram = new DRAM();
system->eval();
eval();
}
~Bench() {
delete dram;
delete system;
}
void eval() {
// Apply signals to the DRAM
dram->apply(
system->clk,
system->mem_we,
system->mem_claddr,
&system->mem_cldata
);
// Eval the DRAM
dram->eval();
// Eval the system
system->eval();
}
void tick() {
system->clk ^= 1;
eval();
}
};
int main() {
Bench bench;
for (int i = 0; i < 10000; i++)
bench.tick();
}
|