2015-01-28 13:53:58 -05:00
|
|
|
from litescope.host.dump import *
|
2014-12-20 10:06:02 -05:00
|
|
|
|
|
|
|
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 = ""
|
2014-12-20 10:06:02 -05:00
|
|
|
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
|