Skip to content

Commit c96ce69

Browse files
committed
need 8mu delay after config spi
1 parent 7ebe7f4 commit c96ce69

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

mlir/include/RTIO/Transforms/ARTIQRuntimeBuilder.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)