qblox_scheduler.backends.qblox.operations.gate_library#

Contains the gate library for the Qblox backend.

Classes#

ConditionalReset

Reset a qubit to the \(|0\rangle\) state.

Module Contents#

class ConditionalReset(qubit_name: str, name: str = 'conditional_reset', **kwargs)[source]#

Bases: qblox_scheduler.operations.conditional_reset.ConditionalReset

Reset a qubit to the \(|0\rangle\) state.

The ConditionalReset gate is a conditional gate that first measures the state of the device element using an ThresholdedAcquisition operation and then performs a \(\pi\) rotation on the condition that the measured state is \(|1\rangle\). If the measured state is in \(|0\rangle\), the hardware will wait the same amount of time the \(\pi\) rotation would’ve taken to ensure that total execution time of ConditionalReset is the same regardless of the measured state.

Note

The total time of the ConditionalReset is the sum of

  1. integration time (<device_element>.measure.integration_time)

  2. acquisition delay (<device_element>.measure.acq_delay)

  3. trigger delay (364ns)

  4. pi-pulse duration (<device_element>.rxy.duration)

  5. idle time (4ns)

Note

Due to current hardware limitations, overlapping conditional resets might not work correctly if multiple triggers are sent within a 364ns window. See sec-qblox-conditional-playback for more information.

Note

ConditionalReset is currently implemented as a subschedule, but can be added to an existing schedule as if it were a gate. See examples below.

Parameters:
  • name (str) – The name of the conditional subschedule, by default “conditional_reset”.

  • qubit_name (str) – The name of the device element to reset to the \(|0\rangle\) state.

  • **kwargs – Additional keyword arguments are passed to Measure. e.g. acq_channel, acq_index, and bin_mode.

Examples

from qblox_scheduler import Schedule
from qblox_scheduler.operations import ConditionalReset

schedule = Schedule("example schedule")
schedule.add(ConditionalReset("q0"))