Thank you for the help. I managed to read a state of the whole DDS with the following code:
from artiq.experiment import *
from artiq.coredevice import urukul
class read_dds_channel_status(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("urukul1_cpld")
self.setattr_device("urukul0_ch0")
@rpc(flags={"async"})
def print_status(self, status):
print('value = ', status)
@kernel
def run(self):
self.core.reset()
status1 = self.urukul1_cpld.sta_read()
status2 = urukul.urukul_sta_rf_sw(status1)
delay(10*us)
self.print_status(status2)
Is there any method to read a state of a single channel as well?