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
- Host: GitHub
- URL: https://github.com/lsils/percy
- Owner: lsils
- License: mit
- Fork: true (whaaswijk/percy)
- Created: 2019-05-03T13:53:17.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-18T11:52:54.000Z (over 3 years ago)
- Last Synced: 2024-06-26T04:57:17.408Z (almost 2 years ago)
- Language: C++
- Homepage: https://percy.readthedocs.io/en/latest
- Size: 3.26 MB
- Stars: 14
- Watchers: 8
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/whaaswijk/percy)
[](http://percy.readthedocs.io/en/latest)
[](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).