97 Vec_Int_t * vPerm, * vPermFanin, * vNodFanin, * vDsdLits;
100 int iDsdFanin, iNodFanin, Value, iDsdLit, i, k, j;
103 if ( pDsdObj == NULL )
113 iDsdFanin = pDsdObj->
pFans[0];
116 if ( vPermFanin == NULL )
125 iDsdFanin = pDsdObj->
pFans[1];
128 if ( vPermFanin == NULL )
137 iDsdFanin = pDsdObj->
pFans[2];
140 if ( vPermFanin == NULL )
169 pDsdFanin->
fMark = 0;
177 if ( iNodFanin == 0 )
195 if ( pDsdFanin == NULL )
197 if ( pDsdFanin->
fMark == 1 )
204 if ( vPermFanin == NULL )
211 pDsdFanin->
fMark = 1;
241 unsigned * pTruth0, * pTruth1, * pTruth;
245 return (
unsigned *)
Vec_PtrEntry( vTtElems, (*piInput)++ );
252 for ( i = 0; i <
nWords; i++ )
253 pTruth[i] = pTruth0[i] ^ pTruth1[i];
255 for ( i = 0; i <
nWords; i++ )
256 pTruth[i] = pTruth0[i] & pTruth1[i];
258 for ( i = 0; i <
nWords; i++ )
259 pTruth[i] = pTruth0[i] & ~pTruth1[i];
261 for ( i = 0; i <
nWords; i++ )
262 pTruth[i] = ~pTruth0[i] & pTruth1[i];
264 for ( i = 0; i <
nWords; i++ )
265 pTruth[i] = ~pTruth0[i] & ~pTruth1[i];
295 for ( i = 0; i < (int)pGate->
nPins; i++ )
313 printf(
"Verification failed for gate %d (%s) and node %d.\n",
335 int Entry, Entry2, i, k;
366 printf(
"node %4d : ", pNod->
Id );
367 for ( i = 0; i < (int)pNod->
nSuppSize; i++ )
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
int Amap_LibDeriveGatePerm(Amap_Lib_t *pLib, Amap_Gat_t *pGate, Kit_DsdNtk_t *pNtk, Amap_Nod_t *pNod, char *pArray)
DECLARATIONS ///.
ABC_NAMESPACE_IMPL_START void Amap_LibCollectFanins_rec(Amap_Lib_t *pLib, Amap_Nod_t *pNod, Vec_Int_t *vFanins)
DECLARATIONS ///.
static int Kit_TruthWordNum(int nVars)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Amap_LibVerifyPerm(Amap_Lib_t *pLib, Amap_Gat_t *pGate, Kit_DsdNtk_t *pNtk, Amap_Nod_t *pNod, int *pArray)
static Kit_DsdObj_t * Kit_DsdNtkObj(Kit_DsdNtk_t *pNtk, int Id)
static int Abc_Var2Lit(int Var, int fCompl)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static int Kit_TruthIsEqual(unsigned *pIn0, unsigned *pIn1, int nVars)
static unsigned * Vec_IntFetch(Vec_Int_t *p, int nWords)
Vec_Int_t * Amap_LibCollectFanins(Amap_Lib_t *pLib, Amap_Nod_t *pNod)
static Vec_Ptr_t * Vec_PtrAllocTruthTables(int nVars)
static int Abc_LitIsCompl(int Lit)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define AMAP_MAXINS
INCLUDES ///.
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
#define Kit_DsdObjForEachFaninReverse(pNtk, pObj, iLit, i)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
#define Vec_IntForEachEntryStart(vVec, Entry, i, Start)
static void Vec_IntFreeP(Vec_Int_t **p)
static void Kit_TruthNot(unsigned *pOut, unsigned *pIn, int nVars)
#define ABC_NAMESPACE_IMPL_START
Vec_Int_t * Amap_LibDeriveGatePerm_rec(Amap_Lib_t *pLib, Kit_DsdNtk_t *pNtk, int iLit, Amap_Nod_t *pNod)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static int Vec_IntSize(Vec_Int_t *p)
typedefABC_NAMESPACE_HEADER_START struct Amap_Lib_t_ Amap_Lib_t
INCLUDES ///.
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Abc_Lit2Var(int Lit)
unsigned * Amap_LibVerifyPerm_rec(Amap_Lib_t *pLib, Amap_Nod_t *pNod, Vec_Ptr_t *vTtElems, Vec_Int_t *vTruth, int nWords, int *piInput)
static int Abc_LitRegular(int Lit)
static Amap_Nod_t * Amap_LibNod(Amap_Lib_t *p, int i)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
static void Vec_PtrFree(Vec_Ptr_t *p)