ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
bdc.h
Go to the documentation of this file.
1
20
21#ifndef ABC__aig__bdc__bdc_h
22#define ABC__aig__bdc__bdc_h
23
24
28
32
33
34
36
37
41
42typedef struct Bdc_Fun_t_ Bdc_Fun_t;
43typedef struct Bdc_Man_t_ Bdc_Man_t;
44typedef struct Bdc_Par_t_ Bdc_Par_t;
46{
47 // general parameters
48 int nVarsMax; // the maximum support
49 int fVerbose; // enable basic stats
50 int fVeryVerbose; // enable detailed stats
51};
52
53// working with complemented attributes of objects
54static inline int Bdc_IsComplement( Bdc_Fun_t * p ) { return (int)((ABC_PTRUINT_T)p & (ABC_PTRUINT_T)01); }
55static inline Bdc_Fun_t * Bdc_Regular( Bdc_Fun_t * p ) { return (Bdc_Fun_t *)((ABC_PTRUINT_T)p & ~(ABC_PTRUINT_T)01); }
56static inline Bdc_Fun_t * Bdc_Not( Bdc_Fun_t * p ) { return (Bdc_Fun_t *)((ABC_PTRUINT_T)p ^ (ABC_PTRUINT_T)01); }
57static inline Bdc_Fun_t * Bdc_NotCond( Bdc_Fun_t * p, int c ) { return (Bdc_Fun_t *)((ABC_PTRUINT_T)p ^ (ABC_PTRUINT_T)(c!=0)); }
58
62
66
67/*=== bdcCore.c ==========================================================*/
68extern Bdc_Man_t * Bdc_ManAlloc( Bdc_Par_t * pPars );
69extern void Bdc_ManFree( Bdc_Man_t * p );
70extern void Bdc_ManDecPrint( Bdc_Man_t * p );
71extern int Bdc_ManDecompose( Bdc_Man_t * p, unsigned * puFunc, unsigned * puCare, int nVars, Vec_Ptr_t * vDivs, int nNodesMax );
72extern Bdc_Fun_t * Bdc_ManFunc( Bdc_Man_t * p, int i );
73extern Bdc_Fun_t * Bdc_ManRoot( Bdc_Man_t * p );
74extern int Bdc_ManNodeNum( Bdc_Man_t * p );
75extern int Bdc_ManAndNum( Bdc_Man_t * p );
78extern void * Bdc_FuncCopy( Bdc_Fun_t * p );
79extern int Bdc_FuncCopyInt( Bdc_Fun_t * p );
80extern void Bdc_FuncSetCopy( Bdc_Fun_t * p, void * pCopy );
81extern void Bdc_FuncSetCopyInt( Bdc_Fun_t * p, int iCopy );
82extern int Bdc_ManBidecNodeNum( word * pFunc, word * pCare, int nVars, int fVerbose );
83extern Vec_Int_t * Bdc_ManBidecResub( word * pFunc, word * pCare, int nVars );
84
85/*=== working with saved copies ==========================================*/
86static inline int Bdc_FunObjCopy( Bdc_Fun_t * pObj ) { return Abc_LitNotCond( Bdc_FuncCopyInt(Bdc_Regular(pObj)), Bdc_IsComplement(pObj) ); }
87static inline int Bdc_FunFanin0Copy( Bdc_Fun_t * pObj ) { return Bdc_FunObjCopy( Bdc_FuncFanin0(pObj) ); }
88static inline int Bdc_FunFanin1Copy( Bdc_Fun_t * pObj ) { return Bdc_FunObjCopy( Bdc_FuncFanin1(pObj) ); }
89
90
92
93
94
95#endif
96
100
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
Vec_Int_t * Bdc_ManBidecResub(word *pFunc, word *pCare, int nVars)
Definition bdcCore.c:426
int Bdc_ManNodeNum(Bdc_Man_t *p)
Definition bdcCore.c:48
Bdc_Fun_t * Bdc_FuncFanin0(Bdc_Fun_t *p)
Definition bdcCore.c:50
void Bdc_FuncSetCopyInt(Bdc_Fun_t *p, int iCopy)
Definition bdcCore.c:55
Bdc_Fun_t * Bdc_ManRoot(Bdc_Man_t *p)
Definition bdcCore.c:47
typedefABC_NAMESPACE_HEADER_START struct Bdc_Fun_t_ Bdc_Fun_t
INCLUDES ///.
Definition bdc.h:42
struct Bdc_Par_t_ Bdc_Par_t
Definition bdc.h:44
int Bdc_FuncCopyInt(Bdc_Fun_t *p)
Definition bdcCore.c:53
void Bdc_FuncSetCopy(Bdc_Fun_t *p, void *pCopy)
Definition bdcCore.c:54
struct Bdc_Man_t_ Bdc_Man_t
Definition bdc.h:43
int Bdc_ManBidecNodeNum(word *pFunc, word *pCare, int nVars, int fVerbose)
Definition bdcCore.c:378
void Bdc_ManDecPrint(Bdc_Man_t *p)
Definition bdcCore.c:260
Bdc_Fun_t * Bdc_FuncFanin1(Bdc_Fun_t *p)
Definition bdcCore.c:51
void * Bdc_FuncCopy(Bdc_Fun_t *p)
Definition bdcCore.c:52
void Bdc_ManFree(Bdc_Man_t *p)
Definition bdcCore.c:113
int Bdc_ManAndNum(Bdc_Man_t *p)
Definition bdcCore.c:49
int Bdc_ManDecompose(Bdc_Man_t *p, unsigned *puFunc, unsigned *puCare, int nVars, Vec_Ptr_t *vDivs, int nNodesMax)
Definition bdcCore.c:291
Bdc_Fun_t * Bdc_ManFunc(Bdc_Man_t *p, int i)
DECLARATIONS ///.
Definition bdcCore.c:46
Bdc_Man_t * Bdc_ManAlloc(Bdc_Par_t *pPars)
MACRO DEFINITIONS ///.
Definition bdcCore.c:68
Cube * p
Definition exorList.c:222
unsigned __int64 word
DECLARATIONS ///.
Definition kitPerm.c:36
int fVeryVerbose
Definition bdc.h:50
int nVarsMax
Definition bdc.h:48
int fVerbose
Definition bdc.h:49
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition vecPtr.h:42