2014-12-19 14:16:37 -05:00
|
|
|
import time
|
2014-12-19 13:02:31 -05:00
|
|
|
from config import *
|
2014-12-19 19:26:58 -05:00
|
|
|
from miscope.host.dump import *
|
2014-12-19 13:02:31 -05:00
|
|
|
from miscope.host.drivers import MiLaDriver
|
|
|
|
|
|
|
|
mila = MiLaDriver(wb.regs, "mila", use_rle=False)
|
|
|
|
wb.open()
|
2014-12-19 14:16:37 -05:00
|
|
|
regs = wb.regs
|
2014-12-19 13:02:31 -05:00
|
|
|
###
|
|
|
|
trigger0 = mila.sata_con_sink_stb_o*1
|
|
|
|
mask0 = mila.sata_con_sink_stb_m
|
|
|
|
|
|
|
|
mila.prog_term(port=0, trigger=trigger0, mask=mask0)
|
|
|
|
mila.prog_sum("term")
|
|
|
|
|
|
|
|
# Trigger / wait / receive
|
2014-12-19 19:26:58 -05:00
|
|
|
mila.trigger(offset=32, length=256)
|
2014-12-19 13:02:31 -05:00
|
|
|
regs.identify_requester_req.write(1)
|
|
|
|
regs.identify_requester_req.write(0)
|
|
|
|
mila.wait_done()
|
|
|
|
mila.read()
|
|
|
|
mila.export("dump.vcd")
|
|
|
|
mila.export("dump.csv")
|
2014-12-19 19:26:58 -05:00
|
|
|
mila.export("dump.py")
|
2014-12-19 13:02:31 -05:00
|
|
|
###
|
|
|
|
wb.close()
|
2014-12-19 19:26:58 -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 ""
|
|
|
|
|
|
|
|
dump = Dump()
|
|
|
|
dump.add_from_layout(mila.layout, mila.dat)
|
|
|
|
|
|
|
|
for var in dump.vars:
|
|
|
|
if var.name == "sata_phy_sink_sink_payload_data":
|
|
|
|
tx_data = var.values
|
|
|
|
if var.name == "sata_phy_source_source_payload_data":
|
|
|
|
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))
|
|
|
|
|
|
|
|
print(tx + rx)
|