eggmock provides facilities to
- transfer and receive logic networks from mockturtle to and from Rust code with an automatically generated FFI and
- rewrite them using the egg library.
Currently, eggmock supports AIGs, MIGs, XMGs and XAGs.
To use eggmock, you need
- a modern C++ compiler and CMake
- a working Rust installation
If you want to test out if everything works as intended, you can run an example:
mkdir build
cd build
cmake ..
make mig_rewrite
./examples/mig_rewrite/mig_rewrite- make sure to run
git submodule update --init --recursivebeforehand !
This will create two files:
in.dotcontains the logic network that was passed from mockturtle to eggout.dotcontains the rewritten logic network
- make sure to run a release build when measuring performance
- eggmock currently does not guarantee to be memory leak free in program runs that involve panics or exceptions