Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
456d7cd
feat: CR gate draft (tested on emulator)
andrea-pasquale Mar 21, 2025
4978af8
refactor: Rename cross-resonance protocol
andrea-pasquale Mar 24, 2025
ad2ff22
feat: Add two-qubit platforms with fixed frequency
andrea-pasquale Apr 4, 2025
8498506
feat: Add cross-resonance amplitude protocol
andrea-pasquale Apr 4, 2025
f4666db
feat: Adding cosinusoid fit to CR amp and duration
andrea-pasquale Apr 7, 2025
ee8fa2a
fix: Remove None two-qubit natives from compiler
andrea-pasquale Apr 7, 2025
df701d0
refactor: Define CR pulse without CNOT native
andrea-pasquale Apr 7, 2025
cc13184
refactor: Remove sequence code duplication
andrea-pasquale Apr 8, 2025
6fae174
refactor: Start using drive_extra
andrea-pasquale Apr 8, 2025
25db4ee
chore: Update qutrits platform
andrea-pasquale Apr 8, 2025
73f0dc6
feat: Compute effective coupling Jeff
andrea-pasquale Apr 14, 2025
04a69dd
feat: Adding echoCR and use parameters from IBM chip
andrea-pasquale Apr 18, 2025
62b7e92
chore: Minor corrections
andrea-pasquale Apr 18, 2025
da7d772
fix: Adjust delays
andrea-pasquale Apr 22, 2025
a8c1f6a
feat: Adding hamiltonian_tomography_cr (no fitting)
andrea-pasquale Apr 22, 2025
4f87e24
refactor: Adding tomographies protocols
andrea-pasquale Apr 22, 2025
0866a8e
feat: Adding preliminary fit to tomographies
andrea-pasquale Apr 22, 2025
e17407e
refactor: Reduce code duplication for CR tomographies
andrea-pasquale Apr 23, 2025
df79db3
refactor: Reduce code duplication for CR protocols
andrea-pasquale Apr 23, 2025
23ebe93
feat: Proper fit for <Z>
andrea-pasquale Apr 23, 2025
89543bc
feat: Implementing correct fitting procedure
andrea-pasquale Apr 24, 2025
bd56db4
feat: Minor fixes and adding calculation of Hamiltonian coefficients
andrea-pasquale Apr 24, 2025
68155f1
feat: Adding phase and compensation pulse as parameters
andrea-pasquale Apr 24, 2025
b122b17
feat: Initial calibration for CNOT
andrea-pasquale Apr 29, 2025
ff9d94c
refactor: Document and simplify tomographies
andrea-pasquale Apr 29, 2025
68a1292
refactor: Document code and add tests
andrea-pasquale Apr 29, 2025
e08cdf5
test: Improve coverage
andrea-pasquale Apr 30, 2025
8bce42c
doc: Documentation for CR experiments
andrea-pasquale Apr 30, 2025
49a6c53
doc: Documentation on Hamiltonian Tomography CR protocols
andrea-pasquale Apr 30, 2025
c3ee3a1
fix: Skip fitting plot if fit fails
andrea-pasquale Jun 13, 2025
41e77fc
fix: Add missing image in doc
andrea-pasquale Jun 24, 2025
30ee79e
fix: Fix issue with pair order
andrea-pasquale Jun 25, 2025
03511f4
fix: Remove amplitude sweep on target
andrea-pasquale Jun 26, 2025
acf2e90
remove VirtualZ in basis changes
Luca-Ben-Herrmann Jul 2, 2025
9fc84bf
new version for emulators parameters.json
lballerio Jan 8, 2026
00ebe07
modifying cr_gate length for working also on qw21q-b chip
lballerio Jan 12, 2026
3f6bdbb
adding bloch vector plot R
lballerio Jan 27, 2026
913e37d
correcting convention for CR drive channel name so the emulator can a…
lballerio Jan 30, 2026
85f9072
make platform compatible with parameter.json
lballerio Jan 30, 2026
fb68595
modified hamiltonian length tomography
lballerio Feb 2, 2026
d3882e3
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
188 changes: 188 additions & 0 deletions doc/source/protocols/cross_resonance/cross_resonance.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
Calibration of CNOT gate using Cross-Resonance
===============================================

It is possible to generate an interaction between two superconducting qubits without requiring
flux tunability, through a mechanism known as Cross Resonance (CR). This mechanism relies only
on microwave drive pulses. Moreover, not using flux lines, results in a reduction of the number
of fridge lines and allows to ignore all problems related to flux noise.

The cross resonance effect was first proposed :cite:p:`CR_First` in and later
independently discovered in :cite:p:`CR_Righetti, CR_Second`.

The CR effect can be showed by starting with the Hamiltonian of a two-qubit system with
a drive term on the first qubit :cite:p:`Manenti:2023zzn`

.. math::

