continuing experimentation with PLRU
[soc.git] / TLB / src / ariane / test_tlb.py
1 from nmigen.compat.sim import run_simulation
2
3 from tlb import TLB
4
5
6 def testbench(dut):
7 yield dut.lu_access_i.eq(1)
8 yield dut.lu_asid_i.eq(1)
9 yield dut.lu_vaddr_i.eq(0x80000)
10 yield dut.update_i.valid.eq(1)
11 yield dut.update_i.is_1G.eq(0)
12 yield dut.update_i.is_2M.eq(0)
13 yield dut.update_i.vpn.eq(0x80000)
14 yield dut.update_i.asid.eq(1)
15 yield dut.update_i.content.ppn.eq(0)
16 yield dut.update_i.content.rsw.eq(0)
17 yield dut.update_i.content.r.eq(1)
18
19 yield
20
21 yield dut.lu_vaddr_i.eq(0x80000)
22 yield dut.update_i.vpn.eq(0x80000)
23 yield
24
25 yield dut.lu_vaddr_i.eq(0x280000)
26 yield dut.update_i.vpn.eq(0x280000)
27 yield
28
29 yield dut.lu_vaddr_i.eq(0x040000)
30 yield dut.update_i.vpn.eq(0x040000)
31 yield
32
33 yield dut.update_i.is_1G.eq(1)
34 yield dut.lu_vaddr_i.eq(0x2040000)
35 yield dut.update_i.vpn.eq(0x02040000)
36 yield
37
38
39 if __name__ == "__main__":
40 dut = TLB()
41 run_simulation(dut, testbench(dut), vcd_name="test_tlb.vcd")