If(test_type("DMA_ACTIVATE_D2H"),
dma_activate.eq(1),
NextState("WAIT_WRITE_REG_D2H")
+ ).Else(
+ NextState("IDLE") # Generate an error
)
)
)
If(transport.source.stb,
If(test_type("REG_D2H"),
NextState("PRESENT_WRITE_RESPONSE")
+ ).Else(
+ NextState("IDLE") # Generate an error
)
)
)
transport.source.ack.eq(0),
If(test_type("DATA"),
NextState("PRESENT_READ_DATA")
+ ).Else(
+ NextState("IDLE") # Generate an error
)
)
)
If(transport.source.stb,
If(test_type("REG_D2H"),
NextState("PRESENT_READ_RESPONSE")
+ ).Else(
+ NextState("IDLE") # Generate an error
)
)
)
wb.open()
regs = wb.regs
###
+
+#trigger0 = mila.sata_con_sink_payload_identify_o*1
+#mask0 = mila.sata_con_sink_payload_identify_m
+
#trigger0 = mila.sata_phy_source_source_payload_data_o*primitives["R_OK"]
#mask0 = mila.sata_phy_source_source_payload_data_m
-trigger0 = mila.sata_con_sink_payload_identify_o*1
-mask0 = mila.sata_con_sink_payload_identify_m
+trigger0 = mila.sata_phy_source_source_payload_data_o*primitives["X_RDY"]
+mask0 = mila.sata_phy_source_source_payload_data_m
mila.prog_term(port=0, trigger=trigger0, mask=mask0)
mila.prog_sum("term")
--- /dev/null
+import time
+from config import *
+from tools import *
+from miscope.host.drivers import MiLaDriver
+
+mila = MiLaDriver(wb.regs, "mila")
+wb.open()
+regs = wb.regs
+###
+
+#trigger0 = mila.sata_con_sink_payload_read_o*1
+#mask0 = mila.sata_con_sink_payload_read_m
+
+#trigger0 = mila.sata_phy_source_source_payload_data_o*primitives["R_OK"]
+#mask0 = mila.sata_phy_source_source_payload_data_m
+
+trigger0 = mila.sata_phy_source_source_payload_data_o*primitives["X_RDY"]
+mask0 = mila.sata_phy_source_source_payload_data_m
+
+mila.prog_term(port=0, trigger=trigger0, mask=mask0)
+mila.prog_sum("term")
+
+# Trigger / wait / receive
+mila.trigger(offset=32, length=512)
+regs.command_generator_sector.write(0)
+regs.command_generator_count.write(1)
+regs.command_generator_read.write(1)
+mila.wait_done()
+mila.read()
+mila.export("dump.vcd")
+###
+wb.close()
+
+print_link_trace(mila,
+ tx_data_name="sata_phy_sink_sink_payload_data",
+ rx_data_name="sata_phy_source_source_payload_data"
+)
--- /dev/null
+import time
+from config import *
+from tools import *
+from miscope.host.drivers import MiLaDriver
+
+mila = MiLaDriver(wb.regs, "mila")
+wb.open()
+regs = wb.regs
+###
+
+#trigger0 = mila.sata_con_sink_payload_write_o*1
+#mask0 = mila.sata_con_sink_payload_write_m
+
+#trigger0 = mila.sata_phy_source_source_payload_data_o*primitives["R_RDY"]
+#mask0 = mila.sata_phy_source_source_payload_data_m
+
+trigger0 = mila.sata_phy_source_source_payload_data_o*primitives["R_OK"]
+mask0 = mila.sata_phy_source_source_payload_data_m
+
+mila.prog_term(port=0, trigger=trigger0, mask=mask0)
+mila.prog_sum("term")
+
+# Trigger / wait / receive
+mila.trigger(offset=32, length=512)
+regs.command_generator_sector.write(0)
+regs.command_generator_count.write(1)
+regs.command_generator_data.write(0x12345678)
+regs.command_generator_write.write(1)
+mila.wait_done()
+mila.read()
+mila.export("dump.vcd")
+###
+wb.close()
+
+print_link_trace(mila,
+ tx_data_name="sata_phy_sink_sink_payload_data",
+ rx_data_name="sata_phy_source_source_payload_data"
+)