H = b_1^\dagger b_1 \omega_1 + \frac{\alpha_1}{2} b_1^\dagger b_1^\dagger b_1 b_1 +
b_2^\dagger b_2 \omega_2 + \frac{\alpha_2}{2} b_2^\dagger b_2^\dagger b_2 b_2 +
g (b_1 b_2^\dagger + b_1^\dagger b_2) + \Omega(t) (b_1 + b_1^\dagger)

If we are in a dispersive regime (i.e. :math:`|\omega_1 - \omega_2| \gg g`), through a
Schrieffer-Wolff transformation we can obtain the effective Hamiltonian:

.. math::

H_\text{eff} = - \frac{\tilde{\omega_1}}{2} \sigma_1^z - \frac{\tilde{\omega_2}}{2} \sigma_2^z
+ \frac{\zeta}{4} \sigma_1^z \sigma_2^z
+ \Omega(t) \Big[ \sigma_1^x + \nu \sigma_2^x + \mu \sigma_1^z \sigma_2^x\Big]

where :math:`\zeta` is the ZZ coupling, :math:`\nu` is quantum crosstalk factor and :math:`\mu` is the
cross-resonance factor. From the equation above we can see that by driving the first qubit
at the frequency of the second qubit .

By tuning the amplitude and the duration of this drive pulse it is possible to calibrate a
:math:`RZX` rotation to rotate exactly by :math:`- \pi/2`. This is done because starting
from a :math:`ZX_{frac{\pi}{2}}` we can obtain a CNOT gate using single qubit rotations.

.. math::

\text{CNOT} = \text{R}_\text{ZX}(-\pi/2) \text{R}_\text{IX}(\pi/2) \text{R}_\text{ZI}(\pi/2)

In Qibocal we provide protocols to calibrate CR pulses.

Sweeping the duration of the CR pulse
-------------------------------------

In a first experiment we can sweep the duration of the CR pulse and measure both the
target and control qubit. The measurement is performed while preparing the control
qubit in state :math:`\ket{0}` and :math:`\ket{1}`.

Parameters
^^^^^^^^^^

.. autoclass:: qibocal.protocols.two_qubit_interaction.cross_resonance.length.CrossResonanceLengthParameters
:noindex:

Example
^^^^^^^

A possible runcard to launch the experiment could be the following:

.. code-block:: yaml

- id: CR length
operation: cross_resonance_length
parameters:
targets: [[0,1]]
pulse_duration_start: 10
pulse_duration_end: 200
pulse_duration_step: 10
flux_pulse_amplitude: 0.1
nshots: 2000
relaxation_time: 50000


The expected output is the following:

.. image:: length.png

Post-processing
^^^^^^^^^^^^^^^

The probability of the target qubit is fitted in both cases to a dumped cosine functions.
It is possible to extract the effective coupling as

.. math::

\text{J}_\text{eff}/ 2 \pi = \frac{f^{\pi}_\text{Rabi} - f_\text{Rabi}}{2}


where :math:`f^{\pi}_\text{Rabi}` and :math:`f_\text{Rabi}` are the frequencies of the
fitted Rabi oscillations on the target qubit.

Sweeping amplitude of the CR pulse
----------------------------------

Similarly it is possible to sweep the amplitude of the CR pulse and measure both the
target and control qubit.


Parameters
^^^^^^^^^^

.. autoclass:: qibocal.protocols.two_qubit_interaction.cross_resonance.length.CrossResonanceLengthParameters
:noindex:

Example
^^^^^^^

A possible runcard to launch the experiment could be the following:

.. code-block:: yaml

- id: CR amplitude
operation: cross_resonance_amplitude
parameters:
targets: [[0,1]]
max_amp: 0.05
min_amp: 0.01
step_amp: 0.005
pulse_duration: 100
nshots: 2000
relaxation_time: 50000


The expected output is the following:

.. image:: amplitude.png

Post-processing
^^^^^^^^^^^^^^^

The probability of the target qubit is fitted in both cases to a cosine function.

Hamiltonian Tomography measurement
----------------------------------

Although from the two previous experiments it is possible to perform an initial
calibration of the CR gate, by performing a state tomography on the target qubit it is
possible to reconstruct the effective Hamiltonian of the system :cite:p:`CRDrag`:

.. math::

H_\text{eff} = \frac{\nu_\text{ZX}}{2} \text{ZX} + \frac{\nu_\text{ZY}}{2} \text{ZY} +
\frac{\nu_\text{ZZ}}{2} \text{ZZ} + \frac{\nu_\text{IX}}{2} \text{IX} +
\frac{\nu_\text{IY}}{2} \text{IY} + \frac{\nu_\text{IZ}}{2} \text{IZ}

In particular, by sweeping the duration of the CR pulse and measuring the expectation
values of the target qubit :math:`\langle X \rangle`, :math:`\langle Y \rangle` and :math:`\langle Z \rangle`
when the control qubit is prepared in :math:`\ket{0}` and :math:`\ket{1}` we can compute all terms in
the effective Hamiltonian following the procedure in :cite:p:`CRDrag`.

Parameters
^^^^^^^^^^


