An open API service indexing awesome lists of open source software.

https://github.com/lsils/percy

C++ header-only exact synthesis library
https://github.com/lsils/percy

Last synced: 5 months ago
JSON representation

C++ header-only exact synthesis library

Awesome Lists containing this project

README

          

[![Build Status](https://travis-ci.org/whaaswijk/percy.svg?branch=master)](https://travis-ci.org/whaaswijk/percy)
[![Documentation Status](https://readthedocs.org/projects/percy/badge/?version=latest)](http://percy.readthedocs.io/en/latest)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

# percy

percy is a header-only exact synthesis library. It offers a collection of
different synthesizers and exact synthesis methods for use in applications such
as circuit resynthesis and design exploration.

[Read the documentation here.](http://percy.readthedocs.io/en/latest/?badge=latest)

## Example

The following code snippet synthesizes a circuit implementation of a full adder.

```c++
#include

spec s;
s.set_nr_outputs( 2 );

chain c;

kitty::dynamic_truth_table x{3}, y{3}, z{3};
kitty::create_nth_var( x, 0 );
kitty::create_nth_var( y, 1 );
kitty::create_nth_var( z, 2 );

auto const sum = x ^ y ^ z;
auto const carry = kitty::ternary_majority( x, y, z );

spec[0] = sum;
spec[1] = carry;

auto const result == synthesize( s, c );
assert( result == success );
```

## EPFL logic sythesis libraries

percy 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).