2
0
mirror of https://github.com/m-labs/artiq.git synced 2025-02-03 06:10:18 +08:00

Update test

This commit is contained in:
newell 2024-12-23 16:19:42 -08:00
parent fd639125d1
commit 9de383bdc2

View File

@ -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)