Getting started
mockturtle is a header-only C++-17 library. It can be compiled as a stand-alone tool for direct usage, or be integrated in another project as a library.
Compilation requirements
Support of C++ 17 standard is required to compile mockturtle. We constantly test building mockturtle on Linux using Clang 11, GCC 7, GCC 9 and GCC 10, and on Mac OS using Clang 12, GCC 9 and GCC 10. It also compiles on Windows using the C++ compiler in Visual Studio 2019.
Using mockturtle as a stand-alone tool
mockturtle can be compiled and used as a stand-alone logic synthesis tool. Compilation configuration can be easily done with CMake. For example, to configure, compile and run the example code in our GitHub page:
mkdir build
cd build
cmake ..
make cut_enumeration
./examples/cut_enumeration
Please note that CMake version >= 3.8 is required. For a more interactive
interface, you could also use ccmake
.
If you experience that the system compiler does not suffice the requirements, you can manually pass a compiler to CMake using:
cmake -DCMAKE_CXX_COMPILER=/path/to/c++-compiler ..
To write your own code to run mockturtle algorithms, simply create a new cpp file in the examples directory, and then re-configure with CMake:
cd build
cmake .
Then, a make target of your file name should become available.
For most of the algorithms, there is a corresponding experiment code in the
experiments directory, which demonstrates how the algorithm can be called.
To compile the experiments, you need to turn on the MOCKTURTLE_EXPERIMENTS
option in CMake:
cmake -DMOCKTURTLE_EXPERIMENTS=ON ..
Note that many of the experiments check circuit equivalence with a system-command
call to ABC. If you see abc: command not found
, you could either install ABC
and add it to the PATH variable, or ignore this error as it does not affect the
operation of the algorithms.
mockturtle can be configured using CMake build types. For performance, configure CMake in release mode:
cmake -DCMAKE_BUILD_TYPE=Release ..
Using mockturtle as a library in another project
Being header-only, mockturtle can be easily integrated into existing and new projects. Just add the include directory of mockturtle to your include directories, and simply include mockturtle by
#include <mockturtle/mockturtle.hpp>
Some external projects using mockturtle can be found on our showcase page.
Building tests
In order to run the tests, you need to init the submodules and enable tests in CMake:
mkdir build
cd build
cmake -DMOCKTURTLE_TEST=ON ..
make run_tests
./test/run_tests