Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RX90 calibration implementation #1044

Merged
merged 81 commits into from
Dec 12, 2024
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
14f80b4
first test for swittching from pi to pi-half
ElStabilini Nov 19, 2024
ec4b7ad
fixed pi half calibration sequence
ElStabilini Nov 20, 2024
9f63c69
modified classes and methods for running rabi for RX90
ElStabilini Nov 20, 2024
33db217
added option to save duration of RX90 pulse
ElStabilini Nov 21, 2024
32cceda
started modifying rabi ef for using RX90
ElStabilini Nov 21, 2024
7661361
modified pihalf_pulse to rx90 in parameters
ElStabilini Nov 21, 2024
d03f383
Update rabi.rst
ElStabilini Nov 21, 2024
d0c1228
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 21, 2024
e6a2395
set pi calibration as default and change rx90 dtype
ElStabilini Nov 21, 2024
144f468
Saving modified documentation
ElStabilini Nov 21, 2024
c112748
fix ordering error
ElStabilini Nov 21, 2024
f083434
moved all pihalf_pulses in Rabi-Data class
ElStabilini Nov 21, 2024
f52765f
moved all pihalf_pulses in Rabi-Data class
ElStabilini Nov 21, 2024
efcb55a
fixed errors
ElStabilini Nov 21, 2024
66f0b71
Update rabi.rst
ElStabilini Nov 21, 2024
1f16f50
fixed amplitude_sequence and length_sequence inputs
ElStabilini Nov 21, 2024
f8e9021
Sync remote and local branches
ElStabilini Nov 21, 2024
a08cf3c
fixed acquisition error
ElStabilini Nov 21, 2024
0f9ec82
fixed error
ElStabilini Nov 21, 2024
6111a46
fix rabi length signal
ElStabilini Nov 22, 2024
973b318
fix rabi length signal
ElStabilini Nov 22, 2024
3164fd8
align True
ElStabilini Nov 22, 2024
393d039
Update rabi.rst
ElStabilini Nov 22, 2024
1742dc1
Add rabi_amplitude_rx90
ElStabilini Nov 22, 2024
30dd98c
Update rabi.rst
ElStabilini Nov 22, 2024
f521abc
rename pi_half to rx90
ElStabilini Nov 22, 2024
bf70bf6
Sync local and remote branches
ElStabilini Nov 22, 2024
349e312
force ef rabi protocol with pihalf
ElStabilini Nov 22, 2024
07a62b8
Delete rabi_length_signal.yaml
ElStabilini Nov 25, 2024
1873ccb
Update src/qibocal/protocols/rabi/utils.py
ElStabilini Nov 25, 2024
ef2e21a
Update src/qibocal/protocols/rabi/amplitude_frequency.py
ElStabilini Nov 25, 2024
7deade0
Update src/qibocal/protocols/rabi/length_frequency.py
ElStabilini Nov 25, 2024
222539d
Update src/qibocal/protocols/rabi/length_frequency.py
ElStabilini Nov 25, 2024
62230c9
Update src/qibocal/protocols/rabi/length.py
ElStabilini Nov 25, 2024
23ae111
Update src/qibocal/protocols/rabi/ef.py
ElStabilini Nov 25, 2024
4dbcc34
Update src/qibocal/protocols/rabi/length.py
ElStabilini Nov 25, 2024
3427756
Update update.py
ElStabilini Nov 25, 2024
3c676ff
Update protocols.yml
ElStabilini Nov 26, 2024
df453df
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 26, 2024
92e0d71
Update pyproject.toml
ElStabilini Nov 26, 2024
1f9d532
Update length_frequency.py
ElStabilini Nov 26, 2024
31db8b7
Update ef.py
ElStabilini Nov 26, 2024
c579cbb
Update flipping.py
ElStabilini Nov 26, 2024
64e5352
Update pyproject.toml
ElStabilini Nov 26, 2024
3c4e0d9
Update poetry.lock
ElStabilini Nov 27, 2024
04cf0f9
Update flipping.py
ElStabilini Nov 27, 2024
cf73084
modify amplitude_sequence and length_sequence for rx90, add flipping …
ElStabilini Nov 27, 2024
f6bfcaf
Update flipping.py
ElStabilini Nov 27, 2024
454f5b5
Update flipping.py
ElStabilini Nov 27, 2024
47a22b5
Update flipping.py
ElStabilini Nov 27, 2024
96dd44e
Update flipping.py
ElStabilini Nov 27, 2024
07a4bcd
Update flipping.py
ElStabilini Nov 27, 2024
e8cea9a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 27, 2024
4052755
Update flipping.py
ElStabilini Nov 27, 2024
12fedb5
fix FlippingResults and FlippingData class definition
ElStabilini Nov 28, 2024
b58e13a
fix globalbackends error: downgrade qibo
ElStabilini Nov 28, 2024
32308e2
Update flipping.rst
ElStabilini Nov 28, 2024
57904a1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 28, 2024
3b6769d
fix error in _fit method
ElStabilini Nov 28, 2024
29a1296
update documentation for flipping
ElStabilini Nov 28, 2024
022240d
fix tests for rx90
ElStabilini Nov 28, 2024
8b0995d
Update flipping.rst
ElStabilini Nov 28, 2024
98bcf1d
modify plot function in utils to have the correct name of the pulse c…
ElStabilini Nov 29, 2024
17ba606
'sync remote and local branch'
ElStabilini Nov 29, 2024
7b907ae
improve code for printing pulse names on reports
ElStabilini Nov 30, 2024
7660fde
fix compatibility with qibo v0.2.14
ElStabilini Dec 3, 2024
2d8c8f7
fix conflict with pyproject.toml for branch 0.2
ElStabilini Dec 3, 2024
1bac594
fix error in flipping sequence construction for rx90
ElStabilini Dec 3, 2024
af82fec
Merge branch '0.2' into pi_half
ElStabilini Dec 3, 2024
228a02e
Update src/qibocal/protocols/flipping.py
ElStabilini Dec 6, 2024
35c7178
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 6, 2024
8950008
Update src/qibocal/protocols/flipping.py
ElStabilini Dec 6, 2024
b90f887
fix test definition and improve code for flipping with rx90 gate
ElStabilini Dec 6, 2024
23ee280
'sync remote and local fixes'
ElStabilini Dec 6, 2024
01a4d1a
Update utils.py
ElStabilini Dec 6, 2024
c5bb28f
improve documentation for flipping and rabi protocols
ElStabilini Dec 6, 2024
f62bbc3
Update doc/source/protocols/rabi/rabi.rst
ElStabilini Dec 7, 2024
832d0e9
create first RX90 of the sequence always using R.(theta=pi/2)
ElStabilini Dec 11, 2024
05c2886
fix tabs
ElStabilini Dec 11, 2024
478c864
sync remote and local update
ElStabilini Dec 11, 2024
837cc08
Update src/qibocal/protocols/flipping.py
ElStabilini Dec 11, 2024
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
27 changes: 27 additions & 0 deletions doc/source/protocols/rabi/rabi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ Rabi rate is larger than the decay and the pure dephasing rate,

