System-Agnostic Pulse-Level Control for Quantum Computing with Pulselib

August 11, 2025

The growth of quantum computers from specialized small-scale machines, to noisy intermediate-scale processors, on to fully fault-tolerant machines has largely been driven by increasingly precise pulse-level control.
Both errors and runtimes can be suppressed through appropriate tailoring of the control fields manipulating the target qubits.
Working at the pulse-level unavoidably requires platform-specific knowledge such as qubit type and signal generator capabilities, producing application code tightly coupled to their targets.
The mathematical description of pulse envelopes is fundamentally system-agnostic, hence it is these details that strongly couples software to targets.
This coupling limits the reuse of application between compatible systems.

Existing solutions in tackling this problem suffer from one of two problems.
First, primitives for pulse construction are tailored for a specific qubit platform, as is the case with Pasqal's Pulser, which is intended for use in neutral atom control systems.
Second, the internal pulse representation may assume or exclude certain classes of signal generators.
IBM's (deprecated) package Qiskit Pulse suffers from this problem, utilizing a sample-based pulse representation that is incompatible with parameter-based signal generators such as direct digital synthesizers (DDS).
[In our recent paper](https://arxiv.org/abs/2507.15995), we demonstrate the use of [pulselib](https://doi.org/10.1109/QCE60285.2024.00109) as a system-agnostic intermediate pulse representation.
Pulselib avoids the aforementioned problem by using a graph-based pulse representation.
Common mathematical functions and envelopes are implemented as basic pulse-building primitives, and the graph representation allows for the construction of complex pulses via composition.
We provide examples of pulselib as an IR targeting two pulse generating devices common to trapped ion control systems, the AD9910 DDS and Xilinx Zynq UltraScale+ RFSoC running Sandia's [Octet](https://doi.org/10.11578/dc.20201112.1) firmware.
The two key elements of our demonstration is the definition of template graphs and pipelines mapping graphs to low-level data structures compatible with the target device.
The template graphs encode the capabilities of each device, providing a structure against which pulses may be checked for compatibility.
The pipelines are tailored to target particular pulse generating devices and accept as input arbitrary pulse graphs.
Then, a series of configurable graph checks and graph transformations are performed to determine if the pulse represented by the graph is compatible with the target device.
If these checks pass, the pipeline extracts the necessary pulse data from the graph and emits a customizable linear data structure that is compatible with the target device.
We benchmark our pulselib-based implementation against an existing implementation built atop Qiskit Pulse and a simpler implementation using simple data classes and find that pulselib can provide a larger speedup, especially in highly parametrized applications such as variational quantum algorithms.