_io = [
("sys_clk", 0, Pins("X")),
("sys_rst", 1, Pins("X")),
-
+ ("sata_clocks", 0,
+ Subsignal("refclk_p", Pins("X")),
+ Subsignal("refclk_n", Pins("X")),
+ ),
("sata", 0,
- Subsignal("refclk_p", Pins("C8")),
- Subsignal("refclk_n", Pins("C7")),
- Subsignal("txp", Pins("D2")),
- Subsignal("txn", Pins("D1")),
- Subsignal("rxp", Pins("E4")),
- Subsignal("rxn", Pins("E3")),
+ Subsignal("txp", Pins("X")),
+ Subsignal("txn", Pins("X")),
+ Subsignal("rxp", Pins("X")),
+ Subsignal("rxn", Pins("X")),
),
]
self.clk_freq = clk_freq
# SATA PHY/Core/Frontend
- self.submodules.sata_phy = LiteSATAPHY(platform.device, platform.request("sys_clk"), platform.request("sata"), "sata_gen2", clk_freq)
+ self.submodules.sata_phy = LiteSATAPHY(platform.device, platform.request("sata_clocks"), platform.request("sata"), "sata_gen2", clk_freq)
self.submodules.sata_core = LiteSATACore(self.sata_phy)
self.submodules.sata_crossbar = LiteSATACrossbar(self.sata_core)
ios = set()
# Transceiver
+ for e in dir(self.sata_phy.clock_pads):
+ obj = getattr(self.sata_phy.clock_pads, e)
+ if isinstance(obj, Signal):
+ ios = ios.union({obj})
for e in dir(self.sata_phy.pads):
obj = getattr(self.sata_phy.pads, e)
if isinstance(obj, Signal):
class LiteSATAPHY(Module):
def __init__(self, device, clock_pads_or_refclk, pads, revision, clk_freq):
+ self.clock_pads = clock_pads_or_refclk
self.pads = pads
self.revision = revision