where :math:`\Omega_R` is the Rabi frequency and :math:`\tau` the decay time.

In qibocal we implemented also another version of the Rabi experiment which can be used to tune the amplitude (duration) of the drive pulse in order
to excite the qubit from the ground state up to state :math:`\frac{\ket{0}+\ket{1}}{\sqrt{2}}`.
andrea-pasquale marked this conversation as resolved.
Show resolved Hide resolved

Parameters
^^^^^^^^^^

Expand Down Expand Up @@ -103,6 +106,30 @@ It follows an example runcard and plot for the signal exepriment

.. image:: rabi_signal.png

In all the previous examples we run Rabi experiments for calibrating the amplitude (duration) of the drive pulse
to excite the qubit from the ground state up to state :math:`\ket{1}`.
All the prievious example runcard can be modified to calibrate the amplitude (duration) of the drive pulse
to excite the qubit from the ground state up to state :math:`\frac{\ket{0}+\ket{1}}{\sqrt{2}}` by simply setting the `rx90` parameter to `True`.

In the following we show an example runcard

.. code-block:: yaml


- id: Rabi signal
operation: rabi_amplitude_signal
parameters:
min_amp: 0.2
max_amp: 1.
step_amp: 0.01
pulse_length: 40
nshots: 3000
relaxation_time: 50000
RX90: False
ElStabilini marked this conversation as resolved.
Show resolved Hide resolved

..
_Remember image and modify runcard!

