59 int fRemove1, fRemove2;
69 pTemp =
Abc_NtkMiterInt( pNtk1, pNtk2, fComb, nPartSize, fImplic, fMulti );
109 printf(
"Abc_NtkMiter: The network check has failed.\n" );
144 pObj->
pCopy = pObjNew;
146 pObj->
pCopy = pObjNew;
150 if ( nPartSize <= 0 )
176 pObj->
pCopy = pObjNew;
178 pObj->
pCopy = pObjNew;
182 if ( nPartSize <= 0 )
283 assert( nPartSize == 0 || fMulti == 0 );
328 if ( nPartSize <= 0 )
340 int nParts, i, k, iCur;
345 for ( i = 0; i < nParts; i++ )
348 for ( k = 0; k < nPartSize; k++ )
350 iCur = i * nPartSize + k;
360 if ( nPartSize == 1 )
427 printf(
"Abc_NtkMiterAnd: The network check has failed.\n" );
497 printf(
"Abc_NtkMiterCofactor: The network check has failed.\n" );
518 Abc_Obj_t * pRoot, * pOutput1, * pOutput2, * pMiter;
563 printf(
"Abc_NtkMiter: The network check has failed.\n" );
585 Abc_Obj_t * pRoot, * pOutput1, * pOutput2, * pMiter;
627 printf(
"Abc_NtkMiter: The network check has failed.\n" );
734 printf(
"Unsatisfiable.\n" );
736 printf(
"Satisfiable. (Constant 1).\n" );
739 printf(
"Satisfiable.\n" );
746 printf(
"Output #%2d : ", i );
750 printf(
"Unsatisfiable.\n" );
752 printf(
"Satisfiable. (Constant 1).\n" );
755 printf(
"Satisfiable.\n" );
785 sprintf( Buffer,
"%s_%d_frames", pNtk->
pName, nFrames );
811 printf(
"Warning: %d uninitialized latches are replaced by free PI variables.\n", Counter );
816 for ( i = 0; i < nFrames; i++ )
838 printf(
"Abc_NtkFrames: The network check has failed.\n" );
867 sprintf( Buffer,
"_%02d", iFrame );
887 printf(
"F = %4d : Total = %6d. Nodes = %6d. Prop = %s.\n",
1085 Abc_Obj_t * pNodeC, * pNodeA, * pNodeB, * pNode;
1094 printf(
"The root of the miter is not an EXOR gate.\n" );
1124 nCommon += pNode->
fMarkA;
1128 printf(
"First cone = %6d. Second cone = %6d. Common = %6d.\n", vNodes1->nSize, vNodes2->nSize, nCommon );
1136 printf(
"Abc_NtkDemiter: The network check has failed.\n" );
1184 printf(
"Abc_NtkOrPos: The network check has failed.\n" );
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_DLL Abc_Obj_t * Abc_AigOr(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
static int Abc_LatchIsInitNone(Abc_Obj_t *pLatch)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
static Abc_Obj_t * Abc_ObjChild1Copy(Abc_Obj_t *pObj)
Abc_Ntk_t * Abc_NtkMiterQuantify(Abc_Ntk_t *pNtk, int In, int fExist)
ABC_DLL Abc_Obj_t * Abc_NtkDupObj(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCopyName)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
static int Abc_AigNodeIsConst(Abc_Obj_t *pNode)
static void Abc_NtkAddFrame(Abc_Ntk_t *pNetNew, Abc_Ntk_t *pNet, int iFrame)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
static int Abc_LatchIsInit0(Abc_Obj_t *pLatch)
#define Abc_NtkForEachCo(pNtk, pCo, i)
ABC_DLL int Abc_NtkCompareSignals(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOnlyPis, int fComb)
static Abc_Obj_t * Abc_NtkCi(Abc_Ntk_t *pNtk, int i)
static ABC_NAMESPACE_IMPL_START Abc_Ntk_t * Abc_NtkMiterInt(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fComb, int nPartSize, int fImplic, int fMulti)
DECLARATIONS ///.
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
static int Vec_PtrSize(Vec_Ptr_t *p)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_NtkCo(Abc_Ntk_t *pNtk, int i)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
#define Abc_AigForEachAnd(pNtk, pNode, i)
ABC_DLL Abc_Obj_t * Abc_AigXor(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
static Abc_Obj_t * Abc_ObjChild0(Abc_Obj_t *pObj)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_AigAnd(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
static Abc_Obj_t * Abc_ObjChild0Copy(Abc_Obj_t *pObj)
void Abc_NtkMiterAddCone(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkMiter, Abc_Obj_t *pRoot)
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
Abc_Ntk_t * Abc_NtkMiterQuantifyPis(Abc_Ntk_t *pNtk)
static void Abc_NtkAddFrame2(Abc_Ntk_t *pNtkFrames, Abc_Ntk_t *pNtk, int iFrame, Vec_Ptr_t *vNodes, AddFrameMapping addFrameMapping, void *arg)
ABC_DLL Abc_Obj_t * Abc_NtkDupBox(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pBox, int fCopyName)
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
ABC_DLL Abc_Obj_t * Abc_AigMiter(Abc_Aig_t *pMan, Vec_Ptr_t *vPairs, int fImplic)
#define ABC_NAMESPACE_IMPL_END
static int Abc_LatchIsInitDc(Abc_Obj_t *pLatch)
static int Abc_AigNodeIsAnd(Abc_Obj_t *pNode)
int Abc_NtkMiterIsConstant(Abc_Ntk_t *pMiter)
Abc_Ntk_t * Abc_NtkMiter(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fComb, int nPartSize, int fImplic, int fMulti)
FUNCTION DEFINITIONS ///.
#define Abc_NtkForEachLatch(pNtk, pObj, i)
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkMiterAnd(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOr, int fCompl2)
#define ABC_NAMESPACE_IMPL_START
Abc_Ntk_t * Abc_NtkFrames2(Abc_Ntk_t *pNtk, int nFrames, int fInitial, AddFrameMapping addFrameMapping, void *arg)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static void Abc_NtkMiterAddOne(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkMiter)
static Abc_Obj_t * Abc_ObjRegular(Abc_Obj_t *p)
static Abc_Obj_t * Abc_NtkPo(Abc_Ntk_t *pNtk, int i)
#define Abc_NtkForEachCi(pNtk, pCi, i)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
static int Abc_NtkHasOnlyLatchBoxes(Abc_Ntk_t *pNtk)
static void Abc_NtkMiterPrepare(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, Abc_Ntk_t *pNtkMiter, int fComb, int nPartSize, int fMulti)
ABC_DLL int Abc_NtkIsDfsOrdered(Abc_Ntk_t *pNtk)
void Abc_NtkMiterReport(Abc_Ntk_t *pMiter)
Abc_Ntk_t * Abc_NtkMiterCofactor(Abc_Ntk_t *pNtk, Vec_Int_t *vPiValues)
static Abc_Obj_t * Abc_ObjNotCond(Abc_Obj_t *p, int c)
static void Vec_PtrClear(Vec_Ptr_t *p)
Abc_Ntk_t * Abc_NtkFrames(Abc_Ntk_t *pNtk, int nFrames, int fInitial, int fVerbose)
static Abc_Obj_t * Abc_ObjNot(Abc_Obj_t *p)
void(* AddFrameMapping)(Abc_Obj_t *, Abc_Obj_t *, int, void *)
int Abc_NtkCombinePos(Abc_Ntk_t *pNtk, int fAnd, int fXor)
Abc_Ntk_t * Abc_NtkMiterForCofactors(Abc_Ntk_t *pNtk, int Out, int In1, int In2)
static Abc_Obj_t * Abc_NtkPi(Abc_Ntk_t *pNtk, int i)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
#define Abc_NtkForEachPo(pNtk, pPo, i)
int Abc_NtkDemiter(Abc_Ntk_t *pNtk)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static void Abc_NtkMiterFinalize(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, Abc_Ntk_t *pNtkMiter, int fComb, int nPartSize, int fImplic, int fMulti)
static int Abc_ObjIsComplement(Abc_Obj_t *p)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
ABC_DLL void Abc_NtkOrderCisCos(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeIsExorType(Abc_Obj_t *pNode)
ABC_DLL Abc_Obj_t * Abc_NodeRecognizeMux(Abc_Obj_t *pNode, Abc_Obj_t **ppNodeT, Abc_Obj_t **ppNodeE)
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)
#define Abc_NtkForEachPi(pNtk, pPi, i)
static void Vec_PtrFree(Vec_Ptr_t *p)