48 assert( !Abc_ObjIsComplement(pNode) );
71 Abc_Obj_t * pObj, * pNext, * pFanin, * pOutput, * pObjNew;
73 assert( Abc_NtkIsStrash(pNtk) );
74 assert( iVar < Abc_NtkCiNum(pNtk) );
87 pObj->
pCopy = Abc_NtkCreatePi( pMiter );
93 pObj = Abc_NtkCi( pNtk, iVar );
101 for ( pNext = pObj? pObj->
pCopy : pObj; pObj; pObj = pNext, pNext = pObj? pObj->
pCopy : pObj )
103 pFanin = Abc_ObjFanin0(pObj);
104 if ( !Abc_NodeIsTravIdCurrent(pFanin) )
106 pFanin = Abc_ObjFanin1(pObj);
107 if ( !Abc_NodeIsTravIdCurrent(pFanin) )
113 Vec_PtrFree( vNodes );
119 if ( !Abc_NodeIsTravIdCurrent(pObj) )
122 if ( i == Abc_NtkCoNum(pNtk) - 1 )
134 pObjNew = Abc_NtkCreatePo(pMiter);
140 printf(
"Abc_NtkSensitivityMiter: The network check has failed.\n" );
168 assert( Abc_NtkIsStrash(pNtk) );
169 assert( Abc_NtkLatchNum(pNtk) == 0 );
175 vResult = Vec_IntAlloc( 100 );
179 Extra_ProgressBarUpdate( pProgress, i, NULL );
184 if ( RetValue == -1 )
185 Vec_IntPush( vResult, i );
186 else if ( RetValue == 0 )
189 if ( pSimInfo[0] != 1 )
190 printf(
"ERROR in Abc_NtkMiterProve(): Generated counter-example is invalid.\n" );
194 Vec_IntPush( vResult, i );
201 printf(
"The outputs are sensitive to %d (out of %d) inputs:\n",
202 Vec_IntSize(vResult), Abc_NtkCiNum(pNtk) );
204 printf(
"%d ", RetValue );
ABC_NAMESPACE_IMPL_START Abc_Obj_t * Abc_NtkSensitivityMiter_rec(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pNode)
DECLARATIONS ///.
Abc_Ntk_t * Abc_NtkSensitivityMiter(Abc_Ntk_t *pNtk, int iVar)
Vec_Int_t * Abc_NtkSensitivity(Abc_Ntk_t *pNtk, int nConfLim, int fVerbose)
struct Abc_Obj_t_ Abc_Obj_t
#define Abc_NtkForEachCo(pNtk, pCo, i)
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL Abc_Obj_t * Abc_AigXor(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
struct Abc_Aig_t_ Abc_Aig_t
struct Abc_Ntk_t_ Abc_Ntk_t
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
ABC_DLL int * Abc_NtkVerifySimulatePattern(Abc_Ntk_t *pNtk, int *pModel)
ABC_DLL Abc_Obj_t * Abc_AigAnd(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL Abc_Obj_t * Abc_AigOr(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
#define Abc_NtkForEachCi(pNtk, pCi, i)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
ABC_NAMESPACE_IMPL_START typedef char ProgressBar
void Prove_ParamsSetDefault(Prove_Params_t *pParams)
FUNCTION DEFINITIONS ///.
struct Prove_ParamsStruct_t_ Prove_Params_t
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.