Requirements
^^^^^^^^^^^^
- :ref:`qubit-spectroscopy`
Expand Down
15 changes: 12 additions & 3 deletions src/qibocal/protocols/rabi/amplitude.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ class RabiAmplitudeResults(RabiAmplitudeSignalResults):
class RabiAmplitudeData(Data):
"""RabiAmplitude data acquisition."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
durations: dict[QubitId, float] = field(default_factory=dict)
"""Pulse durations provided by the user."""
data: dict[QubitId, npt.NDArray[RabiAmpType]] = field(default_factory=dict)
Expand Down Expand Up @@ -65,6 +67,7 @@ def _acquisition(
)

data = RabiAmplitudeData(durations=durations)
data.pihalf_pulse = params.rx90

# sweep the parameter
results = platform.execute(
Expand Down Expand Up @@ -128,7 +131,9 @@ def _fit(data: RabiAmplitudeData) -> RabiAmplitudeResults:

except Exception as e:
log.warning(f"Rabi fit failed for qubit {qubit} due to {e}.")
return RabiAmplitudeResults(pi_pulse_amplitudes, durations, fitted_parameters, chi2)
return RabiAmplitudeResults(
pi_pulse_amplitudes, durations, fitted_parameters, data.pihalf_pulse, chi2
)


def _plot(data: RabiAmplitudeData, target: QubitId, fit: RabiAmplitudeResults = None):
Expand All @@ -139,8 +144,12 @@ def _plot(data: RabiAmplitudeData, target: QubitId, fit: RabiAmplitudeResults =
def _update(
results: RabiAmplitudeResults, platform: CalibrationPlatform, target: QubitId
):
update.drive_amplitude(results.amplitude[target], platform, target)
update.drive_duration(results.length[target], platform, target)
update.drive_amplitude(
results.amplitude[target], results.pihalf_pulse, platform, target
)
update.drive_duration(
results.length[target], results.pihalf_pulse, platform, target
)


rabi_amplitude = Routine(_acquisition, _fit, _plot, _update)
Expand Down
5 changes: 5 additions & 0 deletions src/qibocal/protocols/rabi/amplitude_frequency.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ class RabiAmplitudeFrequencyResults(RabiAmplitudeFrequencySignalResults):
class RabiAmplitudeFreqData(RabiAmplitudeFreqSignalData):
"""RabiAmplitudeFreq data acquisition."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""

data: dict[QubitId, npt.NDArray[RabiAmpFreqType]] = field(default_factory=dict)
"""Raw data acquired."""

Expand Down Expand Up @@ -102,6 +105,7 @@ def _acquisition(
)

data = RabiAmplitudeFreqData(durations=durations)
data.pihalf_pulse = params.rx90

results = platform.execute(
[sequence],
Expand Down Expand Up @@ -186,6 +190,7 @@ def _fit(data: RabiAmplitudeFreqData) -> RabiAmplitudeFrequencyResults:
fitted_parameters=fitted_parameters,
frequency=fitted_frequencies,
chi2=chi2,
pihalf_pulse=data.pihalf_pulse,
)


Expand Down
16 changes: 14 additions & 2 deletions src/qibocal/protocols/rabi/amplitude_frequency_signal.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ class RabiAmplitudeFrequencySignalParameters(Parameters):
"""Maximum frequency as an offset."""
step_freq: int
"""Frequency to use as step for the scan."""
rx90: bool = False
"""Calibration of native pi pulse, if true calibrates pi/2 pulse"""
pulse_length: Optional[float] = None
"""RX pulse duration [ns]."""

Expand All @@ -52,6 +54,8 @@ class RabiAmplitudeFrequencySignalResults(RabiAmplitudeSignalResults):

frequency: dict[QubitId, Union[float, list[float]]]
"""Drive frequency for each qubit."""
pihalf_pulse: bool
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and everywhere: I'd suggest adopting rx90 as identifier, to be consistent with the parameter, since it will always contain exactly the same value. This will make more intuitive to understand the connection :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it everywhere. Also changed pulse : bool in rabi/utils.py to rx90: bool

"""Pi or Pi_half calibration"""


