CIRCT 23.0.0git
Loading...
Searching...
No Matches
xrt_cosim.py
Go to the documentation of this file.
1# Script to help test xrt in cosim mode. No support for xrt in cosim mode in the
2# runtime, so this is not an automated test. Just an ad-hoc one.
3
4import esiaccel
5
6conn = esiaccel.AcceleratorConnection("cosim", "env")
7acc = conn.build_accelerator()
8rdaddr = acc.ports[esiaccel.AppID("mmio_axi_rdaddr")].write_port("data")
9rdaddr.connect()
10rddata = acc.ports[esiaccel.AppID("mmio_axi_rddata")].read_port("data")
11rddata.connect()
12
13wraddr = acc.ports[esiaccel.AppID("mmio_axi_wraddr")].write_port("data")
14wraddr.connect()
15wrdata = acc.ports[esiaccel.AppID("mmio_axi_wrdata")].write_port("data")
16wrdata.connect()
17wrresp = acc.ports[esiaccel.AppID("mmio_axi_wrresp")].read_port("data")
18wrresp.connect()
19
20print("connected")
21
22
23def read(addr):
24 rdaddr.write(addr)
25 d = rddata.read()
26 print(f"Read from 0x{addr:02x}: 0x{d:08x}")
27 return d
28
29
30def write(addr, data):
31 wraddr.write(addr)
32 wrdata.write(data)
33 d = wrresp.read()
34 print(f"Write to 0x{addr:02x}: 0x{data:08x} -> {d}")
35
36
37for addr in range(0, 0x100, 4):
38 d = read(addr)
39 if addr == 0x18:
40 mani_offset = d
41
42for addr in range(mani_offset, mani_offset + 0x100, 4):
43 read(addr)
44
45write(262144 + 8, 30)
46write(262144 + 12, 40)
47read(262144 + 32)
48read(262144 + 36)
static void print(TypedAttr val, llvm::raw_ostream &os)
write(addr, data)
Definition xrt_cosim.py:30
read(addr)
Definition xrt_cosim.py:23