Home

Awesome

Build Status Documentation Status License: MIT

percy

<img src="https://cdn.rawgit.com/whaaswijk/percy/master/percy.svg" width="78" height="64" align="left" style="margin-right: 12pt" /> 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.

Example

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

#include <percy/percy.hpp>

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 libraries. The other libraries and several examples on how to use and integrate the libraries can be found in the logic synthesis tool showcase.