59 for ( f = 0; f < nFrames; f++ )
95 if ( pAig->nConstrs > 0 )
97 printf(
"The AIG manager should have no constraints.\n" );
191 int RetValue, nFramesFinished = -1;
199 printf(
"The leading sequence has length 0. Temporal decomposition is not performed.\n" );
205 printf(
"The leading sequence has length 1. Temporal decomposition is not performed.\n" );
210 int Entry, i, iLast = -1;
212 iLast = Entry ? i :iLast;
213 if ( iLast > 0 && iLast < nFrames )
215 Abc_Print( 1,
"Reducing frame count from %d to %d to fit the last transient.\n", nFrames, iLast );
219 Abc_Print( 1,
"Using computed frame number (%d).\n", nFrames );
222 Abc_Print( 1,
"Using user-given frame number (%d).\n", nFrames );
226 RetValue =
Saig_BmcPerform( pAig, 0, nFrames, 2000, TimeOut, nConfLimit, 0, fVerbose, 0, &nFramesFinished, 0 );
230 printf(
"A cex found in the first %d frames.\n", nFrames );
233 if ( nFramesFinished + 1 < nFrames )
236 if ( iLastBefore < 1 || !fUseTransSigs )
239 printf(
"BMC for %d frames could not be completed. A cex may exist!\n", nFrames );
242 assert( iLastBefore < nFramesFinished );
243 printf(
"BMC succeeded to frame %d. Adjusting frame count to be (%d) based on the last transient signal.\n", nFramesFinished, iLastBefore );
244 nFrames = iLastBefore;
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManStop(Aig_Man_t *p)
int Saig_ManPhasePrefixLength(Aig_Man_t *p, int fVerbose, int fVeryVerbose, Vec_Int_t **pvTrans)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
#define Vec_IntForEachEntryReverse(vVec, pEntry, i)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
static Aig_Obj_t * Aig_ManConst0(Aig_Man_t *p)
#define Aig_ManForEachCo(p, pObj, i)
int Saig_BmcPerform(Aig_Man_t *pAig, int nStart, int nFramesMax, int nNodesMax, int nTimeOut, int nConfMaxOne, int nConfMaxAll, int fVerbose, int fVerbOverwrite, int *piFrames, int fSilent)
ABC_NAMESPACE_IMPL_START Aig_Man_t * Saig_ManTemporFrames(Aig_Man_t *pAig, int nFrames)
DECLARATIONS ///.
int Vec_IntLastNonZeroBeforeLimit(Vec_Int_t *vTemp, int Limit)
static int Aig_ManNodeNum(Aig_Man_t *p)
Aig_Man_t * Saig_ManTempor(Aig_Man_t *pAig, int nFrames, int TimeOut, int nConfLimit, int fUseBmc, int fUseTransSigs, int fVerbose, int fVeryVerbose)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
static int Aig_ManCoNum(Aig_Man_t *p)
#define Aig_ManForEachNode(p, pObj, i)
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
#define Saig_ManForEachLi(p, pObj, i)
#define ABC_NAMESPACE_IMPL_END
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
#define Saig_ManForEachLo(p, pObj, i)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
static void Vec_IntFreeP(Vec_Int_t **p)
static void Abc_Print(int level, const char *format,...)
static int Aig_ManObjNumMax(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_START
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
static int Aig_ManRegNum(Aig_Man_t *p)
Aig_Obj_t * Aig_Mux(Aig_Man_t *p, Aig_Obj_t *pC, Aig_Obj_t *p1, Aig_Obj_t *p0)
#define Saig_ManForEachPo(p, pObj, i)
Aig_Man_t * Saig_ManTemporDecompose(Aig_Man_t *pAig, int nFrames)
char * Abc_UtilStrsav(char *s)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
void Aig_ManCleanData(Aig_Man_t *p)
int Aig_ManCleanup(Aig_Man_t *p)
#define Saig_ManForEachPi(p, pObj, i)