dfa7d4c5d84dcda2624ffa18aa5f87fdb08928a5
[litex.git] / test / test_link.py
1 import sys
2 from config import *
3 from tools import *
4 from bist import *
5 from litescope.host.driver import LiteScopeLADriver
6
7 la = LiteScopeLADriver(wb.regs, "la")
8 identify = LiteSATABISTIdentifyDriver(wb.regs, "sata_bist")
9 generator = LiteSATABISTGeneratorDriver(wb.regs, "sata_bist")
10 checker = LiteSATABISTCheckerDriver(wb.regs, "sata_bist")
11 wb.open()
12 regs = wb.regs
13 ###
14
15 if len(sys.argv) < 2:
16 print("Need trigger condition!")
17 sys.exit(0)
18
19 conditions = {}
20 conditions["wr_cmd"] = {
21 "sata_command_tx_sink_stb" : 1,
22 "sata_command_tx_sink_payload_write" : 1,
23 }
24 conditions["wr_dma_activate"] = {
25 "sata_command_rx_source_stb" : 1,
26 "sata_command_rx_source_payload_write" : 1,
27 }
28 conditions["rd_cmd"] = {
29 "sata_command_tx_sink_stb" : 1,
30 "sata_command_tx_sink_payload_read" : 1,
31 }
32 conditions["rd_data"] = {
33 "sata_command_rx_source_stb" : 1,
34 "sata_command_rx_source_payload_read" : 1,
35 }
36 conditions["id_cmd"] = {
37 "sata_command_tx_sink_stb" : 1,
38 "sata_command_tx_sink_payload_identify" : 1,
39 }
40 conditions["id_pio_setup"] = {
41 "source_source_payload_data" : primitives["X_RDY"],
42 }
43
44 la.prog_term(port=0, cond=conditions[sys.argv[1]])
45 la.prog_sum("term")
46
47 # Trigger / wait / receive
48 la.trigger(offset=512, length=2000)
49
50 #identify.run()
51 generator.run(0, 2, 1, 0)
52 #checker.run(0, 2, 1, 0)
53 la.wait_done()
54
55 la.read()
56 la.export("dump.vcd")
57 ###
58 wb.close()
59
60 f = open("dump_link.txt", "w")
61 data = link_trace(la,
62 tx_data_name="sink_sink_payload_data",
63 rx_data_name="source_source_payload_data"
64 )
65 f.write(data)
66 f.close()