litex/test/tools.py

49 lines
965 B
Python
Raw Normal View History

2015-01-28 13:53:58 -05:00
from litescope.host.dump import *
primitives = {
"ALIGN" : 0x7B4A4ABC,
"CONT" : 0X9999AA7C,
"SYNC" : 0xB5B5957C,
"R_RDY" : 0x4A4A957C,
"R_OK" : 0x3535B57C,
"R_ERR" : 0x5656B57C,
"R_IP" : 0X5555B57C,
"X_RDY" : 0x5757B57C,
"CONT" : 0x9999AA7C,
"WTRM" : 0x5858B57C,
"SOF" : 0x3737B57C,
"EOF" : 0xD5D5B57C,
"HOLD" : 0xD5D5AA7C,
"HOLDA" : 0X9595AA7C
}
def decode_primitive(dword):
for k, v in primitives.items():
if dword == v:
return k
return ""
2015-01-20 11:14:01 -05:00
def link_trace(mila, tx_data_name, rx_data_name):
r = ""
dump = Dump()
dump.add_from_layout(mila.layout, mila.dat)
for var in dump.vars:
if var.name == tx_data_name:
tx_data = var.values
if var.name == rx_data_name:
rx_data = var.values
for i in range(len(tx_data)):
tx = "%08x " %tx_data[i]
tx += decode_primitive(tx_data[i])
tx += " "*(16-len(tx))
rx = "%08x " %rx_data[i]
rx += decode_primitive(rx_data[i])
rx += " "*(16-len(rx))
2015-01-20 11:14:01 -05:00
r += tx + rx + "\n"
return r