Chevron#
In order to implement a two-qubit gate in superconducting quantum computing, it is necessary to bring the two qubits near resonance using specific pulse sequences. The Chevron protocol implemented in Qibocal can be used to calibrate both CZ and iSWAP gates.
The pulse sequence used to calibrate the iSWAP gate consists of a \(\pi\) pulse followed by a flux pulse of varying amplitude and duration, applied to the qubit with the highest frequency in the pair. The initial \(pi\) pulse brings the qubit into the state \(\ket{1}\) while the flux pulse detunes its frequency near resonance with the second qubit. The implementation of the iSWAP gate leverages the avoided crossing between the states \(\ket{10}\) and \(\ket{01}\).
The expected population oscillation pattern follows: .. math:
p_e(t, \delta) = \frac{\Delta^2}{\Delta^2 + 4g^2} + {4g^2}{\Delta^2 + 4g^2}\cos^2\left(\frac{\sqrt{\Delta^2 + 4g^2}}{2}t\right)
where \(\Delta=\omega_1 - \omega_2\), and \(g\) is the coupling constant for the two qubits.
The pulse sequence used to calibrate the CZ gate is the same as the one for the iSWAP gate, with the addition of an initial \(\pi\) pulse applied to the qubit with the lower frequency so that both qubits are initially prepared in the \(\ket{1}\). With this sequence the CZ gate is implemented leveraging the avoided crossing between the states \(\ket{11}\) and \(\ket{20}\).
Parameters#
- class qibocal.protocols.two_qubit_interaction.chevron.chevron.ChevronParameters(amplitude_min: float, amplitude_max: float, amplitude_step: float, duration_min: float, duration_max: float, duration_step: float, dt: Optional[int] = 0, parking: bool = True, native: Literal['CZ', 'iSWAP'] = 'CZ')[source]
CzFluxTime runcard inputs.
- amplitude_min: float
Amplitude minimum.
- amplitude_max: float
Amplitude maximum.
- amplitude_step: float
Amplitude step.
- duration_min: float
Duration minimum.
- duration_max: float
Duration maximum.
- duration_step: float
Duration step.
- parking: bool = True
Wether to park non interacting qubits or not.
- native: Literal['CZ', 'iSWAP'] = 'CZ'
Two qubit interaction to be calibrated.
- hardware_average: bool = False
By default hardware average will be performed.
- nshots: int
Number of executions on hardware.
- relaxation_time: float
Wait time for the qubit to decohere back to the gnd state.
Example#
Below is an example runcard for this experiment.
- id: chevron
operation: chevron
parameters:
amplitude_max: -0.45
amplitude_min: -0.5
amplitude_step: 0.001
duration_max: 60
duration_min: 0
duration_step: 1
The expected output is the following:

The plot represents the probability of measuring qubit 1 in the excited state as a function of the flux pulse parameters. The characteristic shape of the plot, known as a Chevron pattern, appears as a consequence of the interaction of the two qubits through their coupling, leading to population exchange.
Before running the Chevron routine it may be useful to run a Cryoscope experiment in order to correct possible distortions in the flux pulse.