Skip to content

Drive Instructions

Inherits from: All drive instruction types inherit from Instruction.

UnmodulatedPulse

Plays a waveform on a specified port.

Inherits from: Instruction

Note

Unmodulated pulses played on the same port have an implicit end-start ordering dependency, i.e. they cannot overlap in time. Any program that conflicts with this should return an error during validation.

Fields

name type description
Envelope Waveform The target waveform to play.
Port Port The port to play the waveform on.
Amplitude Amplitude The amplitude scale-factor multiplied with all envelope waveform values.

ModulatedPulse

Plays a waveform on a specified frame.

Inherits from: Instruction

The supplied envelope \(u(t)\) will be modulated by the carrier frequency \(f\) and phase \(\phi\) defined in the associated frame, as well as the additional offset phase \(\phi_{off}\) with the form:

\(u_{mod}(t)=u(t)e^{i\left(2\pi f t - \left(\phi + \phi_{off}\right)\right)}\)

Note

Modulated pulses played on the same frame have an implicit end-start ordering dependency, i.e. they cannot overlap in time. Any program that conflicts with this should return an error during validation.

Modulated pulses on different frames that share the same port have no implicit dependencies and can overlap in time. The amplitudes of these pulses will be summed together, and users should be careful that the combined amplitudes do not exceed any backend limits.

Fields

name type description
Envelope Waveform The envelope of the waveform to be modulated and played.
Frame Frame The frame to play the waveform on.
PhaseOffset Angle Additional phase offset to apply to the pulse modulation, for example to define rotations around different axes of the Bloch sphere.

Delay

Plays an explicit delay in the program.

Inherits from: Instruction

The specified delay is the minimum value and may increase depending on backend constraints such as sample rate.

Note

Any DC biases will still be held during a Delay instruction.

Fields

name type description
Duration Interval Minimum amount of time to wait.

DcBias

Sets a static DC offset on the specified port.

Inherits from: Instruction

The bias value is held for the remainder of the job, or until another DcBias on the same port is played. The bias is additive in amplitude to all other instructions played on the same port.

It is up to the backend provider what the units of the offset correspond to (e.g. volts, amps).

Note

The backend documentation should provide information on whether this operation has a duration and if so how long it will take to set the bias.

Fields

name type description
Port Port The port on which to set the bias offset.
Amplitude Amplitude The value of the bias to set.

SetFramePhase

Sets the phase of the specified frame to the target value at the present time in the schedule.

Inherits from: Instruction

Fields

name type description
Frame Frame The frame to update.
Phase Angle New phase value the frame will take.

ShiftFramePhase

Adds a phase offset to the specified frame at the present time in the schedule.

Inherits from: Instruction

Fields

name type description
Frame Frame The frame to update.
Phase Angle Additional phase to add to the current frame phase.

DetuneFrame

Updates the frame frequency with the specified detuning for all instructions played in the given scope.

Inherits from: Instruction

Fields

name type description
Frame Frame The frame to update.
Detuning Frequency The frequency to detune the frame by.
Scope Block The scope of instructions for which the frame is detuned.
PhaseReference PhaseReferencePoints Defines the point at which \(t=0\) should be taken for the new frequency's phase.

PhaseReferencePoints

An enumeration defining possible reference points to use as \(t=0\).

  • T0IsJobStart\(t_0\) for the new frame oscillation is set to the start of the program.

  • T0IsNow\(t_0\) for the new frame oscillation is set to the time at which the frame is updated.

FilterOutput

Sets output filters on a port for all instructions in the given scope.

Inherits from: Instruction

Fields

name type description
Port Port The port to apply output filters to. Note: not all ports will support filters.
Scope Block The scope of instructions for which the output filter is set.
IIRFilters IIRFilter[] An array of IIR filters to apply to the output.
FIRFilter FIRFilter The FIR filter to apply to the output.

BlockConditional

Conditionally branches a program of instructions.

Inherits from: Instruction

Fields

name type description
Guard BooleanExpression Determines the branch to take.
TrueCase Block Sub-program to play if the guard is true.
FalseCase Block Sub-program to play if the guard is false.