Regarding Zotino, we are having a difficult time ramping faster than 20 us with Zotino using for loops without getting underflow errors. As can be seen in the provided code, adding additional slack does not seem to alleviate this problem. We wanted to ask if this is possible or if DMA would be required for this? This is the code we were using:
class ZotinoTestLoopVersion(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("zotino0") #This is the Output Channel 1
self.dac=self.zotino0 #Defines outputchannel_1
@kernel
def run(self):
self.core.reset() #Clears the core
self.dac.init()
delay(1*ms) #Delay
times = self.core.seconds_to_mu(20*us)
data = [0]*100
for i in range(0,99,1):
delay_mu(times)
data[i] = self.dac.voltage_to_mu(i/10)
self.core.break_realtime()
delay(2*s)
for i in range(100):
for i in range(0,99,1):
delay_mu(times)
self.dac.set_dac_mu([data[i]],[7])
delay_mu(times)
self.dac.set_dac_mu([0],[7])