[sim] added icache simulator (disabled by default)
[riscv-isa-sim.git] / riscv / icsim.h
1 #ifndef _RISCV_ICSIM_H
2 #define _RISCV_ICSIM_H
3
4 #include <cstring>
5 #include <stdint.h>
6
7 class icsim_t
8 {
9 public:
10 icsim_t(size_t sets, size_t ways, size_t linesz);
11 ~icsim_t();
12
13 void tick(uint64_t pc, int insnlen);
14 private:
15 size_t sets;
16 size_t ways;
17 size_t linesz;
18 size_t idx_shift;
19 size_t idx_mask;
20
21 uint64_t accesses;
22 uint64_t misses;
23 uint64_t bytes_fetched;
24
25 uint64_t* tags;
26
27 static const uint64_t VALID = 1ULL << 63;
28 };
29
30 #endif