The instruction module holds the various Instruction s which are supported by Qiskit Pulse. Instructions have operands, which typically include at least one Channel specifying where the instruction will be applied.

Every instruction has a duration, whether explicitly included as an operand or implicitly defined. For instance, a ShiftPhase instruction can be instantiated with operands phase and channel, for some float phase and a Channel channel:

ShiftPhase(phase, channel)

The duration of this instruction is implicitly zero. On the other hand, the Delay instruction takes an explicit duration:

Delay(duration, channel)

An instruction can be added to a Schedule, which is a sequence of scheduled Pulse Instruction s over many channels. Instruction s and Schedule s implement the same interface.

Acquire(duration, channel[, mem_slot, …])

The Acquire instruction is used to trigger the ADC associated with a particular qubit; e.g.

Delay(duration, channel[, name])

A blocking instruction with no other effect.

Play(pulse, channel[, name])

This instruction is responsible for applying a pulse on a channel.

SetFrequency(frequency, channel[, name])

Set the channel frequency.

ShiftFrequency(frequency, channel[, name])

Shift the channel frequency away from the current frequency.

SetPhase(phase, channel[, name])

The set phase instruction sets the phase of the proceeding pulses on that channel to phase radians.

ShiftPhase(phase, channel[, name])

The shift phase instruction updates the modulation phase of proceeding pulses played on the same Channel.

Snapshot(label[, snapshot_type, name])

An instruction targeted for simulators, to capture a moment in the simulation.

Abstract Classes

Instruction(operands, duration, channels[, name])

The smallest schedulable unit: a single instruction.