forked from M-Labs/artiq
kasli_generic: support DRTIO
This commit is contained in:
parent
d39338d59f
commit
791f830ef6
|
@ -117,6 +117,70 @@ class GenericStandalone(StandaloneBase):
|
||||||
self.rtio_crg.cd_rtio.clk, getattr(self, grabber).deserializer.cd_cl.clk)
|
self.rtio_crg.cd_rtio.clk, getattr(self, grabber).deserializer.cd_cl.clk)
|
||||||
|
|
||||||
|
|
||||||
|
class GenericMaster(MasterBase):
|
||||||
|
def __init__(self, description, hw_rev=None, **kwargs):
|
||||||
|
if hw_rev is None:
|
||||||
|
hw_rev = description["hw_rev"]
|
||||||
|
MasterBase.__init__(self,
|
||||||
|
hw_rev=hw_rev,
|
||||||
|
rtio_clk_freq=description.get("rtio_frequency", 125e6),
|
||||||
|
enable_sata=description.get("enable_sata_drtio", False),
|
||||||
|
**kwargs)
|
||||||
|
if hw_rev == "v1.0":
|
||||||
|
# EEM clock fan-out from Si5324, not MMCX
|
||||||
|
self.comb += self.platform.request("clk_sel").eq(1)
|
||||||
|
|
||||||
|
has_grabber = any(peripheral["type"] == "grabber" for peripheral in description["peripherals"])
|
||||||
|
if has_grabber:
|
||||||
|
self.grabber_csr_group = []
|
||||||
|
|
||||||
|
self.rtio_channels = []
|
||||||
|
add_peripherals(self, description["peripherals"])
|
||||||
|
self.config["HAS_RTIO_LOG"] = None
|
||||||
|
self.config["RTIO_LOG_CHANNEL"] = len(self.rtio_channels)
|
||||||
|
self.rtio_channels.append(rtio.LogChannel())
|
||||||
|
|
||||||
|
self.add_rtio(self.rtio_channels)
|
||||||
|
if has_grabber:
|
||||||
|
self.config["HAS_GRABBER"] = None
|
||||||
|
self.add_csr_group("grabber", self.grabber_csr_group)
|
||||||
|
for grabber in self.grabber_csr_group:
|
||||||
|
self.platform.add_false_path_constraints(
|
||||||
|
self.drtio_transceiver.gtps[0].txoutclk, getattr(self, grabber).deserializer.cd_cl.clk)
|
||||||
|
|
||||||
|
|
||||||
|
class GenericSatellite(SatelliteBase):
|
||||||
|
def __init__(self, description, hw_rev=None, **kwargs):
|
||||||
|
if hw_rev is None:
|
||||||
|
hw_rev = description["hw_rev"]
|
||||||
|
SatelliteBase.__init__(self,
|
||||||
|
hw_rev=hw_rev,
|
||||||
|
rtio_clk_freq=description.get("rtio_frequency", 125e6),
|
||||||
|
enable_sata=description.get("enable_sata_drtio", False),
|
||||||
|
**kwargs)
|
||||||
|
if hw_rev == "v1.0":
|
||||||
|
# EEM clock fan-out from Si5324, not MMCX
|
||||||
|
self.comb += self.platform.request("clk_sel").eq(1)
|
||||||
|
|
||||||
|
has_grabber = any(peripheral["type"] == "grabber" for peripheral in description["peripherals"])
|
||||||
|
if has_grabber:
|
||||||
|
self.grabber_csr_group = []
|
||||||
|
|
||||||
|
self.rtio_channels = []
|
||||||
|
add_peripherals(self, description["peripherals"])
|
||||||
|
self.config["HAS_RTIO_LOG"] = None
|
||||||
|
self.config["RTIO_LOG_CHANNEL"] = len(self.rtio_channels)
|
||||||
|
self.rtio_channels.append(rtio.LogChannel())
|
||||||
|
|
||||||
|
self.add_rtio(self.rtio_channels)
|
||||||
|
if has_grabber:
|
||||||
|
self.config["HAS_GRABBER"] = None
|
||||||
|
self.add_csr_group("grabber", self.grabber_csr_group)
|
||||||
|
for grabber in self.grabber_csr_group:
|
||||||
|
self.platform.add_false_path_constraints(
|
||||||
|
self.drtio_transceiver.gtps[0].txoutclk, getattr(self, grabber).deserializer.cd_cl.clk)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="ARTIQ device binary builder for generic Kasli systems")
|
description="ARTIQ device binary builder for generic Kasli systems")
|
||||||
|
|
Loading…
Reference in New Issue