@@ -349,6 +349,7 @@ class ARTIQRuntimeBuilder {
349349 configSpi (spiBase, cs, constI32 (ARTIQHardwareConfig::spiLen8),
350350 constI32 (ARTIQHardwareConfig::spiDiv),
351351 constI32 (ARTIQHardwareConfig::spiFlagsKeepCS));
352+ delayMu (constI64 (ARTIQHardwareConfig::refPeriodMu));
352353 rtioOutput (spiBase, constI32 (ARTIQHardwareConfig::profile7Instruction));
353354 // Wait for SPI transmission to complete
354355 waitForSpi (ARTIQHardwareConfig::spiLen8, ARTIQHardwareConfig::spiDiv);
@@ -358,6 +359,7 @@ class ARTIQRuntimeBuilder {
358359 configSpi (spiBase, cs, constI32 (ARTIQHardwareConfig::spiLen32),
359360 constI32 (ARTIQHardwareConfig::spiDiv),
360361 constI32 (ARTIQHardwareConfig::spiFlagsKeepCS));
362+ delayMu (constI64 (ARTIQHardwareConfig::refPeriodMu));
361363 Value asfScale = constF64 (static_cast <double >(ARTIQHardwareConfig::maxAmplitude));
362364 Value asfDouble = builder.create <arith::MulFOp>(getLoc (), amplitude, asfScale);
363365 Value asfRounded = builder.create <math::RoundOp>(getLoc (), asfDouble);
@@ -372,6 +374,7 @@ class ARTIQRuntimeBuilder {
372374 configSpi (spiBase, cs, constI32 (ARTIQHardwareConfig::spiLen32),
373375 constI32 (ARTIQHardwareConfig::spiDiv),
374376 constI32 (ARTIQHardwareConfig::spiFlagsReleaseCS));
377+ delayMu (constI64 (ARTIQHardwareConfig::refPeriodMu));
375378 rtioOutput (spiBase, ftw);
376379 // Wait for SPI transmission to complete
377380 waitForSpi (ARTIQHardwareConfig::spiLen32, ARTIQHardwareConfig::spiDiv);
0 commit comments