update LiteScope
[litex.git] / test / tools.py
1 from miscope.host.dump import *
2
3 primitives = {
4 "ALIGN" : 0x7B4A4ABC,
5 "CONT" : 0X9999AA7C,
6 "SYNC" : 0xB5B5957C,
7 "R_RDY" : 0x4A4A957C,
8 "R_OK" : 0x3535B57C,
9 "R_ERR" : 0x5656B57C,
10 "R_IP" : 0X5555B57C,
11 "X_RDY" : 0x5757B57C,
12 "CONT" : 0x9999AA7C,
13 "WTRM" : 0x5858B57C,
14 "SOF" : 0x3737B57C,
15 "EOF" : 0xD5D5B57C,
16 "HOLD" : 0xD5D5AA7C,
17 "HOLDA" : 0X9595AA7C
18 }
19
20 def decode_primitive(dword):
21 for k, v in primitives.items():
22 if dword == v:
23 return k
24 return ""
25
26 def link_trace(mila, tx_data_name, rx_data_name):
27 r = ""
28 dump = Dump()
29 dump.add_from_layout(mila.layout, mila.dat)
30
31 for var in dump.vars:
32 if var.name == tx_data_name:
33 tx_data = var.values
34 if var.name == rx_data_name:
35 rx_data = var.values
36
37 for i in range(len(tx_data)):
38 tx = "%08x " %tx_data[i]
39 tx += decode_primitive(tx_data[i])
40 tx += " "*(16-len(tx))
41
42 rx = "%08x " %rx_data[i]
43 rx += decode_primitive(rx_data[i])
44 rx += " "*(16-len(rx))
45
46 r += tx + rx + "\n"
47
48 return r