FPGA for Quantum Course
Course: FPGA in Quantum Computing with Superconducting Qubits
Institution: ETH Zurich
Department: D-ITET
My position: Lecturer
Level: Undergraduate
Semesters: Spring 2020 (online), Fall 2020, Spring 2021 (in-person), Fall 2021, Spring 2022, Fall 2022, Spring 2023, Fall 2023
Next: Spring 2024
Limit of students: 15
Teaching assistant: 1
I have been teaching FPGA in Quantum Computing with Superconducting Qubits course since Spring 2020, every semester (eight semesters) to the bachelor electrical engineering students at ETH Zurich. I designed the course with a “learning by doing” approach, aimed at enabling students to grasp advanced signal processing and digital system design topics through hands-on experiences and practical application.
Course Objectives
The primary educational objective is to teach FPGA-based signal processing for quantum experiments with superconducting qubits. The course participants learn the implementation techniques of the modules for quantum control, particularly Rabi and Ramsey experiments, fast quantum signal acquisition and state identification, the electronic devices supporting quantum experiments, and FPGA programming. Students implement quantum control and quantum state identification modules using Xilinx Zynq SoC FPGA, Verilog HDL, high-speed ADC and DAC. The course involves weekly practical assignments and a main project. Students apply their theoretical knowledge in mathematics, signal processing and physics while implementing advanced FPGA architectures.
I thoughtfully structured the course into three parts, Introductions, Control, and Measurement, as in the figure below, ensuring a comprehensive approach to teaching FPGA and its utilization in quantum computing. Students learn theoretical and practical concepts about both FPGA and physics every week. The gradual progression of topics allows students to adapt to the complexity of quantum computing and programming FPGA.
Weekly Schedule
Lecture 1: Introduction & Quantum Signal Processing
Lecture 2: Programming Xilinx FPGA
Lecture 3: Introduction to Verilog
Lecture 4: Vivado Simulator and Rabi Measurement
Lecture 5: Using ROM and DAC for Controlling Rabi Measurement
Lecture 6: Using ROM and DAC for Controlling Ramsey Measurement
Lecture7: IQ Demodulation for the Measurement of Quantum States (using Matlab)
Lecture8: IQ Demodulation for the Measurement of Quantum States (using FPGA)
Lecture 9: Advantages of Pipelined Circuit
Lecture 10: FIR filter using FPGA
Lecture 11: Fidelity in Quantum Measurement
Lecture 12: Quantum State Identification using FPGA
Lecture 13: State Tomography and Summary
Lab Assignments
The course involves two types of lab assignments: weekly lab assignments and a main project. Two students make a group for the lab assignments. The students are expected to complete weekly lab assignments during two hours lab sessions every week. Students are guided with detailed step-by-step written instructions. The main project provides freedom to students to realize their ideas.
Main Project
Students are asked to implement a system to control Rabi and Ramsey experiments from scratch by experiencing all the FPGA design flow. They create the Vivado project, add Zynq SoC to the design, and add the accelerators that they implemented in the weekly lab sessions in the system. They write C code for the embedded Arm processor for communicating with the PC and programmable logic, program the FPGA and debug the design using Integrated Logic Analyzer (ILA) and Xilinx SDK. Students present with the oscilloscope that they can generate the expected signals using 125 MSPS DAC output of RedPitaya FPGA. Students can implement their preferred FPGA-PC communication scheme to transfer user parameters and add optional features for more flexible and higher-precision control of quantum experiments.
Using Different Teaching Methods
My Project-based Learning (PBL) approach encourages students to engage in their learning process actively. Quantum-related FPGA projects allow students to work on real-world applications and solve practical problems. Working in teams teaches students how to communicate effectively, share responsibilities, and leverage each other’s strengths. Engaging students in real-world projects and tools boost their motivation to learn and increases their interest in quantum- and FPGA-related topics. I encourage students to use modern tools, such as ChatGPT, for debugging their code and using Online Matlab to have experience with cloud infrastructure. Students learn that FPGA is crucial for solving quantum computing-related engineering problems with practical exercises. This motivates them to know the details of the topics covered in the course.
The link to the course in the course catalog is below. It is one of the Projects and Seminars (P&S) courses in the curriculum. As I work at the Physics Department, the director of Project-based Learning Center, Dr. Michele Magno, michele.magno@pbl.ee.ethz.ch, from D-ITET hosts the course due to procedural reasons. I teach and guide all theory lectures and lab sessions (13 weeks, 3 hours per week).