RevKit is an open source C++ logic synthesis framework for reversibe logic. Many synthesis and optimization algorithms for reversible logic have been implemented or re-implemented in RevKit. Being part of CirKit it now has a command line interface similar to SIS or ABC. The main underlying logic data structures are reversible circuits, truth tables, and RCBDDs.
Previous versions of RevKit can be downloaded from www.revkit.org. The older versions also contain a Python interface and a graphical user interface. These features are no longer maintained and are replaced by the command line interface.
git clone --recursive https://github.com/msoeken/cirkit.git cd cirkit mkdir build cd build cmake -Denable_cirkit-addon-reversible=ON -Denable_cirkit-addon-formal=ON .. make external make revkit cd ..
Run RevKitAfter a successful compilation, run
./build/programs/revkitfrom the main directory. The core concepts of the CirKit CLI also apply to RevKit. Some example scripts for RevKit can be found here. The script can also be run with
./build/programs/revkit -ef addons/cirkit-addon-reversible/demo.csfrom the main directory.
DocumentationInformation on how to use CirKit can be found here.
- Linux or Mac
- cmake (at least version 3.0.0)
- g++ (at least version 4.9.0) or clang++ (at least version 3.5.0)
- boost (at least version 1.56.0)
- GNU MP, and its C++ interface GMP++
- GNU readline (optional)