CCPRX_Composite#
- class iqm.pulse.gates.conditional.CCPRX_Composite(parent, name, locus, calibration_data, builder)#
Bases:
CompositeGateClassically controlled PRX gate.
Applies a PRX gate conditioned on a discriminated readout result obtained in the same segment (active feedback). Applies a PRX gate if the result is 1, and a Wait of equal duration if the result is 0. Uses the default implementation of PRX underneath, so no extra calibration is needed.
Module:
iqm.pulse.gates.conditionalAttributes
These member operations can be calibrated separately from their common calibration by adding
OCalibrationDatanodes for them under theOILCalibrationDatanode of the composite gate.control_delayscontains the times it takes for the classical control signal from each probe line (readout instrument) to become usable for the drive AWG implementing the PRX gate.Names of the member operations used by the composite gate.
idUnique str identifier, needed for certain caching properties.
sub_implementationsSingle-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.
Methods
- Parameters:
parent (QuantumOp)
name (str)
locus (Locus)
calibration_data (OILCalibrationData)
builder (ScheduleBuilder)
- registered_gates: tuple[str, ...] = ('prx',)#
Names of the member operations used by the composite gate. There must be corresponding keys in
builder.op_table.
- parameters: NestedParams = {'control_delays': Parameter(name='', label='Control delays', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.NDARRAY: 2>, element_indices=None)}#
control_delayscontains the times it takes for the classical control signal from each probe line (readout instrument) to become usable for the drive AWG implementing the PRX gate. The delays must be in the same order as the probe lines are listed in the{drive_controller}.awg.feedback_sourcesstation setting.
- _call(angle=3.141592653589793, phase=0.0, *, feedback_qubit, feedback_key)#
Two TimeBoxes that together implement the classically controlled PRX gate.
The first Timebox is for the control signal delay, and the second has a ConditionalInstruction. The delay TimeBox operates only on a virtual channel and is used to block the pulse TimeBox until there has been enough time for the control signal to arrive. The delay is specified by the
control_delaysgate parameter.In normal operation, the boxes can be placed sequentially without causing unnecessary delays. To care of the timing yourself, simply ignore the first TimeBox.
- Parameters:
angle (float) – The PRX rotation angle (rad).
phase (float) – The PRX rotation phase (rad).
feedback_qubit (str) – The qubit that was measured to create the feedback bit.
feedback_key (str) – Identifies the feedback signal if
feedback_qubitwas measured multiple times. The feedback label is thenf"{feedback_qubit}__{feedback_key}". TODO: currently the HW does not support multiple feedback keys per drive channel, so this argument has no effect. The conditional prx will always listen feedback from the labelf"{feedback_qubit}__{FEEDBACK_KEY}". When the HW is improved, the actual key the user inputs should be used.
- Returns:
A TimeBox for the signal delay, and a TimeBox with a ConditionalInstruction inside.
- Return type:
- customizable_gates: tuple[str, ...] | None = ('prx',)#
These member operations can be calibrated separately from their common calibration by adding
OCalibrationDatanodes for them under theOILCalibrationDatanode of the composite gate. Must be a subset ofregistered_gates. By default all member operations are customizable.