Skip to content

hibenj/mockturtle

This branch is up to date with lsils/mockturtle:master.

Folders and files

NameName
Last commit message
Last commit date
Sep 23, 2024
Feb 28, 2022
Sep 24, 2024
Aug 5, 2022
Sep 23, 2024
Oct 19, 2024
Sep 24, 2024
Sep 23, 2024
Aug 5, 2022
Aug 5, 2022
Mar 5, 2024
Nov 28, 2018
Nov 28, 2022
Feb 16, 2024
Mar 4, 2024
May 2, 2018
Mar 31, 2019
Jun 1, 2023
Nov 28, 2022
Jul 20, 2021

Repository files navigation

Actions Status Actions Status Actions Status Coverage Status Documentation Status License: MIT

mockturtle

mockturtle is a C++-17 logic network library. It provides several logic network implementations (such as And-inverter graphs, Majority-inverter graphs, and k-LUT networks), and generic algorithms for logic synthesis and logic optimization.

Read the full documentation.

Example

The following code snippet reads an AIG from an Aiger file, enumerates all cuts and prints them for each node.

#include <mockturtle/mockturtle.hpp>
#include <lorina/aiger.hpp>

mockturtle::aig_network aig;
auto const result = lorina::read_aiger( "file.aig", mockturtle::aiger_reader( aig ) );
assert( result == lorina::return_code::success );

auto const cuts = cut_enumeration( aig );
aig.foreach_node( [&]( auto node ) {
  std::cout << cuts.cuts( aig.node_to_index( node ) ) << "\n";
} );

Installation requirements

A modern compiler is required to build mockturtle. We are continuously testing with Clang 12.0.1, GCC 9.3.0, and GCC 10.2.0. More information can be found in the documentation.

EPFL logic synthesis libraries

mockturtle is part of the EPFL logic synthesis libraries. The other libraries and several examples on how to use and integrate the libraries can be found in the logic synthesis tool showcase.

About

C++ logic network library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 80.0%
  • C 19.6%
  • Makefile 0.1%
  • M4 0.1%
  • CMake 0.1%
  • Python 0.1%