Cirbo: A New Tool for Boolean Circuit Analysis and Synthesis
Daniil Averkov, Tatiana Belova, Gregory Emdin, Mikhail Goncharov, Viktoriia Krivogornitsyna, Alexander S. Kulikov, Fedor Kurmazov, Daniil Levtsov, Georgie Levtsov, Vsevolod Vaskin, Aleksey Vorobiev
TL;DR
Cirbo addresses the practical needs of circuit analysis, synthesis, and minimization by introducing an open-source Python tool that supports XAIG and AIG representations. It combines manual, SAT-based, and hybrid synthesis with both low- and high-effort minimization, and maintains a database of small, near-optimal circuits to accelerate design. Experimental results on IWLS 2024 benchmarks show substantial circuit-size reductions (average around $12\%$, up to $83\%$ on some cases) and contest-winning performance, underscoring the practical impact for symmetric and arithmetic functions. The work provides a modular framework, combining building-block approaches with SAT-based optimization, and demonstrates scalable improvements across SUM, MAJ, SORT, and arithmetic circuits, offering a valuable toolchain for circuit designers and researchers.
Abstract
We present an open-source tool for manipulating Boolean circuits. It implements efficient algorithms, both existing and novel, for a rich variety of frequently used circuit tasks such as satisfiability, synthesis, and minimization. We tested the tool on a wide range of practically relevant circuits (computing, in particular, symmetric and arithmetic functions) that have been optimized intensively by the community for the last three years. The tool helped us to win the IWLS 2024 Programming Contest. In 2023, it was Google DeepMind who took the first place in the competition. We were able to reduce the size of the best circuits from 2023 by 12\% on average, whereas for some individual circuits, our size reduction was as large as 83\%.
