Distributed Architecture for FPGA-based Superconducting Qubit Control
<|reference_start|>Distributed Architecture for FPGA-based Superconducting Qubit Control: Quantum circuits utilizing real time feedback techniques (such as active reset and mid-circuit measurement) are a powerful tool for NISQ-era quantum computing. Such techniques are crucial for implementing error correction protocols, and can reduce the resource requirements of certain quantum algorithms. Realizing these capabilities requires flexible, low-latency classical control. We have developed a custom FPGA-based processor architecture for QubiC, an open source platform for superconducting qubit control. Our architecture is distributed in nature, and consists of a bank of lightweight cores, each configured to control a small (1-3) number of signal generator channels. Each core is capable of executing parameterized control and readout pulses, as well as performing arbitrary control flow based on mid-circuit measurement results. We have also developed a modular compiler stack and domain-specific intermediate representation for programming the processor. Our representation allows users to specify circuits using both gate and pulse-level abstractions, and includes high-level control flow constructs (e.g. if-else blocks and loops). The compiler stack is designed to integrate with quantum software tools and programming languages, such as TrueQ, pyGSTi, and OpenQASM3. In this work, we will detail the design of both the processor and compiler stack, and demonstrate its capabilities with a quantum state teleportation experiment using transmon qubits at the LBNL Advanced Quantum Testbed.<|reference_end|>
@article{fruitwala2024distributed,
    title={Distributed Architecture for FPGA-based Superconducting Qubit Control},
    author={Neelay Fruitwala, Gang Huang, Yilun Xu, Abhi Rajagopala, Akel Hashim,
  Ravi K. Naik, Kasra Nowrouzi, David I. Santiago, Irfan Siddiqi},
    journal={arXiv preprint arXiv:2404.15260},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.15260},
    primaryClass={quant-ph cs.AR}
}