Coder Social home page Coder Social logo

cirkit's Introduction

Build Status Build status License: MIT

CirKit (version 3)

CirKit is a logic synthesis and optimization framework. It is implemented based on various EPFL logic sythesis libraries.

Clone

CirKit depends on submodules, so make sure to clone recursively:

git clone --recursive https://github.com/msoeken/cirkit.git

If you update the repository, then also update the submodules:

git pull origin cirkit3
git submodule update --recursive

Installation (shell interface)

mkdir build
cd build
cmake ..
make cirkit
cli/cirkit

Installation (Python library)

python3 setup.py install

But you can also use the Makefile to build the Python library in a virtual environment:

make devbuild

With custom compiler

CirKit is implemented using C++-17 features and therefore a recent compiler is required (e.g., GCC ≥ 7.3.0 and Clang ≥ 7.0.0). If your recent compiler is not on the PATH prefix, extend the cmake command as follows:

cmake -DCMAKE_CXX_COMPILER=/path/to/c++-compiler ..

and prefix the python3 command as follows:

CC=/path/to/c++-compiler python3 setup.py install

Example (stand-alone application)

$ cirkit
read_aiger --aig file.aig
ps
cut_rewrite
lut_mapping
collapse_mapping
ps
write_bench file.bench

Example (Python interface)

import cirkit
cirkit.read_aiger(aig=True, filename="file.aig")
cirkit.ps(aig=True)
cirkit.cut_rewrite(aig=True)
cirkit.lut_mapping(aig=True)
cirkit.collapse_mapping(aig=True)
cirkit.ps(lut=True)
cirkit.write_bench(lut=True, filename="file.bench")

RevKit 3.1

RevKit 3.1 is a Python library without a stand-alone interface as in CirKit. It can be found at the RevKit repository.

CirKit and RevKit 2.0

The 2.0 versions of CirKit and RevKit can be found in the develop branch.

EPFL logic sythesis libraries

CirKit and Revkit are based on the EPFL logic synthesis libraries. The libraries and several examples on how to use and integrate the libraries can be found in the logic synthesis tool showcase.

cirkit's People

Contributors

hriener avatar msoeken avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.