From 9de383bdc2dc69efecc402ec5c87196e9c4c9e61 Mon Sep 17 00:00:00 2001 From: newell Date: Mon, 23 Dec 2024 16:19:42 -0800 Subject: [PATCH] Update test --- artiq/test/coredevice/test_urukul.py | 233 +++++++++++++-------------- 1 file changed, 112 insertions(+), 121 deletions(-) diff --git a/artiq/test/coredevice/test_urukul.py b/artiq/test/coredevice/test_urukul.py index 694818368..4a6372a70 100644 --- a/artiq/test/coredevice/test_urukul.py +++ b/artiq/test/coredevice/test_urukul.py @@ -1,12 +1,14 @@ -from artiq.coredevice import urukul +from artiq.coredevice.urukul import STA_PROTO_REV_9, urukul_sta_rf_sw from artiq.experiment import * from artiq.test.hardware_testbench import ExperimentCase +CPLD = "urukul_cpld" + class UrukulExp(EnvExperiment): def build(self, runner): self.setattr_device("core") - self.dev = self.get_device("urukul_cpld") + self.dev = self.get_device(CPLD) self.runner = runner def run(self): @@ -73,27 +75,24 @@ class UrukulExp(EnvExperiment): @kernel def att_enables(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - self.dev.cfg_att_en(0, False) - self.dev.cfg_att_en(2, True) - self.dev.cfg_att_en(3, True) - self.dev.cfg_att_en_all(0b1010) + self.core.break_realtime() + self.dev.init() + self.dev.cfg_att_en(0, False) + self.dev.cfg_att_en(2, True) + self.dev.cfg_att_en(3, True) + self.dev.cfg_att_en_all(0b1010) @kernel def att_enable_speed(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - n = 10 - t0 = self.core.get_rtio_counter_mu() - for i in range(n): - self.dev.cfg_att_en(1, bool(i & 1)) - self.set_dataset( - "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n - ) - self.set_dataset("dt", None) + self.core.break_realtime() + self.dev.init() + n = 10 + t0 = self.core.get_rtio_counter_mu() + for i in range(n): + self.dev.cfg_att_en(1, bool(i & 1)) + self.set_dataset( + "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n + ) @kernel def att(self): @@ -165,99 +164,87 @@ class UrukulExp(EnvExperiment): @kernel def osk(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - self.dev.cfg_osk(0, False) - self.dev.cfg_osk(2, True) - self.dev.cfg_osk(3, True) - self.dev.cfg_osk_all(0b1010) + self.core.break_realtime() + self.dev.init() + self.dev.cfg_osk(0, False) + self.dev.cfg_osk(2, True) + self.dev.cfg_osk(3, True) + self.dev.cfg_osk_all(0b1010) @kernel def osk_speed(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - n = 10 - t0 = self.core.get_rtio_counter_mu() - for i in range(n): - self.dev.cfg_osk(1, bool(i & 1)) - self.set_dataset( - "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n - ) - self.set_dataset("dt", None) + self.core.break_realtime() + self.dev.init() + n = 10 + t0 = self.core.get_rtio_counter_mu() + for i in range(n): + self.dev.cfg_osk(1, bool(i & 1)) + self.set_dataset( + "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n + ) @kernel def drctl(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - self.dev.cfg_drctl(0, False) - self.dev.cfg_drctl(1, True) - self.dev.cfg_drctl(3, True) - self.dev.cfg_drctl_all(0b1010) + self.core.break_realtime() + self.dev.init() + self.dev.cfg_drctl(0, False) + self.dev.cfg_drctl(1, True) + self.dev.cfg_drctl(3, True) + self.dev.cfg_drctl_all(0b1010) @kernel def drctl_speed(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - n = 10 - t0 = self.core.get_rtio_counter_mu() - for i in range(n): - self.dev.cfg_drctl(2, bool(i & 1)) - self.set_dataset( - "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n - ) - self.set_dataset("dt", None) + self.core.break_realtime() + self.dev.init() + n = 10 + t0 = self.core.get_rtio_counter_mu() + for i in range(n): + self.dev.cfg_drctl(2, bool(i & 1)) + self.set_dataset( + "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n + ) @kernel def drhold(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - self.dev.cfg_drhold(0, False) - self.dev.cfg_drhold(2, True) - self.dev.cfg_drhold(3, True) - self.dev.cfg_drhold_all(0b1010) + self.core.break_realtime() + self.dev.init() + self.dev.cfg_drhold(0, False) + self.dev.cfg_drhold(2, True) + self.dev.cfg_drhold(3, True) + self.dev.cfg_drhold_all(0b1010) @kernel def drhold_speed(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - n = 10 - t0 = self.core.get_rtio_counter_mu() - for i in range(n): - self.dev.cfg_drhold(1, bool(i & 1)) - self.set_dataset( - "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n - ) - self.set_dataset("dt", None) + self.core.break_realtime() + self.dev.init() + n = 10 + t0 = self.core.get_rtio_counter_mu() + for i in range(n): + self.dev.cfg_drhold(1, bool(i & 1)) + self.set_dataset( + "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n + ) @kernel def mask_nu(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - self.dev.cfg_mask_nu(0, False) - self.dev.cfg_mask_nu(1, True) - self.dev.cfg_mask_nu(3, True) - self.dev.cfg_mask_nu_all(0b1010) + self.core.break_realtime() + self.dev.init() + self.dev.cfg_mask_nu(0, False) + self.dev.cfg_mask_nu(1, True) + self.dev.cfg_mask_nu(3, True) + self.dev.cfg_mask_nu_all(0b1010) @kernel def mask_nu_speed(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - n = 10 - t0 = self.core.get_rtio_counter_mu() - for i in range(n): - self.dev.cfg_mask_nu(2, bool(i & 1)) - self.set_dataset( - "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n - ) - self.set_dataset("dt", None) + self.core.break_realtime() + self.dev.init() + n = 10 + t0 = self.core.get_rtio_counter_mu() + for i in range(n): + self.dev.cfg_mask_nu(2, bool(i & 1)) + self.set_dataset( + "dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n + ) # Note, cfg_io_update is tested in test_ad9910.py @kernel @@ -281,14 +268,13 @@ class UrukulExp(EnvExperiment): @kernel def cfg_profile(self): - if self.dev.proto_rev == urukul.STA_PROTO_REV_9: - self.core.break_realtime() - self.dev.init() - self.dev.set_profile(0, 7) - self.dev.set_profile(1, 0) - self.dev.set_profile(2, 3) - self.dev.set_profile(3, 5) - self.dev.cfg_drctl_all(0b1111) + self.core.break_realtime() + self.dev.init() + self.dev.set_profile(0, 7) + self.dev.set_profile(1, 0) + self.dev.set_profile(2, 3) + self.dev.set_profile(3, 5) + self.dev.cfg_drctl_all(0b1111) class UrukulTest(ExperimentCase): @@ -320,17 +306,18 @@ class UrukulTest(ExperimentCase): def test_switches_readback(self): self.execute(UrukulExp, "switches_readback") - sw_get = urukul.urukul_sta_rf_sw(self.dataset_mgr.get("sta_get")) + sw_get = urukul_sta_rf_sw(self.dataset_mgr.get("sta_get")) sw_set = self.dataset_mgr.get("sw_set") self.assertEqual(sw_get, sw_set) def test_att_enables(self): - self.execute(UrukulExp, "att_enables") + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "att_enables") def test_att_enable_speed(self): - self.execute(UrukulExp, "att_enable_speed") - dt = self.dataset_mgr.get("dt") - if dt: + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "att_enable_speed") + dt = self.dataset_mgr.get("dt") print(dt) self.assertLess(dt, 5 * us) @@ -362,42 +349,46 @@ class UrukulTest(ExperimentCase): self.assertLess(dt, 5 * us) def test_osk(self): - self.execute(UrukulExp, "osk") + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "osk") def test_osk_speed(self): - self.execute(UrukulExp, "osk_speed") - dt = self.dataset_mgr.get("dt") - if dt: + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "osk_speed") + dt = self.dataset_mgr.get("dt") print(dt) self.assertLess(dt, 5 * us) def test_drctl(self): - self.execute(UrukulExp, "drctl") + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "drctl") def test_drctl_speed(self): - self.execute(UrukulExp, "drctl_speed") - dt = self.dataset_mgr.get("dt") - if dt: + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "drctl_speed") + dt = self.dataset_mgr.get("dt") print(dt) self.assertLess(dt, 5 * us) def test_drhold(self): - self.execute(UrukulExp, "drhold") + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "drhold") def test_drhold_speed(self): - self.execute(UrukulExp, "drhold_speed") - dt = self.dataset_mgr.get("dt") - if dt: + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "drhold_speed") + dt = self.dataset_mgr.get("dt") print(dt) self.assertLess(dt, 5 * us) def test_mask_nu(self): - self.execute(UrukulExp, "mask_nu") + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "mask_nu") def test_mask_nu_speed(self): - self.execute(UrukulExp, "mask_nu_speed") - dt = self.dataset_mgr.get("dt") - if dt: + if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9: + self.execute(UrukulExp, "mask_nu_speed") + dt = self.dataset_mgr.get("dt") print(dt) self.assertLess(dt, 5 * us)