gate_library ============ .. py:module:: quantify_scheduler.backends.qblox.operations.gate_library .. autoapi-nested-parse:: Contains the gate library for the Qblox backend. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: quantify_scheduler.backends.qblox.operations.gate_library.ConditionalReset .. py:class:: ConditionalReset(qubit_name: str, name: str = 'conditional_reset', **kwargs) Bases: :py:obj:`quantify_scheduler.schedules.schedule.Schedule` Reset a qubit to the :math:`|0\rangle` state. The :class:`~quantify_scheduler.backends.qblox.operations.gate_library.ConditionalReset` gate is a conditional gate that first measures the state of the qubit using an :class:`~quantify_scheduler.operations.acquisition_library.ThresholdedAcquisition` operation and then performs a :math:`\pi` rotation on the condition that the measured state is :math:`|1\rangle`. If the measured state is in :math:`|0\rangle`, the hardware will wait the same amount of time the :math:`\pi` rotation would've taken to ensure that total execution time of :class:`~quantify_scheduler.backends.qblox.operations.gate_library.ConditionalReset` is the same regardless of the measured state. .. note:: The total time of the the ConditionalReset is the sum of 1) integration time (.measure.integration_time) 2) acquisition delay (.measure.acq_delay) 3) trigger delay (364ns) 4) pi-pulse duration (.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 :ref:`sec-qblox-conditional-playback` for more information. .. note:: :class:`~quantify_scheduler.backends.qblox.operations.gate_library.ConditionalReset` is currently implemented as a subschedule, but can be added to an existing schedule as if it were a gate. See examples below. :param name: The name of the conditional subschedule, by default "conditional_reset". :type name: str :param qubit_name: The name of the qubit to reset to the :math:`|0\rangle` state. :type qubit_name: str :param \*\*kwargs: Additional keyword arguments are passed to :class:`~quantify_scheduler.operations.gate_library.Measure`. e.g. ``acq_channel``, ``acq_index``, and ``bin_mode``. .. rubric:: Examples .. admonition:: Examples .. jupyter-execute:: :hide-output: from quantify_scheduler.backends.qblox.operations.gate_library import ConditionalReset from quantify_scheduler.schedules.schedule import Schedule schedule = Schedule("example schedule") schedule.add(ConditionalReset("q0"))