Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lsils/mockturtle
C++ logic network library
https://github.com/lsils/mockturtle
Last synced: 3 months ago
JSON representation
C++ logic network library
- Host: GitHub
- URL: https://github.com/lsils/mockturtle
- Owner: lsils
- License: mit
- Created: 2018-04-25T12:15:49.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-24T11:41:19.000Z (4 months ago)
- Last Synced: 2024-07-24T13:29:15.558Z (4 months ago)
- Language: C++
- Size: 24.7 MB
- Stars: 191
- Watchers: 19
- Forks: 133
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-opensource-hardware - mockturtle
README
[![Actions Status](https://github.com/lsils/mockturtle/workflows/Linux%20CI/badge.svg)](https://github.com/lsils/mockturtle/actions)
[![Actions Status](https://github.com/lsils/mockturtle/workflows/MacOS%20CI/badge.svg)](https://github.com/lsils/mockturtle/actions)
[![Actions Status](https://github.com/lsils/mockturtle/workflows/Windows%20CI/badge.svg)](https://github.com/lsils/mockturtle/actions)
[![Coverage Status](https://codecov.io/gh/lsils/mockturtle/branch/master/graph/badge.svg?token=KSC1MP2VCM)](https://codecov.io/gh/lsils/mockturtle)
[![Documentation Status](https://readthedocs.org/projects/mockturtle/badge/?version=latest)](http://mockturtle.readthedocs.io/en/latest/?badge=latest)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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.](http://mockturtle.readthedocs.io/en/latest/?badge=latest)
## Example
The following code snippet reads an AIG from an Aiger file, enumerates all cuts
and prints them for each node.```c++
#include
#includemockturtle::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](http://mockturtle.readthedocs.io/en/latest/getting_started.html).## EPFL logic synthesis libraries
mockturtle is part of the [EPFL logic synthesis](https://lsi.epfl.ch/page-138455-en.html) libraries. The other libraries and several examples on how to use and integrate the libraries can be found in the [logic synthesis tool showcase](https://github.com/lsils/lstools-showcase).