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()

shfqa.start_continuous_sw_trigger()

Issues a specified number of software triggers.

max_qubits_per_channel()

shfqa.max_qubits_per_channel()

Maximum number of supported qubits per channel.

qachannel

shfqa.qachannels[n]…

configure_channel()

...configure_channel()

Configures the RF input and output of a specified channel.

generator

shfqa.qachannels[n].generator…

enable_sequencer()

...enable_sequencer()

Starts the sequencer of a specific channel.

...wait_done()

Wait until the generator execution is finished.

load_sequencer_program()

...load_sequencer_program()

Compiles and loads a program to a specified sequencer.

write_to_waveform_memory()

...write_to_waveform_memory()

Writes pulses to the waveform memory.

...read_from_waveform_memory()

Read pulses from the waveform memory.

configure_sequencer_triggering()

...configure_sequencer_triggering()

Configure the triggering of a specified sequencer.

readout

shfqa.qachannels[n].readout…

configure_result_logger_for_readout()

...configure_result_logger()

Configures the result logger for readout mode.

enable_result_logger(mode=”readout”)

...run()

Reset and enable the result logger.

...stop()

Stop the result logger.

...wait_done()

Wait until readout is finished.

get_result_logger_data(mode=”readout”)

...read()

Waits until the logger finished recording and returns the measured data.

configure_weighted_integration()

...write_integration_weights()

Configures the weighted integration.

...read_integration_weights()

Read integration weights from the waveform memory.

spectroscopy

shfqa.qachannels[n].spectroscopy…

configure_result_logger_for_spectroscopy()

...configure_result_logger()

Configures the result logger for spectroscopy mode.

enable_result_logger(mode=”spectroscopy”)

...run()

Reset and enable the result logger.

...stop()

Stop the result logger.

...wait_done()

Wait until spectroscopy is finished.

get_result_logger_data(mode=”spectroscopy”)

...read()

Waits until the logger finished recording and returns the measured data.

scope

shfqa.scopes[0]…

configure_scope()

...configure()

Configures the scope for a measurement.

...run()

Run the scope recording.

...stop()

Stop the scope recording.

...wait_done()

Wait until the Scope recording is finished.

get_scope_data()

...read()

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.