SHFQA#
The Zurich Instruments SHFQA is our second generation quantum analyzer, designed to readout superconducting and spin qubits. It integrates frequency upconversion to 8.5 GHz, and up to 4 readout channels that can faithfully discriminate up to 16 qubits, 8 qutrits or 5 ququads.
Please refer to the user manual for an in-depth explanation of all features.
Like every device the device specific settings and data is organized in a path like structure called the node tree. zhinst-toolkit provides a pythonic way of interacting with this node tree. For more information about all functionalities and usage of the node tree in toolkit refer to the dedicated section.
The package zhinst-utils
provided by Zurich Instruments offers a
collection of helper functions to ease the use of the SHFQA among other devices.
Toolkit embeds these functions inside the nodetree. The following table shows
the equivalent functions in zhinst-toolkit.
zhinst-utils |
zhinst-toolkit |
info |
---|---|---|
start_continuous_sw_trigger() |
Issues a specified number of software triggers. |
|
max_qubits_per_channel() |
Maximum number of supported qubits per channel. |
|
qachannel |
shfqa.qachannels[n]… |
|
configure_channel() |
Configures the RF input and output of a specified channel. |
|
generator |
shfqa.qachannels[n].generator… |
|
enable_sequencer() |
|
Starts the sequencer of a specific channel. |
|
Wait until the generator execution is finished. |
|
load_sequencer_program() |
|
Compiles and loads a program to a specified sequencer. |
write_to_waveform_memory() |
|
Writes pulses to the waveform memory. |
|
Read pulses from the waveform memory. |
|
configure_sequencer_triggering() |
|
Configure the triggering of a specified sequencer. |
readout |
shfqa.qachannels[n].readout… |
|
configure_result_logger_for_readout() |
Configures the result logger for readout mode. |
|
enable_result_logger(mode=”readout”) |
Reset and enable the result logger. |
|
Stop the result logger. |
||
Wait until readout is finished. |
||
get_result_logger_data(mode=”readout”) |
Waits until the logger finished recording and returns the measured data. |
|
configure_weighted_integration() |
Configures the weighted integration. |
|
Read integration weights from the waveform memory. |
||
spectroscopy |
shfqa.qachannels[n].spectroscopy… |
|
configure_result_logger_for_spectroscopy() |
Configures the result logger for spectroscopy mode. |
|
enable_result_logger(mode=”spectroscopy”) |
Reset and enable the result logger. |
|
Stop the result logger. |
||
Wait until spectroscopy is finished. |
||
get_result_logger_data(mode=”spectroscopy”) |
Waits until the logger finished recording and returns the measured data. |
|
scope |
shfqa.scopes[0]… |
|
configure_scope() |
Configures the scope for a measurement. |
|
Run the scope recording. |
||
Stop the scope recording. |
||
Wait until the Scope recording is finished. |
||
get_scope_data() |
Read out the recorded data from the scope. |
The following examples give a brief overview of how the SHFQA can be used in zhinst-toolkit.
- Qubit readout measurements
- Measuring qubit readout weights
- SHFQA Sweeper
- Multistate discrimination measurements
- Configure channel inputs and outputs
- Trigger settings
- Define simulated multistate signals
- Upload simulated waveforms to the device
- Program the Sequencer
- Measure the reference traces
- Define the Qudit Settings
- Plot the integration weights vectors
- Configure the qudit settings to the device
- Measure the integration results
- Measure the discrimination results for each qudit
- Calculate assignment fidelity matrix