Fork me on GitHub

RevKit

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.

Download RevKit

The newest RevKit version is availabe as an addon for CirKit and can be downloaded from github.com/msoeken/cirkit.

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.

Install RevKit

git clone 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 RevKit

After a successful compilation, run
./build/programs/revkit
from 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.cs
from the main directory.

Documentation

Information on how to use CirKit can be found here.

Requirements

  • Linux or Mac
  • git
  • 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)