0641b556e9b77406fdaafa5d409e1950ca355b34
[soc.git] / src / soc / TLB / test / test_set_associative_cache.py
1 from nmigen.compat.sim import run_simulation
2
3 from TLB.SetAssociativeCache import SetAssociativeCache
4
5 from TestUtil.test_helper import assert_eq, assert_ne, assert_op
6
7 def set_sac(dut, e, c, s, t, d):
8 yield dut.enable.eq(e)
9 yield dut.command.eq(c)
10 yield dut.cset.eq(s)
11 yield dut.tag.eq(t)
12 yield dut.data_i.eq(d)
13 yield
14
15 def tbench(dut):
16 enable = 1
17 command = 2
18 cset = 1
19 tag = 2
20 data = 3
21 yield from set_sac(dut, enable, command, cset, tag, data)
22 yield
23
24 enable = 1
25 command = 2
26 cset = 1
27 tag = 5
28 data = 8
29 yield from set_sac(dut, enable, command, cset, tag, data)
30 yield
31
32 def test_assoc_cache():
33 dut = SetAssociativeCache(4, 4, 4, 4)
34 run_simulation(dut, tbench(dut), vcd_name="Waveforms/test_set_associative_cache.vcd")
35 print("Set Associative Cache Unit Test Success")
36
37 if __name__ == "__main__":
38 test_assoc_cache()