RabiAmpFreqSignalType = np.dtype(
Expand All @@ -69,6 +73,8 @@ class RabiAmplitudeFrequencySignalResults(RabiAmplitudeSignalResults):
class RabiAmplitudeFreqSignalData(Data):
"""RabiAmplitudeFreqSignal data acquisition."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
durations: dict[QubitId, float] = field(default_factory=dict)
"""Pulse durations provided by the user."""
data: dict[QubitId, npt.NDArray[RabiAmpFreqSignalType]] = field(
Expand Down Expand Up @@ -127,6 +133,7 @@ def _acquisition(
)

data = RabiAmplitudeFreqSignalData(durations=durations)
data.pihalf_pulse = params.rx90

results = platform.execute(
[sequence],
Expand Down Expand Up @@ -198,6 +205,7 @@ def _fit(data: RabiAmplitudeFreqSignalData) -> RabiAmplitudeFrequencySignalResul
length=data.durations,
fitted_parameters=fitted_parameters,
frequency=fitted_frequencies,
pihalf_pulse=data.pihalf_pulse,
)


Expand Down Expand Up @@ -295,8 +303,12 @@ def _update(
platform: CalibrationPlatform,
target: QubitId,
):
update.drive_duration(results.length[target], platform, target)
update.drive_amplitude(results.amplitude[target], platform, target)
update.drive_duration(
results.length[target], results.pihalf_pulse, platform, target
)
update.drive_amplitude(
results.amplitude[target], results.pihalf_pulse, platform, target
)
update.drive_frequency(results.frequency[target], platform, target)


Expand Down
17 changes: 14 additions & 3 deletions src/qibocal/protocols/rabi/amplitude_signal.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ class RabiAmplitudeSignalParameters(Parameters):
"""Step amplitude."""
pulse_length: Optional[float] = None
"""RX pulse duration [ns]."""
rx90: bool = False
"""Calibration of native pi pulse, if true calibrates pi/2 pulse"""


@dataclass
Expand All @@ -39,6 +41,8 @@ class RabiAmplitudeSignalResults(Results):
"""Drive pulse duration. Same for all qubits."""
fitted_parameters: dict[QubitId, dict[str, float]]
"""Raw fitted parameters."""
pihalf_pulse: bool
"""Pi or Pi_half calibration"""


RabiAmpSignalType = np.dtype(
Expand All @@ -51,6 +55,8 @@ class RabiAmplitudeSignalResults(Results):
class RabiAmplitudeSignalData(Data):
"""RabiAmplitudeSignal data acquisition."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
durations: dict[QubitId, float] = field(default_factory=dict)
"""Pulse durations provided by the user."""
data: dict[QubitId, npt.NDArray[RabiAmpSignalType]] = field(default_factory=dict)
Expand Down Expand Up @@ -80,6 +86,7 @@ def _acquisition(
)

data = RabiAmplitudeSignalData(durations=durations)
data.pihalf_pulse = params.rx90

# sweep the parameter
results = platform.execute(
Expand Down Expand Up @@ -142,7 +149,7 @@ def _fit(data: RabiAmplitudeSignalData) -> RabiAmplitudeSignalResults:
log.warning(f"Rabi fit failed for qubit {qubit} due to {e}.")

return RabiAmplitudeSignalResults(
pi_pulse_amplitudes, data.durations, fitted_parameters
pi_pulse_amplitudes, data.durations, fitted_parameters, data.pihalf_pulse
)


Expand All @@ -158,8 +165,12 @@ def _plot(
def _update(
results: RabiAmplitudeSignalResults, platform: CalibrationPlatform, target: QubitId
):
update.drive_amplitude(results.amplitude[target], platform, target)
update.drive_duration(results.length[target], platform, target)
update.drive_amplitude(
results.amplitude[target], results.pihalf_pulse, platform, target
)
update.drive_duration(
results.length[target], results.pihalf_pulse, platform, target
)


rabi_amplitude_signal = Routine(_acquisition, _fit, _plot, _update)
Expand Down
10 changes: 7 additions & 3 deletions src/qibocal/protocols/rabi/ef.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ def _acquisition(
)

data = RabiAmplitudeEFData(durations=durations)
data.pihalf_pulse = params.pihalf_pulse

# sweep the parameter
# sweep the parameter
results = platform.execute(
[sequence],
Expand Down Expand Up @@ -124,8 +124,12 @@ def _update(
results: RabiAmplitudeEFResults, platform: CalibrationPlatform, target: QubitId
):
"""Update RX2 amplitude_signal"""
update.drive_12_amplitude(results.amplitude[target], platform, target)
update.drive_12_duration(results.length[target], platform, target)
update.drive_12_amplitude(
results.amplitude[target], results.pihalf_pulse, platform, target
ElStabilini marked this conversation as resolved.
Show resolved Hide resolved
)
update.drive_12_duration(
results.length[target], results.pihalf_pulse, platform, target
)


rabi_amplitude_ef = Routine(_acquisition, amplitude_signal._fit, _plot, _update)
Expand Down
17 changes: 14 additions & 3 deletions src/qibocal/protocols/rabi/length.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ class RabiLengthParameters(Parameters):
"""Step pi pulse duration [ns]."""
pulse_amplitude: Optional[float] = None
"""Pi pulse amplitude. Same for all qubits."""
pihalf_pulse: bool = False
"""Calibration of native pi pulse, if true calibrates pi/2 pulse"""
interpolated_sweeper: bool = False
"""Use real-time interpolation if supported by instruments."""

Expand All @@ -39,6 +41,8 @@ class RabiLengthParameters(Parameters):
class RabiLengthResults(RabiLengthSignalResults):
"""RabiLength outputs."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
chi2: dict[QubitId, list[float]] = field(default_factory=dict)


Expand Down Expand Up @@ -87,6 +91,7 @@ def _acquisition(
)

data = RabiLengthData(amplitudes=amplitudes)
data.pihalf_pulse = params.rx90

# execute the sweep
results = platform.execute(
Expand Down Expand Up @@ -155,12 +160,18 @@ def _fit(data: RabiLengthData) -> RabiLengthResults:
except Exception as e:
log.warning(f"Rabi fit failed for qubit {qubit} due to {e}.")

return RabiLengthResults(durations, amplitudes, fitted_parameters, chi2)
return RabiLengthResults(
durations, amplitudes, fitted_parameters, data.pihalf_pulse, chi2
)


def _update(results: RabiLengthResults, platform: CalibrationPlatform, target: QubitId):
update.drive_duration(results.length[target], platform, target)
update.drive_amplitude(results.amplitude[target], platform, target)
update.drive_duration(
results.length[target], results.pihalf_pulse, platform, target
)
update.drive_amplitude(
results.amplitude[target], results.pihalf_pulse, platform, target
)


def _plot(data: RabiLengthData, fit: RabiLengthResults, target: QubitId):
Expand Down
6 changes: 6 additions & 0 deletions src/qibocal/protocols/rabi/length_frequency.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ class RabiLengthFrequencyParameters(RabiLengthFrequencySignalParameters):
class RabiLengthFrequencyResults(RabiLengthFrequencySignalResults):
"""RabiLengthFrequency outputs."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
chi2: dict[QubitId, list[float]] = field(default_factory=dict)


Expand All @@ -51,6 +53,9 @@ class RabiLengthFrequencyResults(RabiLengthFrequencySignalResults):
class RabiLengthFreqData(RabiLengthFreqSignalData):
"""RabiLengthFreq data acquisition."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""

data: dict[QubitId, npt.NDArray[RabiLenFreqType]] = field(default_factory=dict)
"""Raw data acquired."""

Expand Down Expand Up @@ -110,6 +115,7 @@ def _acquisition(
)

data = RabiLengthFreqData(amplitudes=amplitudes)
data.pihalf_pulse = params.rx90

results = platform.execute(
[sequence],
Expand Down
16 changes: 14 additions & 2 deletions src/qibocal/protocols/rabi/length_frequency_signal.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ class RabiLengthFrequencySignalParameters(Parameters):
"""Frequency to use as step for the scan."""
pulse_amplitude: Optional[float] = None
"""Pi pulse amplitude. Same for all qubits."""
rx90: bool = False
"""Calibration of native pi pulse, if true calibrates pi/2 pulse"""
interpolated_sweeper: bool = False
"""Use real-time interpolation if supported by instruments."""

Expand All @@ -47,6 +49,8 @@ class RabiLengthFrequencySignalParameters(Parameters):
class RabiLengthFrequencySignalResults(RabiLengthSignalResults):
"""RabiLengthFrequency outputs."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
frequency: dict[QubitId, Union[float, list[float]]]
"""Drive frequency for each qubit."""

Expand All @@ -66,6 +70,8 @@ class RabiLengthFrequencySignalResults(RabiLengthSignalResults):
class RabiLengthFreqSignalData(Data):
"""RabiLengthFreqSignal data acquisition."""

pihalf_pulse: bool
"""Pi or Pi_half calibration"""
amplitudes: dict[QubitId, float] = field(default_factory=dict)
"""Pulse amplitudes provided by the user."""
data: dict[QubitId, npt.NDArray[RabiLenFreqSignalType]] = field(
Expand Down Expand Up @@ -137,6 +143,7 @@ def _acquisition(
)

data = RabiLengthFreqSignalData(amplitudes=amplitudes)
data.pihalf_pulse = params.rx90

results = platform.execute(
[sequence],
Expand Down Expand Up @@ -207,6 +214,7 @@ def _fit(data: RabiLengthFreqSignalData) -> RabiLengthFrequencySignalResults:
amplitude=data.amplitudes,
fitted_parameters=fitted_parameters,
frequency=fitted_frequencies,
pihalf_pulse=data.pihalf_pulse,
)


Expand Down Expand Up @@ -305,8 +313,12 @@ def _update(
platform: CalibrationPlatform,
target: QubitId,
):
update.drive_amplitude(results.amplitude[target], platform, target)
update.drive_duration(results.length[target], platform, target)
update.drive_amplitude(
results.amplitude[target], results.pihalf_pulse, platform, target
)
update.drive_duration(
results.length[target], results.pihalf_pulse, platform, target
)
update.drive_frequency(results.frequency[target], platform, target)


Expand Down
Loading
Loading