Design Automation for Quantum Computing

Giovanni De Micheli
LSI Director and Professor
Mathias Soeken
Postdoctoral Researcher
Quantum Computing
Giulia Meuli
PhD Student
Quantum Computing
PhD project page:
Hierarchical synthesis methods for scalable quantum computing
Bruno Schmitt
PhD Student
Quantum Computing
PhD project page:
Automated Optimization of Quantum Circuits
Fereshte Mozafari
PhD Student
Quantum Computing
PhD project page:
Reversible Logic Synthesis for NISQ-Era Quantum Computers

Quantum computing

At LSI we use techniques known from electronic design automation (EDA) to improve the programming of quantum computers. In particular, we address the problem of quantum compilation, which is the task of running an abstract quantum algorithm on a concrete quantum computing device. A quantum algorithm solves a problem by making use of quantum phenomena such as superposition and entanglement, which enables a speedup over classical solutions (e.g., factorization, search, quantum chemistry, or solving linear equations).
An IBM cryostat wired for a 50 qubit system. Credit: IBM

Quantum algorithms are described in terms of quantum programs written in a quantum programming language (such as ProjectQ, Q#, Qiskit, or PyQuil). In order to run the program on a physical quantum device, the program must be translated a sequence of elementary operations that can be run on the quantum computer. Such a sequence of quantum operations is referred to as quantum circuit. Since today’s quantum computers are very noisy and the decoherence time of qubits is short, it is key to find a small sequence of elementary quantum operations for a given problem. However, in order to cope with the complexity of a high-level quantum program typically several levels of abstractions are required in the translation process. We address problems on several layers of abstraction:

  1. Synthesis: The task of mapping combinational logic into high-level quantum operations. In this step the aim is to meet the qubit requirements of the targeted quantum device.
  2. Optimization: The task of optimizing a quantum circuit. A typical cost metric is to reduce the number of gates. Depending on the targeted quantum device, different gates may have a different cost. If the circuit is technology-dependent, optimization must guarantee not to violate constraints posed by the targeted device.
  3. Mapping: The task of translating a technology-independent quantum circuit into a technology-dependent quantum circuit. The resulting circuit can only use those quantum operations which are supported by the target device and must adhere to possible coupling constraints of qubit pairs.
A schematic of our quantum circuit synthesis framework “lhrs” (M. Soeken, M. Roetteler, N. Wiebe, G. De Micheli, ”LUT-based hierarchical reversible logic synthesis” in TCAD, 2018 (arXiv:1706.02721)

Open source software

Our open source toolkit RevKit contains implementations of reversible synthesis algorithms and design flows both developed at the laboratory as well as many other state-of-the-art algorithms that were proposed in the recent years. RevKit is based on the tweedledum library, which is a header-only C++ library for quantum circuit representation and manipulation. It includes several algorithms for synthesis, optimization, and mapping. The tweedledum library is part of the EPFL logic synthesis libraries.

RevKit is a command line interface which can be accessed as stand-alone executable or by means of a Python interface. The latter has been used to integrate RevKit into the quantum computing framework ProjectQ.