Skip to content

An open-source control library for electrostatically confined spin-qubits developed by HRL Quantum and based on the Quantum Instrumentation Control Kit (QICK).

License

Notifications You must be signed in to change notification settings

HRL-Laboratories/spinqick

Repository files navigation

spinQICK

spinQICK logo

Description

Welcome to spinQICK, an open-source extension to the Quantum Instrumentation Control Kit (QICK) designed to control electrostatically confined solid-state spin-qubits! SpinQICK enables researchers to use low-cost off-the-shelf Xilinx Radio Frequency System-on-Chip (RFSoC) Field Programmable Gate Arrays (FPGAs) to rapidly develop novel application specific experimental hardware and software for controlling spin-qubits.

This package utilizes both the standard QICK API and modified low-level QICK assembly to implement standard measurement and control methods that are unique to electrostatically confined spin-qubit systems. These methods currently accomodate single-spin (Loss-DiVincenzo) qubits and include charge-stability and electrostatic tune-up, initialization and parity readout, single-spin coherent control and characterization (T1, T2*, T2-Echo, Ramsey, All-XY), exchange calibration, and two-qubit gates. In addition to these facilities, this package also provides features for parameter-management, plotting, and demonstrations to help get started with spinQICK.

Hardware

  • ZCU216 RFSoC
  • LMH5401 DC Coupled Differential Amplifiers
  • PMOD level shifter to buffer the trigger pulses for improved stability
  • Precision DC bias (QDevil QDAC, Basel LNHR, etc)
  • Support hardware including DC supplies for amplifiers, control computer, etc.

Software

  • Python 3.10, specific packages can be found in the dev_environment.yml file
  • QICK version 0.2.260 (later versions will be checked for compatibility)
  • Pynq 2.7 bootloader, QICK standard boot can be found here
  • Pyro4 must also be installed on the ZCU216 board, see QICK demo for information on running Pyro server on the RFSoC

Package Structure

All code for the API can be found in src/spinqick with demo notebooks illustrating the use of the API and resources for getting started found in demo_notebooks. The spinQICK API is organized into four folders as follows.

Experiments

High-level experimental code, including the general dot_experiment class inherited by subsequent experiments. Experiments are organized into exchange only (eo_single_qubit) and ld single (ld_single_qubit) and two qubit (ld_2_qubit), electrostatic tune-up (tune_electrostatic), and calibration experiments (system_calibrations). The readout functionality for Pauli-spin blockade can be found in psb_setup, and routines for taking noise using QICK's DSO functionality can be found in measure_noise.

Helper functionality

Inside the helper_function directory is functionality to help manage data files (file_manager), hardware maps (hardware_manager), and plotting (plot_tools), as well as routines for generating common dac pulse shapes (dac_pulses).

Models

The models directory contains PyDantic models for various experimental config types. Using PyDantic allows for efficient type checking of experimental parameters among many other features. To see how to use these models and experimental configs see demo_notebooks\00_getting_started.ipynb.

QICK code

The qick_code directory represents the collection of underlying QICK API code used by experiments. This code is written in the native QICK API or in QICK assembly, and represents the custom functions required for spin-qubit experiments.

Settings

In addition to the above four directories, the settings.py file contains a user-defined pydantic object with directories for data and config files. Default directories are all located in C:/Data/QICK/ path.

Updates

SpinQICK is under active development. As such there may be changes that break existing code built on this package. SpinQICK follows Semantic Versioning, with patches and minor versions being backwards compatible, and major version revisions representing changes that break existing API implementation.

Near-term Updates

Current implementation of the spinQICK API is built on the QICK tProc 1 V4 instruction set. Later revisions will move to tProc 2, released in QICK version 0.2.285.

Authors

Abigail Wessels1, Andrew E. Oriani1

1: HRL Laboratories, LLC, 3011 Malibu Canyon Road, Malibu, California 90265, USA

Acknowledgements

This software was created by HRL under Army Research Office (ARO) Award Number: W911NF‐24‐1‐0020. ARO, as the Federal awarding agency, reserves a royalty‐ free, nonexclusive and irrevocable right to reproduce, publish, or otherwise use this software for Federal purposes, and to authorize others to do so in accordance with 2 CFR 200.315(b). We would like to thank Sho Uemura, Sara Sussman and the QICK team on their continued support in developing this package. We would like to acknowledge the help of Joe Broz, Edwin Acuna, and support of Jason Petta for the creation of this package.

About

An open-source control library for electrostatically confined spin-qubits developed by HRL Quantum and based on the Quantum Instrumentation Control Kit (QICK).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •