Home

Awesome

The EPFL Logic Synthesis Libraries (Showcase)

The EPFL logic synthesis libraries are a collection of modular open source C++ libraries for the development of logic synthesis applications. All libraries are well documented and well tested. Being header-only, the libraries can be readily used as core components in complex logic synthesis frameworks. This showcase repository presents several applications in which the libraries are used.

Libraries

<img src="https://cdn.rawgit.com/msoeken/alice/master/alice.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

alice: C++ command shell library <br> GitHub | Version 0.3 (July 22, 2018) | Documentation <br> maintained by Mathias Soeken

<img src="https://cdn.jsdelivr.net/gh/lsils/bill@master/bill.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

bill: C++ reasoning library <br> GitHub | Version 0.1 (June 2, 2020) | Documentation <br> maintained by Bruno Schmitt

<img src="https://raw.githubusercontent.com/gmeuli/caterpillar/master/docs/logoII.svg?sanitize=true" width="64" height="64" align="left" style="margin-right: 12pt" />

caterpillar: C++ quantum circuit synthesis library <br> GitHub | Documentation <br> maintained by Giulia Meuli

<img src="https://cdn.rawgit.com/hriener/easy/master/easy.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

easy: C++ exclusive-or sum-of-product (ESOP) library <br> GitHub | Documentation <br> maintained by Heinz Riener

<img src="https://cdn.rawgit.com/msoeken/kitty/master/kitty.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

kitty: C++ truth table library <br> GitHub | Version 0.7 (March 13, 2020) | Documentation <br> maintained by Mathias Soeken and Siang-Yun (Sonia) Lee

<img src="https://cdn.rawgit.com/hriener/lorina/master/lorina.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

lorina: C++ parsing library <br> GitHub | Version 0.2 (October 18, 2018) | Documentation <br> maintained by Heinz Riener

<img src="https://cdn.rawgit.com/lsils/mockturtle/master/mockturtle.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

mockturtle: C++ logic network library <br> GitHub | Version 0.3 (July 12, 2022) | Documentation <br> maintained by Siang-Yun (Sonia) Lee

<img src="https://cdn.rawgit.com/whaaswijk/percy/master/percy.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

percy: C++ exact synthesis library <br> GitHub Dev | GitHub | Version 0.1.2 (May 12, 2018) | Documentation <br> maintained by Winston Haaswijk

<img src="https://cdn.rawgit.com/boschmitt/tweedledum/master/tweedledum.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

tweedledum: C++ quantum compilation library <br> GitHub | Version 1.1.1 (September 8, 2021) | Documentation <br> maintained by Bruno Schmitt

<img src="https://github.com/fmozafari/angel/blob/master/angel.svg" width="64" height="64" align="left" style="margin-right: 12pt" />

angel: C++ quantum state preparation library <br> GitHub | Documentation <br> maintained by Fereshte Mozafari

Examples

abc: A tiny ABC clone that uses alice for creating the CLI shell

countluts: Count and classify LUT functions in a BENCH file

exactmine: Mine optimum Boolean networks from truth tables

External projects using the EPFL Logic Synthesis Libraries

LSOracle (University of Utah, UT, USA)

fiction (part of the Munich Nanotech Toolkit (MNT), Technical University of Munich, Germany)

ropper (Ruan Formigoni, Federal University of Viçosa, Brazil)

NetlistDB (Michal Orsak, Brno University of Technology, Czech Republic)

PandA (Fabrizio Ferrandi, Politecnico di Milano, Italy)

LiveHD (Jose Renau, University of California, Santa Cruz, CA, USA)

staq (SoftwareQ Inc., ON, Canada)

ALSO (Zhufei Chu, Ningbo University, China)

If you are using the EPFL logic synthesis libraries in a project, we'd be happy to hear about it and list your project in this list.

Events

Reference

The EPFL logic synthesis libraries are explained in the paper The EPFL Logic Synthesis Libraries, presented at the International Workshop on Logic Synthesis 2018.

If you use the EPFL logic synthesis libraries in your research work and experimental evaluation, we'd be happy if you cite:

@misc{EPFLLibraries,
  author = {Soeken, Mathias and
            Riener, Heinz and
            Haaswijk, Winston and
            Testa, Eleonora and
            Schmitt, Bruno and
            Meuli, Giulia and
            Mozafari, Fereshte and
            Lee, Siang-Yun and
            Tempia Calvino, Alessandro and
            Marakkalage, Dewmini Sudara
            De Micheli, Giovanni},
  title = {The {EPFL} logic synthesis libraries},
  archivePrefix = "arXiv", 
  note = {arXiv:1805.05121v3},
  year = 2022,
  month = jun
}