abcBridge-0.12: Bindings for ABC, A System for Sequential Synthesis and Verification

Copyright(c) Galois, Inc. 2010-2014
Safe HaskellNone




Contains main interface to ABC, a system for sequential synthesis and verification.

ABC provides many functions for manipulating Boolean networks. Internally, ABC provides two different ways of representing them: the older AIG interface, and a newer GIA interface. This library exposes both interfaces, along with a handful of functions for manipulating them.


Library setup and teardown

initialize :: IO () Source

Initializes the ABC engine. This function may be safely called multiple times. Higher-level functions will automatically call this function, so it is only needed if using the FFI interfaces directly.

unsafeCleanup :: IO () Source

Deinitializes the ABC engine. ABC operations may not be run after this function is called. Use with care; this may cause ABC datatypes to stop working.

Standard ABC interface

data AIG s Source


aigNetwork :: Proxy AIGLit AIG Source

Proxy for AIG interface.

newAIG :: IO (SomeGraph AIG) Source

Build a new, empty AIG graph

readAigerAsAIG :: FilePath -> IO (Network AIGLit AIG) Source

Read an AIGER file as an AIG network.

New style ABC representation

data GIA s Source

An and-invertor graph network in GIA form.


giaNetwork :: Proxy GIALit GIA Source

Proxy for GIA interface.

newGIA :: IO (SomeGraph GIA) Source

Build a new empty GIA graph

readAigerAsGIA :: FilePath -> IO (Network GIALit GIA) Source

Read an AIGER file as a GIA network.

module Data.AIG