Copyright | Galois, Inc. 2010-2014 |
---|---|
License | BSD3 |
Maintainer | jhendrix@galois.com |
Stability | experimental |
Portability | non-portable (c2hs, language extensions) |
Safe Haskell | Safe |
Language | Haskell98 |
Incomplete. Binding of base/base/abc.h
for manipulating and
running algorithms on the original ABC datatypes.
This current incomplete binding focuses on functions for manipulating and-inverter graphs (AIGs).
- data Abc_NtkType_t
- data Abc_NtkFunc_t
- data Abc_ObjType_t
- data Abc_Ntk_t_
- data Abc_Obj_t_
- type Abc_Ntk_t = Ptr Abc_Ntk_t_
- type Abc_Obj_t = Ptr Abc_Obj_t_
- abcNtkFunc :: Abc_Ntk_t -> IO Abc_NtkFunc_t
- abcNtkManName :: Field Abc_Ntk_t Nm_Man_t
- abcNtkObjs :: Abc_Ntk_t -> IO Vec_Ptr_t
- abcNtkPis :: Abc_Ntk_t -> IO Vec_Ptr_t
- abcNtkPos :: Abc_Ntk_t -> IO Vec_Ptr_t
- abcNtkCos :: Abc_Ntk_t -> IO Vec_Ptr_t
- abcNtkCis :: Abc_Ntk_t -> IO Vec_Ptr_t
- abcNtkObj :: Abc_Ntk_t -> Int -> IO Abc_Obj_t
- abcNtkManFunc :: Abc_Ntk_t -> IO (Ptr ())
- abcNtkModel :: Abc_Ntk_t -> IO (Ptr CInt)
- abcNtkExdc :: Field Abc_Ntk_t Abc_Ntk_t
- abcNtkPiNum :: Abc_Ntk_t -> IO Int
- abcNtkPoNum :: Abc_Ntk_t -> IO Int
- abcNtkCiNum :: Abc_Ntk_t -> IO Int
- abcNtkCoNum :: Abc_Ntk_t -> IO Int
- abcNtkLatchNum :: Abc_Ntk_t -> IO CInt
- abcNtkCreateObj :: Abc_Ntk_t -> Abc_ObjType_t -> IO Abc_Obj_t
- abcObjNot :: Abc_Obj_t -> Abc_Obj_t
- data Nm_Man_t_
- type Nm_Man_t = Ptr Nm_Man_t_
- nmManCreate :: CInt -> IO Nm_Man_t
- nmManFree :: Nm_Man_t -> IO ()
- abcObjIsComplement :: Abc_Obj_t -> Bool
- abcObjRegular :: Abc_Obj_t -> Abc_Obj_t
- abcObjId :: Abc_Obj_t -> IO CInt
- abcObjType :: Abc_Obj_t -> IO Abc_ObjType_t
- abcObjFanins :: Abc_Obj_t -> Vec_Int_t
- abcObjIsAnd :: Abc_Obj_t -> IO Bool
- abcObjLit0 :: Abc_Obj_t -> IO Abc_Obj_t
- abcObjLit1 :: Abc_Obj_t -> IO Abc_Obj_t
- abcAigAnd :: Abc_Aig_t -> Abc_Obj_t -> Abc_Obj_t -> IO Abc_Obj_t
- abcAigXor :: Abc_Aig_t -> Abc_Obj_t -> Abc_Obj_t -> IO Abc_Obj_t
- abcAigMux :: Abc_Aig_t -> Abc_Obj_t -> Abc_Obj_t -> Abc_Obj_t -> IO Abc_Obj_t
- abcAigConst1 :: Abc_Ntk_t -> IO Abc_Obj_t
- abcAigCleanup :: Abc_Aig_t -> IO CInt
- abcObjAddFanin :: Abc_Obj_t -> Abc_Obj_t -> IO ()
- abcNtkMiter :: Abc_Ntk_t -> Abc_Ntk_t -> Bool -> Int -> Bool -> Bool -> IO Abc_Ntk_t
- abcNtkMiterIsConstant :: Abc_Ntk_t -> IO Int
- abcNtkShortNames :: Abc_Ntk_t -> IO ()
- abcNtkAlloc :: Abc_NtkType_t -> Abc_NtkFunc_t -> Bool -> IO Abc_Ntk_t
- abcNtkDup :: Abc_Ntk_t -> IO Abc_Ntk_t
- abcNtkDelete :: Abc_Ntk_t -> IO ()
- p_abcNtkDelete :: FunPtr (Abc_Ntk_t -> IO ())
- abcNtkDeleteObj :: Abc_Obj_t -> IO ()
- abcNtkDeleteObjPo :: Abc_Obj_t -> IO ()
- abcNtkIvyProve :: Ptr Abc_Ntk_t -> Ptr () -> IO Int
- abcNtkVerifySimulatePattern :: Abc_Ntk_t -> Ptr CInt -> IO (ForeignPtr CInt)
- abcNtkQbf :: Abc_Ntk_t -> Int -> CInt -> Vec_Int_t -> IO Int
Types
Enums
data Abc_NtkType_t Source #
data Abc_NtkFunc_t Source #
data Abc_ObjType_t Source #
Opague types
data Abc_Ntk_t_ Source #
data Abc_Obj_t_ Source #
Pointer types
type Abc_Ntk_t = Ptr Abc_Ntk_t_ Source #
type Abc_Obj_t = Ptr Abc_Obj_t_ Source #
Base
Network getters
abcNtkFunc :: Abc_Ntk_t -> IO Abc_NtkFunc_t Source #
abcNtkCos :: Abc_Ntk_t -> IO Vec_Ptr_t Source #
Return combinational outputs (POs, asserts, latches).
abcNtkManFunc :: Abc_Ntk_t -> IO (Ptr ()) Source #
The functionality manager varies between AbcNtkFunc
. In the case
of AbcFuncAig
, this pointer is guaranteed to be an Abc_Aig_t
.
Counting objects
Creating simple objects
abcNtkCreateObj :: Abc_Ntk_t -> Abc_ObjType_t -> IO Abc_Obj_t Source #
Name manager
Object getters
abcObjIsComplement :: Abc_Obj_t -> Bool Source #
Return true if object is complemented.
abcObjRegular :: Abc_Obj_t -> Abc_Obj_t Source #
Return normalized object.
abcObjType :: Abc_Obj_t -> IO Abc_ObjType_t Source #
Object type.
abcObjFanins :: Abc_Obj_t -> Vec_Int_t Source #
Get object fanins.
abcAigCleanup :: Abc_Aig_t -> IO CInt Source #
abcFanio.c
Functions for manipulating fanins and fanouts of a node.
abcMiter.c
Functions for manipulating miters, a combination of two
circuits that outputs 1
if the outputs of the two original
circuits would have been different.
abcNames.c
Functions for manipulating the names attached to distinguished
nodes. Many functions in ABC require that networks being
combined be named equivalently, so adopting the canonical form
by abcNtkShortNames
helps avoid name mismatch errors.
abcNtkShortNames :: Abc_Ntk_t -> IO () Source #
abcNtk.c
Functions for allocating and deleting networks, each of which manages the memory of all nodes and other locations attached to it.
abcNtkAlloc :: Abc_NtkType_t -> Abc_NtkFunc_t -> Bool -> IO Abc_Ntk_t Source #
abcNtkDup :: Abc_Ntk_t -> IO Abc_Ntk_t Source #
Duplicate a network, allocating memory for the new network. This
procedure does not preserve the Id
of objects.
abcNtkDelete :: Abc_Ntk_t -> IO () Source #
abcObj.c
Functions for manipulating objects in networks.
abcNtkDeleteObj :: Abc_Obj_t -> IO () Source #
abcNtkDeleteObjPo :: Abc_Obj_t -> IO () Source #
abcProve.c
Functions for performing SAT solving.
abcVerify.c
Functions for creating and testing counterexample models.
abcNtkVerifySimulatePattern :: Abc_Ntk_t -> Ptr CInt -> IO (ForeignPtr CInt) Source #