51 if ( pCube->
nLits == 0 )
62 if ( pCube->
nLits == 1 )
67 assert( Lit == 1 || Lit == 2 );
69 if ( (Lit == 1) ^ fCompl )
76 for ( i = 0; i < vLits->nSize; i++ )
81 assert( Lit == 1 || Lit == 2 );
106 Abc_Obj_t * pFaninNew, * pNodeNew, * pFanin;
108 int Entry, nCubes, i;
146 else if ( nCubes == 1 )
168 pObj->
pCopy = pNodeNew;
203 printf(
"Abc_NtkCovDerive: The network check has failed.\n" );
251 if ( pCube->
nLits == 0 )
258 if ( pCube->
nLits == 1 )
263 assert( Lit == 1 || Lit == 2 );
273 for ( i = 0; i < vLits->nSize; i++ )
278 assert( Lit == 1 || Lit == 2 );
303 Abc_Obj_t * pFaninNew, * pNodeNew, * pFanin;
305 int Entry, nCubes, i;
328 else if ( nCubes == 1 )
341 pObj->
pCopy = pNodeNew;
376 printf(
"Abc_NtkCovDeriveInv: The network check has failed.\n" );
403 int i, Entry, nCubes, Type;
448 printf(
"%d ", Entry );
461 else if ( nCubes == 1 )
489 return pObj->
pCopy = pNodeNew;
531 printf(
"Abc_NtkCovDerive: The network check has failed.\n" );
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
Abc_Obj_t * Abc_NtkCovDeriveNodeInv_rec(Cov_Man_t *p, Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCompl)
static Vec_Int_t * Abc_ObjGetSupp(Abc_Obj_t *pObj)
static int Abc_ObjIsCi(Abc_Obj_t *pObj)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static char * Vec_StrArray(Vec_Str_t *p)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
ABC_DLL char * Abc_SopCreateAnd(Mem_Flex_t *pMan, int nVars, int *pfCompl)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
void Min_CoverCreate(Vec_Str_t *vCover, Min_Cube_t *pCover, char Type)
#define Abc_NtkForEachCo(pNtk, pCo, i)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static Vec_Str_t * Vec_StrAlloc(int nCap)
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static Min_Cube_t * Abc_ObjGetCover2(Abc_Obj_t *pObj)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Abc_Obj_t * Abc_NtkCovDeriveInv(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCompl)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
Abc_Ntk_t * Abc_NtkCovDeriveClean(Cov_Man_t *p, Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopRegister(Mem_Flex_t *pMan, char *pName)
DECLARATIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
static void Vec_StrFree(Vec_Str_t *p)
static int Min_CubeGetVar(Min_Cube_t *p, int Var)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
ABC_DLL void Abc_NtkFinalize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
static int Min_CoverCountCubes(Min_Cube_t *pCover)
ABC_NAMESPACE_IMPL_START Abc_Obj_t * Abc_NtkCovDeriveCube(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, Min_Cube_t *pCube, Vec_Int_t *vSupp, int fCompl)
DECLARATIONS ///.
Abc_Obj_t * Abc_NtkCovDeriveNode_rec(Cov_Man_t *p, Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int Level)
Abc_Obj_t * Abc_NtkCovDeriveCubeInv(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, Min_Cube_t *pCube, Vec_Int_t *vSupp)
#define ABC_NAMESPACE_IMPL_START
Abc_Ntk_t * Abc_NtkCovDeriveRegular(Cov_Man_t *p, Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
static void Min_CubeGetLits(Min_Cube_t *pCube, Vec_Int_t *vLits)
ABC_DLL void Abc_SopComplement(char *pSop)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
#define Min_CoverForEachCube(pCover, pCube)
ABC_DLL char * Abc_SopCreateXorSpecial(Mem_Flex_t *pMan, int nVars)
static Abc_Obj_t * Abc_NtkCreateNode(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Cov_Man_t_ Cov_Man_t
DECLARATIONS ///.
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
static Min_Cube_t * Abc_ObjGetCover(Abc_Obj_t *pObj, int Pol)
Abc_Obj_t * Abc_NtkCovDerive_rec(Cov_Man_t *p, Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj)
Abc_Ntk_t * Abc_NtkCovDerive(Cov_Man_t *p, Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.