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:
parent
fd639125d1
commit
9de383bdc2
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user