# qiskit.pulse.instructions¶

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. Call(subroutine[, value_dict, name]) Pulse Call instruction. 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.