Shelved_Measure_CustomWaveforms#

class iqm.pulse.gates.measure.Shelved_Measure_CustomWaveforms(parent, name, locus, calibration_data, builder)#

Bases: Measure_CustomWaveforms

Base class for shelved readout.

Shelved readout applies a prx_12(pi) gate before and after a standard dispersive readout on each qubit measured. The first prx_12(pi) swaps the amplitudes of the |1> and |2> states, and the second one swaps them back after the measurement has (roughtly) collapsed the state. If the discriminator of the readout is calibrated such that the |0> state is on one side and the |1> and |2> states are on the other, the end result is equivalent to the standard readout operation but with the advantage that the population in the |2> state is less susceptible to \(T_1\) decay during the readout than the population in the |1> state.

Note

Mixed implementation multiplexing is not supported.

Module: iqm.pulse.gates.measure

Attributes

dependent_waves

If set True, the Q channel waveform is considered to depend on the I channel's waveform so that they share the waveform parameters, (e.g. a DRAG PRX implementation).

wave_i

Waveform for the I channel.

wave_q

Waveform for the Q channel.

Methods

probe_timebox

Returns a "naked" probe timebox that supports convenient multiplexing through MultiplexedProbeTimeBox.__add__.

Parameters:
dependent_waves: bool = True#

If set True, the Q channel waveform is considered to depend on the I channel’s waveform so that they share the waveform parameters, (e.g. a DRAG PRX implementation). If not provided, will be initialised as True.

probe_timebox(key='', feedback_key='', do_acquisition=True, _skip_override=False)#

Returns a “naked” probe timebox that supports convenient multiplexing through MultiplexedProbeTimeBox.__add__.

This method can be used if the user wants to control the multiplexing explicitly. With two MultiplexedProbeTimeBox``es ``A and B the result A + B has all the ReadoutTrigger instructions on each probe channel of A and B multiplexed together and played simultaneously.

Parameters:
  • key (str) – The readout results generated on this trigger will be assigned to f"{qubit}__{key}", where qubit goes over the component names in self.locus. If empty, the key “readout.result” will be used to maintain backwards compatibility.

  • feedback_key (str) – The signals generated by this measure operation are routed using this key for fast feedback purposes. See __call__().

  • do_acquisition (bool) – if False, no acquisitions are added.

  • _skip_override (bool) –

Returns:

MultiplexedProbeTimeBox containing the ReadoutTrigger instruction.

Return type:

TimeBox

_call(key='', feedback_key='')#

Returns a TimeBox containing the multiplexed simultaneous measurement.

If len(self.locus) == 1, the TimeBox contains the measurement for just that component, otherwise the measurements of components that belong to the same probeline are multiplexed together.

The returned TimeBox instances behave like any other TimeBox in scheduling and circuit generation. With measurement TimeBoxes A and B the result A + B first plays the ReadoutTrigger instructions of A and only then those of B in each probe channel. If the multiplexing features of MultiplexedProbeTimeBox are needed, the method probe_timebox() can be used.

In scheduling, the returned TimeBox blocks the locus components and the probe lines they are associated with.

Parameters:
  • key (str) – Readout results generated on this trigger will be assigned to the acquisition labels f"{qubit}__{key}", where qubit goes over the component names in self.locus. If empty, the key "readout.result" will be used to maintain backwards compatibility.

  • feedback_key (str) – If the readout mode is “threshold”, the results generated by this measure operation are routed using the label f"{qubit}__{feedback_key}" for fast feedback purposes. The signals are picked up by ConditionalInstruction`s that have the same label. The default value `””`` means the signal is not routed anywhere. TODO: currently the HW does not support multiple feedback keys per drive channel, so the actual key used will be FEEDBACK_KEY whenever any non-empty key is inputted. When the HW is improved, the actual key the user inputs should be passed.

Returns:

TimeBox containing the ReadoutTrigger instruction.

Return type:

TimeBox