.. autoclass:: qibocal.protocols.two_qubit_interaction.cross_resonance.hamiltonian_tomography.length.HamiltonianTomographyCRLengthParameters
:noindex:

Example
^^^^^^^

A possible runcard to launch the experiment could be the following:

.. code-block:: yaml

- id: Hamiltonian tomography CR
operation: cross_resonance_amplitude
parameters:
targets: [[0,1]]
nshots: 2000
pulse_amplitude: 0.1
pulse_duration_end: 400
pulse_duration_start: 10
pulse_duration_step: 20


The expected output is the following:

.. image:: tomography_length.png



Requirements
^^^^^^^^^^^^

To run these experiments single qubit gates for both target and control qubit needs
to be calibrated.
Binary file added doc/source/protocols/cross_resonance/length.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions doc/source/protocols/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,5 @@ In this section we introduce the basics of all protocols supported by ``qibocal`
coherence/index
chsh
twpa_calibration/twpa
cross_resonance/cross_resonance
references
62 changes: 62 additions & 0 deletions doc/source/refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -293,3 +293,65 @@ @misc{shin2024inoperandomicrowavescatteringparametercalibrated
primaryClass={quant-ph},
url={https://arxiv.org/abs/2406.03063},
}

@article{CR_First,
title = {Microwave-induced coupling of superconducting qubits},
author = {Paraoanu, G. S.},
journal = {Phys. Rev. B},
volume = {74},
issue = {14},
pages = {140504},
numpages = {4},
year = {2006},
month = {Oct},
publisher = {American Physical Society},
doi = {10.1103/PhysRevB.74.140504},
url = {https://link.aps.org/doi/10.1103/PhysRevB.74.140504}
}

@article{CR_Righetti,
title = {Fully microwave-tunable universal gates in superconducting qubits with linear couplings and fixed transition frequencies},
author = {Rigetti, Chad and Devoret, Michel},
journal = {Phys. Rev. B},
volume = {81},
issue = {13},
pages = {134507},
numpages = {7},
year = {2010},
month = {Apr},
publisher = {American Physical Society},
doi = {10.1103/PhysRevB.81.134507},
url = {https://link.aps.org/doi/10.1103/PhysRevB.81.134507}
}

@article{CR_Second,
author = {Groot, P. and Lisenfeld, Jürgen and Schouten, R. and Ashhab, S. and Lupascu, Adrian and Harmans, Kees and Mooij, Hans},
year = {2010},
month = {08},
pages = {},
title = {Selective darkening of degenerate transitions demonstrated with two
superconducting quantum bits},
volume = {6},
journal = {Nature Physics},
doi = {10.1038/nphys1733}
}

@book{Manenti:2023zzn,
author = "Manenti, Riccardo and Motta, Mario",
title = "{Quantum Information Science}",
isbn = "978-0-19-878748-8",
publisher = "Oxford University Press",
month = "8",
year = "2023"
}

@article{CRDrag,
author = {Li, Boxi and Calarco, Tommaso and Motzoi, Felix},
year = {2024},
month = {07},
pages = {},
title = {Experimental error suppression in Cross-Resonance gates via multi-derivative pulse shaping},
volume = {10},
journal = {npj Quantum Information},
doi = {10.1038/s41534-024-00863-4}
}
75 changes: 75 additions & 0 deletions platforms/qutrits/calibration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"single_qubits": {
"0": {
"resonator": {
"bare_frequency": 0.0,
"dressed_frequency": 0.0,
"depletion_time": 0,
"bare_frequency_amplitude": null
},
"qubit": {
"frequency_01": 5114000000.0,
"frequency_12": 4784000000.0,
"maximum_frequency": 5114000000.0,
"asymmetry": 0.0,
"sweetspot": 0.0,
"flux_coefficients": null
},
"readout": {
"fidelity": 0.0,
"coupling": null,
"effective_temperature": null,
"ground_state": [
0.0,
1.0
],
"excited_state": [
1.0,
0.0
],
"qudits_frequency": {}
},
"t1": null,
"t2": null,
"t2_spin_echo": null,
"rb_fidelity": null
},
"1": {
"resonator": {
"bare_frequency": 0.0,
"dressed_frequency": 0.0,
"depletion_time": 0,
"bare_frequency_amplitude": null
},
"qubit": {
"frequency_01": 4914000000.0,
"frequency_12": 4584000000.0,
"maximum_frequency": 4914000000.0,
"asymmetry": 0.0,
"sweetspot": 0.0,
"flux_coefficients": null
},
"readout": {
"fidelity": 0.0,
"coupling": null,
"effective_temperature": null,
"ground_state": [
0.0,
1.0
],
"excited_state": [
1.0,
0.0
],
"qudits_frequency": {}
},
"t1": null,
"t2": null,
"t2_spin_echo": null,
"rb_fidelity": null
}
},
"two_qubits": {},
"readout_mitigation_matrix": null,
"flux_crosstalk_matrix": null
}
Loading
Loading