ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
acecInt.h
Go to the documentation of this file.
1
20
21#ifndef ABC__proof__acec__acec__int_h
22#define ABC__proof__acec__acec__int_h
23
24
28
29#include "aig/gia/gia.h"
30#include "acec.h"
31
35
36
38
39
40typedef struct Acec_Box_t_ Acec_Box_t;
42{
43 Gia_Man_t * pGia; // AIG manager
44 Vec_Wec_t * vAdds; // adders by rank
45 Vec_Wec_t * vLeafLits; // leaf literals by rank
46 Vec_Wec_t * vRootLits; // root literals by rank
47 Vec_Wec_t * vShared; // shared leaves
48 Vec_Wec_t * vUnique; // unique leaves
49};
50
54
58
59static inline int Acec_SignBit( Vec_Int_t * vAdds, int iBox, int b ) { return (Vec_IntEntry(vAdds, 6*iBox+5) >> b) & 1; }
60static inline int Acec_SignBit2( Vec_Int_t * vAdds, int iBox, int b ) { return (Vec_IntEntry(vAdds, 6*iBox+5) >> (16+b)) & 1; }
61
62static inline void Acec_SignSetBit( Vec_Int_t * vAdds, int iBox, int b, int v ) { if ( v ) *Vec_IntEntryP(vAdds, 6*iBox+5) |= (1 << b); }
63static inline void Acec_SignSetBit2( Vec_Int_t * vAdds, int iBox, int b, int v ) { if ( v ) *Vec_IntEntryP(vAdds, 6*iBox+5) |= (1 << (16+b)); }
64
68
72
73/*=== acecCo.c ========================================================*/
74extern Vec_Int_t * Gia_PolynCoreOrder( Gia_Man_t * pGia, Vec_Int_t * vAdds, Vec_Int_t * vAddCos, Vec_Int_t ** pvIns, Vec_Int_t ** pvOuts );
75extern Vec_Wec_t * Gia_PolynCoreOrderArray( Gia_Man_t * pGia, Vec_Int_t * vAdds, Vec_Int_t * vRootBoxes );
76/*=== acecMult.c ========================================================*/
77extern Vec_Int_t * Acec_MultDetectInputs( Gia_Man_t * p, Vec_Wec_t * vLeafLits, Vec_Wec_t * vRootLits );
80/*=== acecNorm.c ========================================================*/
81extern void Acec_InsertFadd( Gia_Man_t * pNew, int In[3], int Out[2] );
82extern Gia_Man_t * Acec_InsertBox( Acec_Box_t * pBox, int fAll );
83/*=== acecTree.c ========================================================*/
84extern void Acec_PrintAdders( Vec_Wec_t * vBoxes, Vec_Int_t * vAdds );
85extern void Acec_TreePrintBox( Acec_Box_t * pBox, Vec_Int_t * vAdds );
86extern Acec_Box_t * Acec_DeriveBox( Gia_Man_t * p, Vec_Bit_t * vIgnore, int fFilterIn, int fFilterOut, int fVerbose );
87extern void Acec_BoxFreeP( Acec_Box_t ** ppBox );
88/*=== acecUtil.c ========================================================*/
89extern void Gia_PolynAnalyzeXors( Gia_Man_t * pGia, int fVerbose );
90extern Vec_Int_t * Gia_PolynCollectLastXor( Gia_Man_t * pGia, int fVerbose );
91/*=== acecUtil.c ========================================================*/
92extern Acec_Box_t * Acec_ProduceBox( Gia_Man_t * p, int fVerbose );
93
94
95
97
98
99
100#endif
101
105
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
void Acec_InsertFadd(Gia_Man_t *pNew, int In[3], int Out[2])
Definition acecNorm.c:53
void Acec_PrintAdders(Vec_Wec_t *vBoxes, Vec_Int_t *vAdds)
Definition acecTree.c:570
Acec_Box_t * Acec_DeriveBox(Gia_Man_t *p, Vec_Bit_t *vIgnore, int fFilterIn, int fFilterOut, int fVerbose)
Definition acecTree.c:754
Vec_Bit_t * Acec_BoothFindPPG(Gia_Man_t *p)
Definition acecMult.c:656
Vec_Int_t * Gia_PolynCoreOrder(Gia_Man_t *pGia, Vec_Int_t *vAdds, Vec_Int_t *vAddCos, Vec_Int_t **pvIns, Vec_Int_t **pvOuts)
ITERATORS ///.
Definition acecCo.c:163
Vec_Int_t * Gia_PolynCollectLastXor(Gia_Man_t *pGia, int fVerbose)
Definition acecUtil.c:57
Vec_Int_t * Acec_MultDetectInputs(Gia_Man_t *p, Vec_Wec_t *vLeafLits, Vec_Wec_t *vRootLits)
Definition acecMult.c:431
Gia_Man_t * Acec_InsertBox(Acec_Box_t *pBox, int fAll)
Definition acecNorm.c:156
Vec_Bit_t * Acec_MultMarkPPs(Gia_Man_t *p)
Definition acecMult.c:509
typedefABC_NAMESPACE_HEADER_START struct Acec_Box_t_ Acec_Box_t
INCLUDES ///.
Definition acecInt.h:40
Acec_Box_t * Acec_ProduceBox(Gia_Man_t *p, int fVerbose)
Definition acecXor.c:375
Vec_Wec_t * Gia_PolynCoreOrderArray(Gia_Man_t *pGia, Vec_Int_t *vAdds, Vec_Int_t *vRootBoxes)
Definition acecCo.c:222
void Acec_TreePrintBox(Acec_Box_t *pBox, Vec_Int_t *vAdds)
Definition acecTree.c:586
void Acec_BoxFreeP(Acec_Box_t **ppBox)
Definition acecTree.c:54
void Gia_PolynAnalyzeXors(Gia_Man_t *pGia, int fVerbose)
Definition acecUtil.c:69
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
Cube * p
Definition exorList.c:222
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
Gia_Man_t * pGia
Definition acecInt.h:43
Vec_Wec_t * vShared
Definition acecInt.h:47
Vec_Wec_t * vUnique
Definition acecInt.h:48
Vec_Wec_t * vRootLits
Definition acecInt.h:46
Vec_Wec_t * vAdds
Definition acecInt.h:44
Vec_Wec_t * vLeafLits
Definition acecInt.h:45
typedefABC_NAMESPACE_HEADER_START struct Vec_Bit_t_ Vec_Bit_t
INCLUDES ///.
Definition vecBit.h:42
typedefABC_NAMESPACE_HEADER_START struct Vec_Wec_t_ Vec_Wec_t
INCLUDES ///.
Definition vecWec.h:42