add wr_only and rd_only mode to BIST (to test speed) and switch to 100MHz system...
[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 print_link_trace(mila, tx_data_name, rx_data_name):
27 dump = Dump()
28 dump.add_from_layout(mila.layout, mila.dat)
29
30 for var in dump.vars:
31 if var.name == tx_data_name:
32 tx_data = var.values
33 if var.name == rx_data_name:
34 rx_data = var.values
35
36 for i in range(len(tx_data)):
37 tx = "%08x " %tx_data[i]
38 tx += decode_primitive(tx_data[i])
39 tx += " "*(16-len(tx))
40
41 rx = "%08x " %rx_data[i]
42 rx += decode_primitive(rx_data[i])
43 rx += " "*(16-len(rx))
44
45 print(tx + rx)