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.experiment import *
|
||||||
from artiq.test.hardware_testbench import ExperimentCase
|
from artiq.test.hardware_testbench import ExperimentCase
|
||||||
|
|
||||||
|
CPLD = "urukul_cpld"
|
||||||
|
|
||||||
|
|
||||||
class UrukulExp(EnvExperiment):
|
class UrukulExp(EnvExperiment):
|
||||||
def build(self, runner):
|
def build(self, runner):
|
||||||
self.setattr_device("core")
|
self.setattr_device("core")
|
||||||
self.dev = self.get_device("urukul_cpld")
|
self.dev = self.get_device(CPLD)
|
||||||
self.runner = runner
|
self.runner = runner
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
@ -73,27 +75,24 @@ class UrukulExp(EnvExperiment):
|
|||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def att_enables(self):
|
def att_enables(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
self.dev.cfg_att_en(0, False)
|
||||||
self.dev.cfg_att_en(0, False)
|
self.dev.cfg_att_en(2, True)
|
||||||
self.dev.cfg_att_en(2, True)
|
self.dev.cfg_att_en(3, True)
|
||||||
self.dev.cfg_att_en(3, True)
|
self.dev.cfg_att_en_all(0b1010)
|
||||||
self.dev.cfg_att_en_all(0b1010)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def att_enable_speed(self):
|
def att_enable_speed(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
n = 10
|
||||||
n = 10
|
t0 = self.core.get_rtio_counter_mu()
|
||||||
t0 = self.core.get_rtio_counter_mu()
|
for i in range(n):
|
||||||
for i in range(n):
|
self.dev.cfg_att_en(1, bool(i & 1))
|
||||||
self.dev.cfg_att_en(1, bool(i & 1))
|
self.set_dataset(
|
||||||
self.set_dataset(
|
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
||||||
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
)
|
||||||
)
|
|
||||||
self.set_dataset("dt", None)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def att(self):
|
def att(self):
|
||||||
@ -165,99 +164,87 @@ class UrukulExp(EnvExperiment):
|
|||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def osk(self):
|
def osk(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
self.dev.cfg_osk(0, False)
|
||||||
self.dev.cfg_osk(0, False)
|
self.dev.cfg_osk(2, True)
|
||||||
self.dev.cfg_osk(2, True)
|
self.dev.cfg_osk(3, True)
|
||||||
self.dev.cfg_osk(3, True)
|
self.dev.cfg_osk_all(0b1010)
|
||||||
self.dev.cfg_osk_all(0b1010)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def osk_speed(self):
|
def osk_speed(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
n = 10
|
||||||
n = 10
|
t0 = self.core.get_rtio_counter_mu()
|
||||||
t0 = self.core.get_rtio_counter_mu()
|
for i in range(n):
|
||||||
for i in range(n):
|
self.dev.cfg_osk(1, bool(i & 1))
|
||||||
self.dev.cfg_osk(1, bool(i & 1))
|
self.set_dataset(
|
||||||
self.set_dataset(
|
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
||||||
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
)
|
||||||
)
|
|
||||||
self.set_dataset("dt", None)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def drctl(self):
|
def drctl(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
self.dev.cfg_drctl(0, False)
|
||||||
self.dev.cfg_drctl(0, False)
|
self.dev.cfg_drctl(1, True)
|
||||||
self.dev.cfg_drctl(1, True)
|
self.dev.cfg_drctl(3, True)
|
||||||
self.dev.cfg_drctl(3, True)
|
self.dev.cfg_drctl_all(0b1010)
|
||||||
self.dev.cfg_drctl_all(0b1010)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def drctl_speed(self):
|
def drctl_speed(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
n = 10
|
||||||
n = 10
|
t0 = self.core.get_rtio_counter_mu()
|
||||||
t0 = self.core.get_rtio_counter_mu()
|
for i in range(n):
|
||||||
for i in range(n):
|
self.dev.cfg_drctl(2, bool(i & 1))
|
||||||
self.dev.cfg_drctl(2, bool(i & 1))
|
self.set_dataset(
|
||||||
self.set_dataset(
|
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
||||||
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
)
|
||||||
)
|
|
||||||
self.set_dataset("dt", None)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def drhold(self):
|
def drhold(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
self.dev.cfg_drhold(0, False)
|
||||||
self.dev.cfg_drhold(0, False)
|
self.dev.cfg_drhold(2, True)
|
||||||
self.dev.cfg_drhold(2, True)
|
self.dev.cfg_drhold(3, True)
|
||||||
self.dev.cfg_drhold(3, True)
|
self.dev.cfg_drhold_all(0b1010)
|
||||||
self.dev.cfg_drhold_all(0b1010)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def drhold_speed(self):
|
def drhold_speed(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
n = 10
|
||||||
n = 10
|
t0 = self.core.get_rtio_counter_mu()
|
||||||
t0 = self.core.get_rtio_counter_mu()
|
for i in range(n):
|
||||||
for i in range(n):
|
self.dev.cfg_drhold(1, bool(i & 1))
|
||||||
self.dev.cfg_drhold(1, bool(i & 1))
|
self.set_dataset(
|
||||||
self.set_dataset(
|
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
||||||
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
)
|
||||||
)
|
|
||||||
self.set_dataset("dt", None)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def mask_nu(self):
|
def mask_nu(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
self.dev.cfg_mask_nu(0, False)
|
||||||
self.dev.cfg_mask_nu(0, False)
|
self.dev.cfg_mask_nu(1, True)
|
||||||
self.dev.cfg_mask_nu(1, True)
|
self.dev.cfg_mask_nu(3, True)
|
||||||
self.dev.cfg_mask_nu(3, True)
|
self.dev.cfg_mask_nu_all(0b1010)
|
||||||
self.dev.cfg_mask_nu_all(0b1010)
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def mask_nu_speed(self):
|
def mask_nu_speed(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
n = 10
|
||||||
n = 10
|
t0 = self.core.get_rtio_counter_mu()
|
||||||
t0 = self.core.get_rtio_counter_mu()
|
for i in range(n):
|
||||||
for i in range(n):
|
self.dev.cfg_mask_nu(2, bool(i & 1))
|
||||||
self.dev.cfg_mask_nu(2, bool(i & 1))
|
self.set_dataset(
|
||||||
self.set_dataset(
|
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
||||||
"dt", self.core.mu_to_seconds(self.core.get_rtio_counter_mu() - t0) / n
|
)
|
||||||
)
|
|
||||||
self.set_dataset("dt", None)
|
|
||||||
|
|
||||||
# Note, cfg_io_update is tested in test_ad9910.py
|
# Note, cfg_io_update is tested in test_ad9910.py
|
||||||
@kernel
|
@kernel
|
||||||
@ -281,14 +268,13 @@ class UrukulExp(EnvExperiment):
|
|||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def cfg_profile(self):
|
def cfg_profile(self):
|
||||||
if self.dev.proto_rev == urukul.STA_PROTO_REV_9:
|
self.core.break_realtime()
|
||||||
self.core.break_realtime()
|
self.dev.init()
|
||||||
self.dev.init()
|
self.dev.set_profile(0, 7)
|
||||||
self.dev.set_profile(0, 7)
|
self.dev.set_profile(1, 0)
|
||||||
self.dev.set_profile(1, 0)
|
self.dev.set_profile(2, 3)
|
||||||
self.dev.set_profile(2, 3)
|
self.dev.set_profile(3, 5)
|
||||||
self.dev.set_profile(3, 5)
|
self.dev.cfg_drctl_all(0b1111)
|
||||||
self.dev.cfg_drctl_all(0b1111)
|
|
||||||
|
|
||||||
|
|
||||||
class UrukulTest(ExperimentCase):
|
class UrukulTest(ExperimentCase):
|
||||||
@ -320,17 +306,18 @@ class UrukulTest(ExperimentCase):
|
|||||||
|
|
||||||
def test_switches_readback(self):
|
def test_switches_readback(self):
|
||||||
self.execute(UrukulExp, "switches_readback")
|
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")
|
sw_set = self.dataset_mgr.get("sw_set")
|
||||||
self.assertEqual(sw_get, sw_set)
|
self.assertEqual(sw_get, sw_set)
|
||||||
|
|
||||||
def test_att_enables(self):
|
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):
|
def test_att_enable_speed(self):
|
||||||
self.execute(UrukulExp, "att_enable_speed")
|
if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9:
|
||||||
dt = self.dataset_mgr.get("dt")
|
self.execute(UrukulExp, "att_enable_speed")
|
||||||
if dt:
|
dt = self.dataset_mgr.get("dt")
|
||||||
print(dt)
|
print(dt)
|
||||||
self.assertLess(dt, 5 * us)
|
self.assertLess(dt, 5 * us)
|
||||||
|
|
||||||
@ -362,42 +349,46 @@ class UrukulTest(ExperimentCase):
|
|||||||
self.assertLess(dt, 5 * us)
|
self.assertLess(dt, 5 * us)
|
||||||
|
|
||||||
def test_osk(self):
|
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):
|
def test_osk_speed(self):
|
||||||
self.execute(UrukulExp, "osk_speed")
|
if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9:
|
||||||
dt = self.dataset_mgr.get("dt")
|
self.execute(UrukulExp, "osk_speed")
|
||||||
if dt:
|
dt = self.dataset_mgr.get("dt")
|
||||||
print(dt)
|
print(dt)
|
||||||
self.assertLess(dt, 5 * us)
|
self.assertLess(dt, 5 * us)
|
||||||
|
|
||||||
def test_drctl(self):
|
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):
|
def test_drctl_speed(self):
|
||||||
self.execute(UrukulExp, "drctl_speed")
|
if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9:
|
||||||
dt = self.dataset_mgr.get("dt")
|
self.execute(UrukulExp, "drctl_speed")
|
||||||
if dt:
|
dt = self.dataset_mgr.get("dt")
|
||||||
print(dt)
|
print(dt)
|
||||||
self.assertLess(dt, 5 * us)
|
self.assertLess(dt, 5 * us)
|
||||||
|
|
||||||
def test_drhold(self):
|
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):
|
def test_drhold_speed(self):
|
||||||
self.execute(UrukulExp, "drhold_speed")
|
if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9:
|
||||||
dt = self.dataset_mgr.get("dt")
|
self.execute(UrukulExp, "drhold_speed")
|
||||||
if dt:
|
dt = self.dataset_mgr.get("dt")
|
||||||
print(dt)
|
print(dt)
|
||||||
self.assertLess(dt, 5 * us)
|
self.assertLess(dt, 5 * us)
|
||||||
|
|
||||||
def test_mask_nu(self):
|
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):
|
def test_mask_nu_speed(self):
|
||||||
self.execute(UrukulExp, "mask_nu_speed")
|
if self.device_mgr.get(CPLD).proto_rev == STA_PROTO_REV_9:
|
||||||
dt = self.dataset_mgr.get("dt")
|
self.execute(UrukulExp, "mask_nu_speed")
|
||||||
if dt:
|
dt = self.dataset_mgr.get("dt")
|
||||||
print(dt)
|
print(dt)
|
||||||
self.assertLess(dt, 5 * us)
|
self.assertLess(dt, 5 * us)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user