FPGA-Accelerated Sub-Microsecond Union-Find Decoding for Real-Time Surface-Code Quantum Memory
Authors/Creators
Description
FPGA-Accelerated Sub-Microsecond Union-Find Decoding for Real-Time Surface-Code Quantum Memory
Architecture manuscript. Latency, power, and resource figures are design estimates unless otherwise marked as measured. Related FPGA Union-Find implementations (Helios / Collision Clustering) are cited for comparison.
Abstract
Fault-tolerant quantum computation requires continuous decoding of stabilizer syndromes within cycle times that, for superconducting processors, are often 200 ns–1 μs. Host-processor decoders are subject to operating-system jitter, DMA overhead, and memory-hierarchy latency, which make deterministic sub-microsecond service difficult. This paper describes a fully pipelined FPGA architecture for a Union-Find decoder aimed at surface-code quantum memory. The pipeline integrates Aurora-based syndrome acquisition, streaming defect extraction, a path-halving Union-Find engine with hazard forwarding, localized peeling, and dual-port Pauli-frame updates. All latency-critical state is on-chip (BRAM, UltraRAM, distributed RAM). At a target clock of 400 MHz the design estimate for end-to-end latency is 170–390 ns below threshold, with a conservative worst-case bound near 500 ns—inside a 1 μs cycle. Memory for a decoding window scales as O(d³) with the space-time graph, not as O(d³) measurements per cycle. Power is estimated at 3–6 W per logical patch at the FPGA, which remains at room temperature. The contribution is a single deterministic pipeline that does not require a host CPU in the inner loop. It is an architecture and resource plan; it does not replace measured implementations such as Helios.
Keywords: surface code; quantum error correction; Union-Find decoder; FPGA; real-time decoding; Pauli frame; clock gating.
1. Introduction
Surface-code fault tolerance proceeds by repeated stabilizer measurement and classical decoding of the syndrome stream [1], [9], [10]. Superconducting cycle times commonly fall in T_cycle ~ 200 ns–1 μs [13]. Software decoders on CPUs or GPUs introduce scheduling jitter, DMA cost, cache misses, and synchronization [14]–[16]. Minimum-weight perfect matching (MWPM) is accurate but worst-case cubic in the number of defects and heavy for large distance [17], [18]. The Union-Find decoder of Delfosse and Nickerson is almost-linear and close to MWPM in accuracy, which makes it a natural hardware target [3].
FPGA and ASIC decoders have already shown that real-time surface-code decoding is possible. Das et al. gave a Union-Find micro-architecture; Liyanage et al. (Helios) implemented distributed Union-Find on a VCU129 up to d = 21 with mean times of order 10 ns per round under phenomenological noise, and a resource-optimized d = 51 point near 544 ns per round [14], [15]. Collision Clustering, another Union-Find variant, has been mapped to FPGA and ASIC with sub-microsecond times at large patch size [16]. The present manuscript specifies a single-tile, fully streaming pipeline—acquisition through Pauli frame—with explicit memory equations, banked Find ports, path-halving (not recursive compression), clock-enable power control, and a latency budget written against T_cycle = 1 μs. It is intended as a self-contained hardware architecture that can be implemented or compared against those measured designs.
2. System Architecture
The decoder is a fixed-depth pipeline. Stages are registered and advance on the same clock. After fill, a new syndrome frame can be accepted every cycle from the control layer; variable work inside Union-Find is bounded by a worst-case iteration budget, not by a host thread. Stages:
• Syndrome acquisition and deserialization (Aurora 64B/66B over GTY).
• Defect extraction unit (DEU): frame-to-frame XOR and sparse packing.
• Pipelined Union-Find engine: growth, union, path-halving find, boundary test.
• Localized peeling of cluster spanning forests.
• Dual-port Pauli-frame memory toward the quantum controller.
No stage waits on a later stage. No latency-critical structure lives in DRAM or on a host.
3. Syndrome Acquisition and Deserialization
Stabilizer outcomes arrive serialized on multi-gigabit links. The link layer is Aurora 64B/66B, a low-overhead framing protocol with about 3% encoding cost, AXI4-Stream user ports, and support for GTY/GTYP/GTM on UltraScale+ and Versal [7]. The physical layer uses GTY transceivers with channel bonding. The receiver aligns the 64B/66B stream, descrambles, strips idles and control words, and deserializes a parallel syndrome frame whose width matches the stabilizer schedule. Aurora framing markers hold alignment; a CRC flags link errors. An elastic FIFO absorbs residual clock-domain difference. The deserializer is intended to emit one frame per T_cycle without a deep buffer.
4. Streaming Defect Extraction Unit
Decoding uses the syndrome change, not the raw bit [2], [11]:
d_k(t) = s_k(t) XOR s_k(t−1).
A one in d_k(t) is a space-time defect, an endpoint of an error chain in the decoding graph [11]. The DEU holds the previous frame in a register file, XORs all stabilizers in parallel, priority-encodes a sparse defect list, and pushes it to a FIFO. Below threshold the defect density is low and FIFO occupancy stays bounded [1], [11]. Boundary-adjacent stabilizers are tagged so cluster growth can terminate on the code boundary.
5. Pipelined Union-Find Engine
5.1 Cluster growth
The scheduler follows Delfosse–Nickerson [3]. Each defect starts as its own cluster. Clusters grow by taking half-edges, then neighboring edges, in the parity-check (space-time) graph. Meeting clusters merge. Growth stops when every cluster is even or touches a boundary. Growth and merge requests are issued at a fixed issue rate into the disjoint-set pipeline.
5.2 Disjoint-set representation
State is a parent array and a rank array. The primitives are Find(v) and Union(u, v). Weighted union keeps height logarithmic; path reduction keeps amortized cost nearly constant [4]. Together they underwrite the almost-linear sequential bound [3], [4].
5.3 Path-halving find
Recursive full compression has unbounded depth and is a poor FPGA citizen. The pipeline uses path halving: parent[v] ← parent[parent[v]]. This is a standard one-pass reduction with the same practical amortized cost [4]. Each iteration is a constant number of memory operations and maps to a fixed pipeline. Find ends when a root is reached or a bound on hops is hit (the bound is part of the worst-case latency contract).
5.4 Hazards and forwarding
Overlapping Union and Find on the same node are read-after-write hazards [19]. A small hazard unit stalls a fixed number of cycles or forwards a newly written parent past BRAM read latency. The unit operates on a bounded register set and does not make latency data-dependent beyond that fixed stall.
5.5 Localized peeling
After a cluster is valid, peeling walks its spanning forest and emits a correction chain that matches the defects in that cluster [3]. Peeling is local, so it can start on finished clusters while other clusters still grow. Edges from peeling become Pauli-frame writes.
6. Pauli Frame Management
Corrections are not forced as extra quantum gates on the device. They accumulate in a classical Pauli frame [5], [6], [22]:
P_frame ← P_frame XOR C_X.
The frame sits in dual-port distributed RAM: the decoder writes the current frame while the controller reads the previous one. Reads and writes are registered. No extra architectural latency is added past peeling.
7. Memory Architecture
Latency-critical state is on-chip:
M_UF = M_parent + M_rank + M_parity + M_boundary + M_edge.
With N vertices in the decoding graph: M_parent = N ceil(log2 N) bits; M_rank ≈ 4N bits; M_parity = N bits; M_boundary = N bits; M_edge = 2E bits.
|
Structure |
Resource |
|
Parent table |
Dual-port BRAM, banked |
|
Rank table |
BRAM |
|
Edge state |
UltraRAM / BRAM |
|
Boundary flags |
LUTRAM |
|
Defect FIFO |
BRAM FIFO |
|
Pauli frame |
Distributed RAM |
Mapping follows the UltraScale+ / Versal memory hierarchy [20], [21]. UltraRAM is used for large edge tables (deterministic latency, high bits per column). Distributed RAM is used for the small, line-rate Pauli cache.
Parent accesses are striped: Bank(v) = v mod B, so several Finds can issue together. Arbitration is a fixed-priority encoder on the bank index. Bank selection is combinational from the node id.
8. Scalability
A distance-d surface-code cycle measures O(d²) stabilizers, not O(d³). The O(d³) figure belongs to the space-time decoding graph when the window depth w is taken of order d (w rounds × O(d²) checks). That is the N that enters M_UF. Per-cycle I/O remains O(d²). The earlier formula N_s = d²(d−1) as “measurements per cycle” is withdrawn; the table below is space-time volume for w = d, order-of-magnitude only.
|
Distance d |
Order of space-time vertices (w = d) |
|
5 |
~10² |
|
11 |
~10³ |
|
21 |
~10⁴ |
|
31 |
~3×10⁴ |
|
41 |
~7×10⁴ |
Below threshold, active defects N_active ≪ N, so the FIFO and the scheduler visit neighborhoods, not the whole lattice [1], [11]. Multi-tile scaling replicates DEU, Union-Find, Pauli RAM, and a local FIFO per tile, with a light boundary mesh, consistent with modular decoder proposals [14]–[16].
9. Throughput and Latency Budget
Clock target: f_clk = 400 MHz, T_clk = 2.5 ns (4×10⁸ pipeline slots per second). Design estimate below threshold: 170 ns ≤ L_avg ≤ 390 ns. Worst case: L_max = L_fixed + N_c^max T_UF with L_fixed ≈ 45 ns for the front end, giving L_max ≈ 500 ns under a conservative cluster bound. That is less than T_cycle = 1 μs [13]. These numbers are budgets, not place-and-route measurements. Measured Union-Find FPGAs already report mean times from ~10 ns/round (Helios, small d, phenomenological) to hundreds of ns/round at large d [15], [16]; the present pipeline is specified to sit in that same real-time band.
10. Power and Thermal Placement
P_total = P_static + P_logic + P_memory + P_transceiver + P_clock. Single-patch estimate:
|
Block |
Estimated power |
|
Deserializer |
0.2–0.4 W |
|
Defect extraction |
0.1–0.2 W |
|
Union-Find engine |
0.8–1.5 W |
|
BRAM / URAM |
0.3–0.8 W |
|
Peeling |
0.2–0.4 W |
|
GTY transceivers |
0.8–2.0 W |
|
Clocking |
0.2–0.5 W |
Sum ≈ 3–6 W at the FPGA. The FPGA stays at room temperature. Only the device and immediate control lines sit at millikelvin [13].
11. Clock-Enable Power Control
Dynamic power is α C V² f. The lever is activity α. The design uses FPGA clock-enables on registers (CE pins), not a chopped clock tree:
always @(posedge clk) if (ce) state <= next_state;
BRAM/URAM enable is RequestValid. A hierarchical controller watches FIFO occupancy, cluster count, in-flight Finds, and pending peels, and drives UF_EN, PEEL_EN, FRAME_EN. Large regions may use BUFGCE / BUFHCE [8]. Below threshold, clock-enable gating is estimated to cut average dynamic power by roughly 30–60% (illustratively 5 W → 2–3 W). Disabled stages restart on the next valid defect; the latency contract does not become data-dependent beyond the already-bounded pipeline.
12. Resource Estimate
|
Resource |
Estimated use (one patch) |
|
LUTs |
25k–75k |
|
Flip-flops |
40k–120k |
|
BRAM36 |
10–30 |
|
UltraRAM |
4–16 |
|
DSP48 |
<10 |
|
GTY |
4–16 |
This envelope fits mid-range UltraScale+ and Versal parts [21] and is in the same class as published FPGA decoders [14]–[16]. Exact use depends on d, window depth, and bank count.
13. Reliability
Long runs need BRAM ECC, configuration scrubbing, thermal sensors, watchdogs, and clock-failure detect [23]. Those are vendor-supported on SRAM FPGAs. They protect the pipeline against silent SEU and clock-tree glitches; they do not change the Union-Find algorithm.
14. Conclusion
A hardware Union-Find pipeline for surface-code memory can keep acquisition, defect extraction, disjoint-set growth, peeling, and Pauli-frame update on one FPGA, on-chip, with a latency budget inside 1 μs at 400 MHz. Memory follows the space-time graph, O(d³) when the window is order d. Power is a few watts at room temperature. The inner loop does not need a host processor.
What this manuscript is not: a replacement for measured Helios or Collision Clustering numbers, and not a claim that 170–390 ns has been closed in timing on a named part. The next step is RTL, place-and-route, and a syndrome-trace benchmark against those implementations at matched d, p, and window.
References
[1] A. G. Fowler, M. Mariantoni, J. M. Martinis, and A. N. Cleland, “Surface codes: Towards practical large-scale quantum computation,” Phys. Rev. A, vol. 86, no. 3, p. 032324, 2012.
[2] A. G. Fowler, D. S. Wang, and L. C. L. Hollenberg, “Surface code quantum error correction incorporating accurate error propagation,” Quantum Inf. Comput., vol. 11, pp. 8–18, 2011.
[3] N. Delfosse and N. H. Nickerson, “Almost-linear time decoding algorithm for topological codes,” Quantum, vol. 5, p. 595, 2021; arXiv:1709.06218.
[4] R. E. Tarjan, “Efficiency of a good but not linear set union algorithm,” J. ACM, vol. 22, no. 2, pp. 215–225, 1975.
[5] L. Riesebos, “Pauli frames for quantum computer architectures,” M.Sc. thesis, Delft University of Technology, 2016.
[6] D. Gottesman, “The Heisenberg representation of quantum computers,” arXiv:quant-ph/9807006, 1998.
[7] AMD, Aurora 64B/66B LogiCORE IP Product Guide (PG074) and Aurora 64B/66B Protocol Specification (SP011).
[8] AMD, UltraScale Architecture Clocking Resources User Guide (UG572).
[9] A. Yu. Kitaev, “Fault-tolerant quantum computation by anyons,” Ann. Phys., vol. 303, pp. 2–30, 2003.
[10] S. B. Bravyi and A. Yu. Kitaev, “Quantum codes on a lattice with boundary,” arXiv:quant-ph/9811052, 1998.
[11] E. Dennis, A. Kitaev, A. Landahl, and J. Preskill, “Topological quantum memory,” J. Math. Phys., vol. 43, no. 9, pp. 4452–4505, 2002.
[12] J. Edmonds, “Paths, trees, and flowers,” Canad. J. Math., vol. 17, pp. 449–467, 1965.
[13] Google Quantum AI, “Suppressing quantum errors by scaling a surface code logical qubit,” Nature, vol. 614, pp. 676–681, 2023.
[14] P. Das, C. A. Pattison, S. Manne, D. Carmean, K. Svore, M. Qureshi, and N. Delfosse, “A scalable decoder micro-architecture for fault-tolerant quantum computing,” arXiv:2001.06598, 2020.
[15] N. Liyanage, Y. Wu, S. Tagare, and L. Zhong, “FPGA-based distributed Union-Find decoder for surface codes,” IEEE Trans. Quantum Eng., vol. 5, 2024, doi:10.1109/TQE.2024.3467271; arXiv:2406.08491.
[16] B. Barber et al., “A real-time, scalable, fast and highly resource efficient decoder for a quantum computer,” arXiv:2309.05558; Nature Electronics related Collision Clustering implementation.
[17] J. Edmonds, “Maximum matching and a polyhedron with 0,1-vertices,” J. Res. Natl. Bur. Stand. B, vol. 69, pp. 125–130, 1965.
[18] V. Kolmogorov, “Blossom V: A new implementation of a minimum cost perfect matching algorithm,” Math. Prog. Comput., vol. 1, pp. 43–67, 2009.
[19] J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 6th ed. Morgan Kaufmann, 2017.
[20] AMD, UltraScale Architecture Memory Resources User Guide (UG573).
[21] AMD, Versal Adaptive SoC Technical Reference Manual (AM011) and UltraScale+ product tables.
[22] C. Chamberland, P. Iyer, and D. Poulin, “Fault-tolerant quantum computing in the Pauli or Clifford frame with slow error diagnostics,” Quantum, vol. 2, p. 43, 2018.
[23] AMD, Soft Error Mitigation (SEM) Controller LogiCORE IP Product Guide (PG187).
Files
Files
(19.3 kB)
| Name | Size | |
|---|---|---|
|
md5:69255a366ed16f311e8c019e7bf4d710
|
19.3 kB | Download |