From 21021beb08674a7d9eb51217137c325b50271512 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Mon, 9 Sep 2019 15:03:10 +0800 Subject: [PATCH] kasli: remove opticlock (moved to kasli_generic) --- artiq/examples/kasli/device_db_opticlock.py | 415 -------------------- artiq/gateware/targets/kasli.py | 72 +--- 2 files changed, 13 insertions(+), 474 deletions(-) delete mode 100644 artiq/examples/kasli/device_db_opticlock.py diff --git a/artiq/examples/kasli/device_db_opticlock.py b/artiq/examples/kasli/device_db_opticlock.py deleted file mode 100644 index 70c4d22d6..000000000 --- a/artiq/examples/kasli/device_db_opticlock.py +++ /dev/null @@ -1,415 +0,0 @@ -# This is an example device database that needs to be adapted to your setup. -# The list of devices here is not exhaustive. - -core_addr = "hunt.ptb.quartiq.de" - -device_db = { - "core": { - "type": "local", - "module": "artiq.coredevice.core", - "class": "Core", - "arguments": {"host": core_addr, "ref_period": 1e-9} - }, - "core_log": { - "type": "controller", - "host": "::1", - "port": 1068, - "command": "aqctl_corelog -p {port} --bind {bind} " + core_addr - }, - "core_cache": { - "type": "local", - "module": "artiq.coredevice.cache", - "class": "CoreCache" - }, - "core_dma": { - "type": "local", - "module": "artiq.coredevice.dma", - "class": "CoreDMA" - }, - - "i2c_switch0": { - "type": "local", - "module": "artiq.coredevice.i2c", - "class": "PCA9548", - "arguments": {"address": 0xe0} - }, - "i2c_switch1": { - "type": "local", - "module": "artiq.coredevice.i2c", - "class": "PCA9548", - "arguments": {"address": 0xe2} - }, - - "ttl0": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLInOut", - "arguments": {"channel": 0}, - }, - "ttl1": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLInOut", - "arguments": {"channel": 1}, - }, - "ttl2": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLInOut", - "arguments": {"channel": 2}, - }, - "ttl3": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLInOut", - "arguments": {"channel": 3}, - }, - - "ttl4": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 4}, - }, - "ttl5": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 5}, - }, - "ttl6": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 6}, - }, - "ttl7": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 7}, - }, - "ttl8": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 8}, - }, - "ttl9": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 9}, - }, - "ttl10": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 10}, - }, - "ttl11": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 11}, - }, - "ttl12": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 12}, - }, - "ttl13": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 13}, - }, - "ttl14": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 14}, - }, - "ttl15": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 15}, - }, - "ttl16": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 16}, - }, - "ttl17": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 17}, - }, - "ttl18": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 18}, - }, - "ttl19": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 19}, - }, - "ttl20": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 20}, - }, - "ttl21": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 21}, - }, - "ttl22": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 22}, - }, - "ttl23": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 23}, - }, - - "spi_novogorny0": { - "type": "local", - "module": "artiq.coredevice.spi2", - "class": "SPIMaster", - "arguments": {"channel": 24} - }, - "ttl_novogorny0_cnv": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 25} - }, - "novogorny0": { - "type": "local", - "module": "artiq.coredevice.novogorny", - "class": "Novogorny", - "arguments": { - "spi_device": "spi_novogorny0", - "cnv_device": "ttl_novogorny0_cnv", - } - }, - - "spi_urukul0": { - "type": "local", - "module": "artiq.coredevice.spi2", - "class": "SPIMaster", - "arguments": {"channel": 26} - }, - "ttl_urukul0_io_update": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 27} - }, - "ttl_urukul0_sw0": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 28} - }, - "ttl_urukul0_sw1": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 29} - }, - "ttl_urukul0_sw2": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 30} - }, - "ttl_urukul0_sw3": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 31} - }, - "urukul0_cpld": { - "type": "local", - "module": "artiq.coredevice.urukul", - "class": "CPLD", - "arguments": { - "spi_device": "spi_urukul0", - "io_update_device": "ttl_urukul0_io_update", - "refclk": 100e6, - "clk_sel": 1 - } - }, - "urukul0_ch0": { - "type": "local", - "module": "artiq.coredevice.ad9912", - "class": "AD9912", - "arguments": { - "pll_n": 10, - "chip_select": 4, - "cpld_device": "urukul0_cpld", - "sw_device": "ttl_urukul0_sw0" - } - }, - "urukul0_ch1": { - "type": "local", - "module": "artiq.coredevice.ad9912", - "class": "AD9912", - "arguments": { - "pll_n": 10, - "chip_select": 5, - "cpld_device": "urukul0_cpld", - "sw_device": "ttl_urukul0_sw1" - } - }, - "urukul0_ch2": { - "type": "local", - "module": "artiq.coredevice.ad9912", - "class": "AD9912", - "arguments": { - "pll_n": 10, - "chip_select": 6, - "cpld_device": "urukul0_cpld", - "sw_device": "ttl_urukul0_sw2" - } - }, - "urukul0_ch3": { - "type": "local", - "module": "artiq.coredevice.ad9912", - "class": "AD9912", - "arguments": { - "pll_n": 10, - "chip_select": 7, - "cpld_device": "urukul0_cpld", - "sw_device": "ttl_urukul0_sw3" - } - }, - - "led0": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 32} - }, - "led1": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 33} - }, - - "spi_urukul1": { - "type": "local", - "module": "artiq.coredevice.spi2", - "class": "SPIMaster", - "arguments": {"channel": 34} - }, - "ttl_urukul1_sync": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLClockGen", - "arguments": {"channel": 35, "acc_width": 4} - }, - "ttl_urukul1_io_update": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 36} - }, - "urukul1_cpld": { - "type": "local", - "module": "artiq.coredevice.urukul", - "class": "CPLD", - "arguments": { - "spi_device": "spi_urukul1", - "sync_device": "ttl_urukul1_sync", - "io_update_device": "ttl_urukul1_io_update", - "refclk": 100e6, - "clk_sel": 1 - } - }, - "urukul1_ch0": { - "type": "local", - "module": "artiq.coredevice.ad9910", - "class": "AD9910", - "arguments": { - "pll_n": 40, - "chip_select": 4, - "cpld_device": "urukul1_cpld" - } - }, - "urukul1_ch1": { - "type": "local", - "module": "artiq.coredevice.ad9910", - "class": "AD9910", - "arguments": { - "pll_n": 40, - "chip_select": 5, - "cpld_device": "urukul1_cpld" - } - }, - "urukul1_ch2": { - "type": "local", - "module": "artiq.coredevice.ad9910", - "class": "AD9910", - "arguments": { - "pll_n": 40, - "chip_select": 6, - "cpld_device": "urukul1_cpld" - } - }, - "urukul1_ch3": { - "type": "local", - "module": "artiq.coredevice.ad9910", - "class": "AD9910", - "arguments": { - "pll_n": 40, - "chip_select": 7, - "cpld_device": "urukul1_cpld" - } - }, - - "spi_zotino0": { - "type": "local", - "module": "artiq.coredevice.spi2", - "class": "SPIMaster", - "arguments": {"channel": 37} - }, - "ttl_zotino0_ldac": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 38} - }, - "ttl_zotino0_clr": { - "type": "local", - "module": "artiq.coredevice.ttl", - "class": "TTLOut", - "arguments": {"channel": 39} - }, - "zotino0": { - "type": "local", - "module": "artiq.coredevice.zotino", - "class": "Zotino", - "arguments": { - "spi_device": "spi_zotino0", - "ldac_device": "ttl_zotino0_ldac", - "clr_device": "ttl_zotino0_clr" - } - } -} diff --git a/artiq/gateware/targets/kasli.py b/artiq/gateware/targets/kasli.py index 3c0ede50d..835f6c863 100755 --- a/artiq/gateware/targets/kasli.py +++ b/artiq/gateware/targets/kasli.py @@ -148,32 +148,30 @@ class StandaloneBase(MiniSoC, AMPSoC): self.csr_devices.append("rtio_analyzer") -class Opticlock(StandaloneBase): +class Tester(StandaloneBase): """ - Opticlock extension variant configuration + Configuration for CI tests. Contains the maximum number of different EEMs. """ def __init__(self, hw_rev=None, **kwargs): if hw_rev is None: - hw_rev = "v1.0" + hw_rev = "v1.1" StandaloneBase.__init__(self, hw_rev=hw_rev, **kwargs) self.config["SI5324_AS_SYNTHESIZER"] = None - self.config["SI5324_EXT_REF"] = None - self.config["EXT_REF_FREQUENCY"] = "100.0" + # self.config["SI5324_EXT_REF"] = None self.config["RTIO_FREQUENCY"] = "125.0" if hw_rev == "v1.0": # EEM clock fan-out from Si5324, not MMCX self.comb += self.platform.request("clk_sel").eq(1) self.rtio_channels = [] - eem.DIO.add_std(self, 0, - ttl_serdes_7series.InOut_8X, ttl_serdes_7series.Output_8X) - eem.DIO.add_std(self, 1, - ttl_serdes_7series.Output_8X, ttl_serdes_7series.Output_8X) - eem.DIO.add_std(self, 2, - ttl_serdes_7series.Output_8X, ttl_serdes_7series.Output_8X) - eem.Novogorny.add_std(self, 3, ttl_serdes_7series.Output_8X) - eem.Urukul.add_std(self, 5, 4, ttl_serdes_7series.Output_8X) + eem.DIO.add_std(self, 5, + ttl_serdes_7series.InOut_8X, ttl_serdes_7series.Output_8X, + edge_counter_cls=edge_counter.SimpleEdgeCounter) + eem.Urukul.add_std(self, 0, 1, ttl_serdes_7series.Output_8X, + ttl_simple.ClockGen) + eem.Sampler.add_std(self, 3, 2, ttl_serdes_7series.Output_8X) + eem.Zotino.add_std(self, 4, ttl_serdes_7series.Output_8X) for i in (1, 2): sfp_ctl = self.platform.request("sfp_ctl", i) @@ -181,14 +179,9 @@ class Opticlock(StandaloneBase): self.submodules += phy self.rtio_channels.append(rtio.Channel.from_phy(phy)) - eem.Urukul.add_std(self, 6, None, ttl_serdes_7series.Output_8X, - ttl_simple.ClockGen) - eem.Zotino.add_std(self, 7, ttl_serdes_7series.Output_8X) - 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) @@ -239,43 +232,6 @@ class SUServo(StandaloneBase): pads.clkout, self.crg.cd_sys.clk) -class Tester(StandaloneBase): - """ - Configuration for CI tests. Contains the maximum number of different EEMs. - """ - def __init__(self, hw_rev=None, **kwargs): - if hw_rev is None: - hw_rev = "v1.1" - StandaloneBase.__init__(self, hw_rev=hw_rev, **kwargs) - - self.config["SI5324_AS_SYNTHESIZER"] = None - # self.config["SI5324_EXT_REF"] = None - self.config["RTIO_FREQUENCY"] = "125.0" - if hw_rev == "v1.0": - # EEM clock fan-out from Si5324, not MMCX - self.comb += self.platform.request("clk_sel").eq(1) - - self.rtio_channels = [] - eem.DIO.add_std(self, 5, - ttl_serdes_7series.InOut_8X, ttl_serdes_7series.Output_8X, - edge_counter_cls=edge_counter.SimpleEdgeCounter) - eem.Urukul.add_std(self, 0, 1, ttl_serdes_7series.Output_8X, - ttl_simple.ClockGen) - eem.Sampler.add_std(self, 3, 2, ttl_serdes_7series.Output_8X) - eem.Zotino.add_std(self, 4, ttl_serdes_7series.Output_8X) - - for i in (1, 2): - sfp_ctl = self.platform.request("sfp_ctl", i) - phy = ttl_simple.Output(sfp_ctl.led) - self.submodules += phy - self.rtio_channels.append(rtio.Channel.from_phy(phy)) - - 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) - - class _RTIOClockMultiplier(Module, AutoCSR): def __init__(self, rtio_clk_freq): self.pll_reset = CSRStorage(reset=1) @@ -662,9 +618,7 @@ class Satellite(SatelliteBase): self.add_rtio(self.rtio_channels) -VARIANTS = {cls.__name__.lower(): cls for cls in [ - Opticlock, SUServo, - Tester, Master, Satellite]} +VARIANTS = {cls.__name__.lower(): cls for cls in [Tester, SUServo, Master, Satellite]} def main(): @@ -673,7 +627,7 @@ def main(): builder_args(parser) soc_kasli_args(parser) parser.set_defaults(output_dir="artiq_kasli") - parser.add_argument("-V", "--variant", default="opticlock", + parser.add_argument("-V", "--variant", default="tester", help="variant: {} (default: %(default)s)".format( "/".join(sorted(VARIANTS.keys())))) args = parser.parse_args()