The EPFL Logic Synthesis Libraries

We present a collection of modular open source C++ libraries for the development of logic synthesis applications. The alice library is a lightweight wrapper for shell interfaces, which is the typical user interface for most logic synthesis and design automation applications. It includes a Python interface to support scripting. The lorina library is a parsing library for simple file formats commonly used in logic synthesis. It includes several customizable parsing algorithms and a flexible diagnostic engine. The kitty library is a truth table library for explicit representation and manipulation of Boolean functions. It requires less overhead compared to symbolic counterparts such as binary decision diagrams, but is limited by the number of variables of the Boolean function to represent. Finally, percy is an exact synthesis library with multiple engines to find optimum logic networks. All libraries are well documented and well tested. Furthermore, being header-only, the libraries can be readily used as core components in complex logic synthesis systems.

[1]  Charles H. Bennett Time/Space Trade-Offs for Reversible Computation , 1989, SIAM J. Comput..

[2]  Jason Cong,et al.  Cut ranking and pruning: enabling a general and efficient FPGA mapping solution , 1999, FPGA '99.

[3]  Robert K. Brayton,et al.  ABC: An Academic Industrial-Strength Verification Tool , 2010, CAV.

[4]  Joan Boyar,et al.  A Small Depth-16 Circuit for the AES S-Box , 2012, SEC.

[5]  Giovanni De Micheli,et al.  Resource constrained oracle synthesis for quantum circuits , 2019 .

[6]  Gilles Audemard Glucose and Syrup in the SAT Race 2015 , 2015 .

[7]  Mathias Soeken,et al.  SAT Based Exact Synthesis using DAG Topology Families , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[8]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[9]  Claude Castelluccia,et al.  Extending SAT Solvers to Cryptographic Problems , 2009, SAT.

[10]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[11]  Giovanni De Micheli,et al.  A best-fit mapping algorithm to facilitate ESOP-decomposition in Clifford+T quantum network synthesis , 2018, 2018 23rd Asia and South Pacific Design Automation Conference (ASP-DAC).

[12]  Mathias Soeken,et al.  SAT-Based Exact Synthesis: Encodings, Topology Families, and Parallelism , 2020, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Giovanni De Micheli,et al.  The Role of Multiplicative Complexity in Compiling Low $T$-count Oracle Circuits , 2019, 2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[14]  Giovanni De Micheli,et al.  Reversible Pebbling Game for Quantum Memory Management , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[15]  Henry S. Warren,et al.  Hacker's Delight , 2002 .

[16]  Giovanni De Micheli,et al.  Exact Synthesis of ESOP Forms , 2018, Advanced Boolean Techniques.

[17]  Giovanni De Micheli,et al.  Evaluating ESOP Optimization Methods in Quantum Compilation Flows , 2019, RC.

[18]  Stefan Frehse,et al.  metaSMT: focus on your application and not on solver integration , 2016, International Journal on Software Tools for Technology Transfer.

[19]  Giovanni De Micheli,et al.  On-the-fly and DAG-aware: Rewriting Boolean Networks with Exact Synthesis , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).