Delay

Delay#

Module: iqm.pulse.gates.delay

class iqm.pulse.gates.delay.Delay(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

Applies a delay on the control channels of its locus components.

This operation applies Wait instructions on all the control channels of all its locus components. The duration of all the Waits is the same, and it is given as a parameter for the operation, rounded up to the nearest possible duration the hardware can handle.

Note

We can only guarantee that the delay is at least of the requested duration. Also, when Delay is used in a quantum circuit, the delay between the preceding and following operations is again at least the requested duration, but could be much more depending on the other operations in the circuit. To see why, consider e.g. the circuit [CZ(a, b), Delay(1, a), Delay(10, b), CZ(a, b)] where a and b are qubits. In this case the actual delay between the two CZ gates will be 10 time units rounded up to hardware granularity.

Attributes

symmetric

True iff the implementation is symmetric in its locus components, meaning a permuted locus produces the same Schedule/TimeBox.

id

Unique str identifier, needed for certain caching properties.

sub_implementations

Single-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.

Methods

Parameters:
symmetric: bool = True#

True iff the implementation is symmetric in its locus components, meaning a permuted locus produces the same Schedule/TimeBox. Only meaningful if self.parent.arity != 1, and the locus components are of the same type.

Inheritance

Inheritance diagram of iqm.pulse.gates.delay.Delay