RevLib is an online resource for benchmarks within the domain of reversible and quantum circuit design
 



Universität Bremen References Cite RevLib Acknowledgements About RevLib


Download RevKit

On this page, you can download the latest version of the RevKit toolkit. RevKit is implemented using C++ and runs on linux machines. For any assistance in how to install and how to run RevKit, we refer to the README file as well as the user documentation or the developer documentation. In case of any problems or questions, feel free to get in touch with us.

You can download the RevKit toolkit using the following link:

  • Most recent RevKit version on GitHub

  • Download RevKit (v2.2, 182 KB)
    Note: In order to improve the stability of RevKit we removed the Python bindings from RevKit in version 2.0. If you are making use of the Python bindings in RevKit, please refer to the version 1.3.

  • Download RevKit (v2.1, 180 KB)
    Note: In order to improve the stability of RevKit we removed the Python bindings from RevKit in version 2.0. If you are making use of the Python bindings in RevKit, please refer to the version 1.3.

  • Download RevKit (v2.0, 168 KB)
    Note: In order to improve the stability of RevKit we removed the Python bindings from RevKit in version 2.0. If you are making use of the Python bindings in RevKit, please refer to the previous version 1.3.

  • Download RevKit (v1.3, 2.0 MB)
    Changes:
    • [C++] The RM Spectra synthesis algorithm introduced in [MDM:07] has been added.
    • [C++] Verification/Simulation: Recursive simulation of modules has been added.
    • [C++] Synthesis: A function transposition_to_circuit has been added which creates a circuit realizing a certain transposition.
    • [C++] Synthesis: A synthesis approach has been added based on consecutive applications of transposition_to_circuit.
    • [C++] New options in write_blif to distinguish state signals and to keep name of constant lines have been added.
    • [Helpers] The helpers scripts are now integrating new algorithms into the Python bindings.
    • [Python] GUI Changes: Snap Items to Items have been added.
    • [Build] The installing and compilation process has been re-organized and unitized (see README for details).
    • [Build] New scripts have been added allowing for the individual compilation of the entire toolkit and its individual algorithms/implementations.
    • [Build] New clean scripts have been added.
    • [Build] A symbol link for "python" has been added which is used by all Python-scripts.
    • [Build] RevKit is now compatible with the recent boost-library, i.e. compilation errors with (new) Linux distributions have been fixed.
    • [C++] BUGFIX: Equivalence checking is now compatible with new gcc-compilers.
    • [C++] BUGFIX: The order of targets in a Peres gate is now respected.
    • [C++] BUGFIX: The underflow in embed_truth_table with functions that have more outputs than inputs has been fixed.
    • [C++] BUGFIX: Small bugfixes in core/circuit have been performed.
    • [C++] BUGFIX: Several further bugs have been fixed.
    • [Python] BUGFIX: Wrong function name in embed_truth_table tool has been fixed.

  • Download RevKit (v1.2.1, 1.2 MB)
    Changes:
    • GUI crash on Ubuntu versions older than 11.04 has been fixed.
    Note: To carry own code to the next version, copy all directories from the unstable directory to the unstable directory of the new version (no changes in the Makefile or build-file are necessary).

  • Download RevKit (v1.2, 1.2 MB)
    Changes:
    • The RevKit Graphical User Interface has been added (see User Documentation, Section 3.1 or the tutorial videos at this page).
    • An algorithm for the simulation of sequential circuits has been added.
    • RevLib 2.0: Support of simulation files.
    • Extended zooming capabilities have been added (see the status bar of the RevKit Viewer).
    • The module 'revkitmath' for matrix manipulation has been added.
    • Support of buses and BlifMV in write_blif.
    • Bus information can be copied in copy_metadata.
    • Settings for copy_metadata have been added enabling to select which data should be copied.
    • Copying of hierarchical information is now configurable in flatten_circuit.
    • BUGFIX: The properties class (used for algorithms) has been re-implemented (without changing the interface).
    • BUGFIX: A problem with constant inputs and garbage outputs in the equivalence checker has been fixed.
    • BUGFIX: The costs calculation for hierarchical circuits has been fixed.
    • BUGFIX: The problem of too many items in read_pla when there were more than one space between columns has been fixed.
    Note: To carry own code to the next version, copy all directories from the unstable directory to the unstable directory of the new version (no changes in the Makefile or build-file are necessary).

  • Download RevKit (v1.1.1, 972 KB)
    Changes:
    • BUGFIX: The costs calculation for hierarchical circuits in the RevKit Viewer has been fixed.
    • BUGFIX: A missing case for Fredkin gate synthesis has been added in write_verilog.
    • BUGFIX: It is now possible to select a synthesis method in the line_reduction tool script.
    • BUGFIX: A wrong pathname for testcase has been fixed in the tutorial of the developer's documentation.
    • BUGFIX: The timeout for the line_reduction synthesis algorithms has been fixed.
    • BUGFIX: A wrong return value in target_lines and control_lines has been fixed.
    • BUGFIX: Wrong output names and number of output signals in write_blif have been fixed.
    • In KFDD-based synthesis, sifting instead of exact ordering is used as default.
    • BUGFIX: A wrong variable name in testcase script has been fixed.
    • BUGFIX: A missing variable reference in bus_collection has been fixed.
    • BUGFIX: A wrong reference type in python binding for circuit::circuit_name has been fixed.
    Note: To carry own code to the next version, copy all directories from the unstable directory to the unstable directory of the new version (no changes in the Makefile or build-file are necessary).

  • Download RevKit (v1.1, 969 KB)
    Changes:
    • The adding lines optimization method introduced in [MWD:2010] has been added (see User Documentation, Section D.3).
    • The visualization of circuits has been improved (see User Documentation, Section 3.2).
    • RevLib 2.0: Support of hierarchical circuitry (i.e. modules, flatten_circuit).
    • RevLib 2.0: Support of input and output buses and state signals.
    • RevLib 2.0: Support of annotations.
    • RevLib 2.0: Support of quotes in input and output names.
    • A new IO-function "write_verilog" has been added which generates a Verilog-Code from a given circuit.
    • An offset calculation of quantum_costs has been added which can be applied to determine hypothetical costs
    • An active control concept has been introduced in circuit class.
    • Gates can be accessed by the index in circuit class.
    • A return value has been added for the "add_line_to_circuit"-function.
    • Timer: It is now possible to use system time instead of user time.
    • A "size()"-method has been added in the bitset class.
    • BUGFIX: A bug in the quantum cost calculation of Fredkin gates has been fixed.
    • BUGFIX: Fixed write_realization and write_simulation to compile in Mac OS.
    • BUGFIX: Fixed warnings to compile in Mac OS.
    • BUGFIX: Fixed functor name.
    Note: To carry own code to the next version, copy all directories from the unstable directory to the unstable directory of the new version (no changes in the Makefile or build-file are necessary).

  • Download RevKit (v1.0.1, 829 KB)
    Changes:
    • Installing python bindings is now possible on 64-bit machines
    • A bug in the quantum decomposition has been fixed (thanks to Gerhard W. Dueck for reporting this error)
    Note: To carry own code to the next version, copy all directories from the unstable directory to the unstable directory of the new version (no changes in the Makefile or build-file are necessary).

  • Download RevKit (v1.0, 823 KB)
    The first release of RevKit.




 back