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.
READ FULL TEXT