50 Aig_ManConst1(
p->pFrames )->fMarkA = 1;
51 Aig_ManConst1(
p->pFrames )->fMarkB = 1;
52 for ( f = 0; f <
p->nFrames; f++ )
56 pObjFrames = Ssw_ObjFrame(
p, pObj, f );
57 assert( Aig_ObjIsCi(pObjFrames) );
78 assert( !Aig_IsComplement(pObj) );
82 if ( Aig_ObjIsCi(pObj) )
84 Vec_PtrPush( vNewPis, pObj );
87 assert( Aig_ObjIsNode(pObj) );
107 assert( !Aig_IsComplement(pObj) );
111 if ( pObj->
Id >
p->nSRMiterMaxId )
113 if ( Aig_ObjIsCo(pObj) )
116 if ( Aig_ObjCioId(pObj) >= Aig_ManCoNum(
p->pFrames)-Aig_ManRegNum(
p->pAig) )
119 Vec_IntPush( vNewPos, Aig_ObjCioId(pObj)/2 );
123 assert(
p->pFrames->pFanData != NULL );
146 int i, iConstr, RetValue;
150 pReprFrames = Aig_Regular( Ssw_ObjFrame(
p, pRepr,
p->pPars->nFramesK ) );
151 pObjFrames = Aig_Regular( Ssw_ObjFrame(
p, pObj,
p->pPars->nFramesK ) );
152 assert( pReprFrames != pObjFrames );
170 Vec_PtrClear(
p->vNewLos );
177 Vec_IntClear(
p->vNewPos );
183 pObj0 = Aig_ManCo(
p->pFrames, 2*iConstr );
184 pObj1 = Aig_ManCo(
p->pFrames, 2*iConstr+1 );
193 if (
p->pMSat->pSat->qtail !=
p->pMSat->pSat->qhead )
220 pObjFraig = Ssw_ObjFrame(
p, pObj, 0 );
221 if ( pObjFraig == Aig_ManConst0(
p->pFrames) )
226 assert( !Aig_IsComplement(pObjFraig) );
227 assert( Aig_ObjIsCi(pObjFraig) );
228 pInfo = (
unsigned *)Vec_PtrEntry(
p->vSimInfo, Aig_ObjCioId(pObjFraig) );
232 for ( f = 1; f <
p->nFrames; f++ )
236 pObjFraig = Ssw_ObjFrame(
p, pObj, f );
237 assert( !Aig_IsComplement(pObjFraig) );
238 assert( Aig_ObjIsCi(pObjFraig) );
239 pInfo = (
unsigned *)Vec_PtrEntry(
p->vSimInfo, Aig_ObjCioId(pObjFraig) );
245 for ( ; f < nFrames; f++ )
265 int RetValue1, RetValue2;
277 Vec_PtrCleanSimInfo(
p->vSimInfo, 0, 1 );
280p->timeSimSat += Abc_Clock() - clk;
281 return RetValue1 > 0 || RetValue2 > 0;
298 int i, k, nSize, RetValue1, RetValue2;
305 Vec_PtrClear(
p->vResimConsts );
306 Vec_PtrClear(
p->vResimClasses );
308 for ( i =
p->iNodeStart; i < p->iNodeLast +
p->pPars->nResimDelta; i++ )
310 if ( i >= Aig_ManObjNumMax(
p->pAig ) )
312 pObj = Aig_ManObj(
p->pAig, i );
315 if ( Ssw_ObjIsConst1Cand(
p->pAig, pObj) )
317 Vec_PtrPush(
p->vResimConsts, pObj );
320 pRepr = Aig_ObjRepr(
p->pAig, pObj);
323 if ( Aig_ObjIsTravIdCurrent(
p->pAig, pRepr) )
325 Aig_ObjSetTravIdCurrent(
p->pAig, pRepr);
326 Vec_PtrPush(
p->vResimClasses, pRepr );
341 for ( k = 0; k < nSize; k++ )
355 Vec_PtrCleanSimInfo(
p->vSimInfo, 0, 1 );
358p->timeSimSat += Abc_Clock() - clk;
359 return RetValue1 > 0 || RetValue2 > 0;
385 p->nSRMiterMaxId = Aig_ManObjNumMax(
p->pFrames );
388 f =
p->pPars->nFramesK;
389 Ssw_ObjSetFrame(
p, Aig_ManConst1(
p->pAig), f, Aig_ManConst1(
p->pFrames) );
395p->timeReduce += Abc_Clock() - clk;
399 p->vSimInfo = Vec_PtrAllocSimInfo( Aig_ManCiNum(
p->pFrames), 1 );
400 Vec_PtrCleanSimInfo(
p->vSimInfo, 0, 1 );
405 if (
p->pPars->fVerbose )
410 if (
p->iNodeStart == 0 )
412 if (
p->pPars->fVerbose )
413 Bar_ProgressUpdate( pProgress, i, NULL );
414 if ( Saig_ObjIsLo(
p->pAig, pObj) )
416 else if ( Aig_ObjIsNode(pObj) )
418 pObjNew =
Aig_And(
p->pFrames, Ssw_ObjChild0Fra(
p, pObj, f), Ssw_ObjChild1Fra(
p, pObj, f) );
419 Ssw_ObjSetFrame(
p, pObj, f, pObjNew );
423 if (
p->pMSat->pSat == NULL ||
424 (
p->pPars->nSatVarMax2 &&
425 p->pMSat->nSatVars >
p->pPars->nSatVarMax2 &&
426 p->nRecycleCalls >
p->pPars->nRecycleCalls2) )
429 if (
p->nPatterns > 0 )
432 if (
p->pPars->fLocalSim )
447 p->nVarsMax = Abc_MaxInt(
p->nVarsMax,
p->pMSat->nSatVars );
448 p->nCallsMax = Abc_MaxInt(
p->nCallsMax,
p->pMSat->nSolverCalls );
452 p->nRecycleCalls = 0;
458 if (
p->nPatterns == 32 )
461 if (
p->pPars->fLocalSim )
469 if (
p->nPatterns > 0 )
472 if (
p->pPars->fLocalSim )
478 if (
p->pPars->fVerbose )
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManFanoutStart(Aig_Man_t *p)
FUNCTION DEFINITIONS ///.
void Aig_ManSetCioIds(Aig_Man_t *p)
#define Aig_ManForEachObj(p, pObj, i)
#define Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
struct Aig_Obj_t_ Aig_Obj_t
void Aig_ManCleanMarkAB(Aig_Man_t *p)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
void Bar_ProgressStop(Bar_Progress_t *p)
Bar_Progress_t * Bar_ProgressStart(FILE *pFile, int nItemsTotal)
FUNCTION DEFINITIONS ///.
struct Bar_Progress_t_ Bar_Progress_t
BASIC TYPES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
#define Saig_ManForEachPi(p, pObj, i)
int sat_solver_simplify(sat_solver *s)
Aig_Man_t * Ssw_FramesWithClasses(Ssw_Man_t *p)
Aig_Obj_t ** Ssw_ClassesReadClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, int *pnSize)
int Ssw_ClassesRefineConst1Group(Ssw_Cla_t *p, Vec_Ptr_t *vRoots, int fRecursive)
void Ssw_ClassesClearRefined(Ssw_Cla_t *p)
int Ssw_ClassesRefineConst1(Ssw_Cla_t *p, int fRecursive)
int Ssw_ClassesRefineOneClass(Ssw_Cla_t *p, Aig_Obj_t *pReprOld, int fRecursive)
int Ssw_ClassesRefine(Ssw_Cla_t *p, int fRecursive)
void Ssw_SatStop(Ssw_Sat_t *p)
void Ssw_CnfNodeAddToSolver(Ssw_Sat_t *p, Aig_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START Ssw_Sat_t * Ssw_SatStart(int fPolarFlip)
DECLARATIONS ///.
int Ssw_ManSweepResimulateDynLocal(Ssw_Man_t *p, int f)
int Ssw_ManSweepDyn(Ssw_Man_t *p)
void Ssw_ManLoadSolver(Ssw_Man_t *p, Aig_Obj_t *pRepr, Aig_Obj_t *pObj)
void Ssw_ManCollectPis_rec(Aig_Obj_t *pObj, Vec_Ptr_t *vNewPis)
int Ssw_ManSweepResimulateDyn(Ssw_Man_t *p, int f)
void Ssw_ManSweepTransferDyn(Ssw_Man_t *p)
ABC_NAMESPACE_IMPL_START void Ssw_ManLabelPiNodes(Ssw_Man_t *p)
DECLARATIONS ///.
void Ssw_ManCollectPos_rec(Ssw_Man_t *p, Aig_Obj_t *pObj, Vec_Int_t *vNewPos)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
void Ssw_SmlAssignRandomFrame(Ssw_Sml_t *p, Aig_Obj_t *pObj, int iFrame)
void Ssw_SmlSimulateOne(Ssw_Sml_t *p)
int Ssw_ManSweepNode(Ssw_Man_t *p, Aig_Obj_t *pObj, int f, int fBmc, Vec_Int_t *vPairs)
void Ssw_SmlSimulateOneDyn_rec(Ssw_Sml_t *p, Aig_Obj_t *pObj, int f, int *pVisited, int nVisCounter)
void Ssw_SmlObjSetWord(Ssw_Sml_t *p, Aig_Obj_t *pObj, unsigned Word, int iWord, int iFrame)
void Ssw_SmlObjAssignConst(Ssw_Sml_t *p, Aig_Obj_t *pObj, int fConst1, int iFrame)
int Ssw_NodesAreConstrained(Ssw_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
int Ssw_SmlNumFrames(Ssw_Sml_t *p)
#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 ///.