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
abcNtkManName :: Field Abc_Ntk_t Nm_Man_t Source
Network name manager.
abcNtkObjs :: Abc_Ntk_t -> IO Vec_Ptr_t Source
Return array of all objects.
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
.
abcNtkExdc :: Field Abc_Ntk_t Abc_Ntk_t Source
The EXDC network.
Counting objects
abcNtkPiNum :: Abc_Ntk_t -> IO Int Source
abcNtkPoNum :: Abc_Ntk_t -> IO Int Source
abcNtkCiNum :: Abc_Ntk_t -> IO Int Source
abcNtkCoNum :: Abc_Ntk_t -> IO Int Source
abcNtkLatchNum :: Abc_Ntk_t -> IO CInt Source
Creating simple objects
abcNtkCreateObj :: Abc_Ntk_t -> Abc_ObjType_t -> IO Abc_Obj_t Source
Name manager
nmManCreate :: CInt -> IO Nm_Man_t Source
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.
abcObjIsAnd :: Abc_Obj_t -> IO Bool Source
Return true if this an and gate.
abcObjLit0 :: Abc_Obj_t -> IO Abc_Obj_t Source
abcObjLit1 :: Abc_Obj_t -> IO Abc_Obj_t Source
abcAigConst1 :: Abc_Ntk_t -> IO Abc_Obj_t Source
abcAigCleanup :: Abc_Aig_t -> IO CInt Source
abcFanio.c
Functions for manipulating fanins and fanouts of a node.
abcObjAddFanin :: Abc_Obj_t -> Abc_Obj_t -> IO () Source
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
p_abcNtkDelete :: FunPtr (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