53 if ( pNtkCone == NULL )
61 printf(
"The miter for initial state computation has %d AIG nodes. ",
Abc_NtkNodeNum(pNtkMiter) );
64 RetValue =
Abc_NtkMiterSat( pNtkMiter, (ABC_INT64_T)500000, (ABC_INT64_T)50000000, 0, NULL, NULL );
69 printf(
"Abc_NtkRetimeInitialValues(): The problem is unsatisfiable. DC latch values are used.\n" );
70 else if ( RetValue == -1 )
71 printf(
"Abc_NtkRetimeInitialValues(): The SAT problem timed out. DC latch values are used.\n" );
73 printf(
"Abc_NtkRetimeInitialValues(): The computed counter-example is incorrect.\n" );
95 char * pCube, * pSop = (
char *)pObj->
pData;
96 int nVars, Value, v, ResOr, ResAnd, ResVar;
108 else if ( Value ==
'1' )
153 printf(
"%d outputs (out of %d) have a value mismatch.\n", Counter,
Abc_NtkPoNum(pNtkCone) );
293 fprintf( stdout,
"Abc_NtkRetimeBackwardInitialFinish(): Network check has failed.\n" );
328 for ( f = 0; f < nFrames; f++ )
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
void Abc_NtkRetimeInsertLatchValues(Abc_Ntk_t *pNtk, Vec_Int_t *vValues)
static Vec_Int_t * Vec_IntDup(Vec_Int_t *pVec)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Abc_ObjIsLatch(Abc_Obj_t *pObj)
#define Abc_SopForEachCube(pSop, nFanins, pCube)
static Vec_Int_t * Vec_IntAllocArray(int *pArray, int nSize)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachCo(pNtk, pCo, i)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static int Abc_NtkIsSopLogic(Abc_Ntk_t *pNtk)
#define Abc_CubeForEachVar(pCube, Value, i)
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL int Abc_SopIsExorType(char *pSop)
static abctime Abc_Clock()
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
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 ///.
Abc_Ntk_t * Abc_NtkRetimeBackwardInitialStart(Abc_Ntk_t *pNtk)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
Vec_Int_t * Abc_NtkRetimeInitialValues(Abc_Ntk_t *pNtkCone, Vec_Int_t *vValues, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkCreateTarget(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, Vec_Int_t *vValues)
void Abc_NtkRetimeTranferToCopy(Abc_Ntk_t *pNtk)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Vec_Int_t * Abc_NtkRetimeCollectLatchValues(Abc_Ntk_t *pNtk)
int Abc_ObjSopSimulate(Abc_Obj_t *pObj)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
ABC_DLL int Abc_NtkMiterSat(Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects)
FUNCTION DEFINITIONS ///.
static void Vec_IntPush(Vec_Int_t *p, int Entry)
void Abc_NtkCycleInitStateSop(Abc_Ntk_t *pNtk, int nFrames, int fVerbose)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
static int Abc_LatchIsInit1(Abc_Obj_t *pLatch)
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
#define ABC_NAMESPACE_IMPL_START
static ABC_NAMESPACE_IMPL_START int Abc_NtkRetimeVerifyModel(Abc_Ntk_t *pNtkCone, Vec_Int_t *vValues, int *pModel)
DECLARATIONS ///.
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
void Abc_NtkRetimeBackwardInitialFinish(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew, Vec_Int_t *vValuesOld, int fVerbose)
static int Abc_NtkPiNum(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_SopGetVarNum(char *pSop)
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
void Abc_NtkRetimeTranferFromCopy(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachPo(pNtk, pPo, i)
static Abc_Obj_t * Abc_ObjFanin(Abc_Obj_t *pObj, int i)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_SopGetPhase(char *pSop)
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)
#define Abc_NtkForEachPi(pNtk, pPi, i)
static void Vec_PtrFree(Vec_Ptr_t *p)