48 pPars->nSimWords = 32;
49 pPars->dSimSatur = 0.005;
50 pPars->fPatScores = 0;
55 pPars->dActConeRatio = 0.3;
56 pPars->dActConeBumpMax = 10.0;
57 pPars->nBTLimitNode = 100;
58 pPars->nBTLimitMiter = 500000;
79 pPars->dSimSatur = 0.005;
80 pPars->fPatScores = 0;
83 pPars->dActConeRatio = 0.3;
84 pPars->dActConeBumpMax = 10.0;
85 pPars->nBTLimitNode = 10000000;
86 pPars->nBTLimitMiter = 500000;
90 pPars->fLatchCorr = 0;
113 p->pManAig = pManAig;
114 p->nSizeAlloc = Aig_ManObjNumMax( pManAig );
115 p->nFramesAll = pPars->nFramesK + 1;
117 p->nPatWords = Abc_BitWordNum( (Aig_ManCiNum(pManAig) - Aig_ManRegNum(pManAig)) *
p->nFramesAll + Aig_ManRegNum(pManAig) );
118 p->pPatWords =
ABC_ALLOC(
unsigned,
p->nPatWords );
119 p->vPiVars = Vec_PtrAlloc( 100 );
149 for ( i = 0; i <
p->nMemAlloc; i++ )
150 if (
p->pMemFanins[i] &&
p->pMemFanins[i] != (
void *)1 )
151 Vec_PtrFree(
p->pMemFanins[i] );
153 if (
p->nMemAlloc < nNodesMax )
155 int nMemAllocNew = nNodesMax + 5000;
157 p->pMemSatNums =
ABC_REALLOC(
int,
p->pMemSatNums, nMemAllocNew );
158 p->nMemAlloc = nMemAllocNew;
162 memset(
p->pMemSatNums, 0,
sizeof(
int) *
p->nMemAlloc );
181 assert(
p->pManFraig == NULL );
184 pManFraig->pName = Abc_UtilStrsav(
p->pManAig->pName );
185 pManFraig->pSpec = Abc_UtilStrsav(
p->pManAig->pSpec );
186 pManFraig->nRegs =
p->pManAig->nRegs;
187 pManFraig->nAsserts =
p->pManAig->nAsserts;
189 Fra_ObjSetFraig( Aig_ManConst1(
p->pManAig), 0, Aig_ManConst1(pManFraig) );
196 p->nMemAlloc =
p->nSizeAlloc;
200 memset(
p->pMemSatNums, 0,
sizeof(
int) *
p->nMemAlloc );
202 assert( pManFraig->pData == NULL );
242 if (
p->pPars->fVerbose )
247 if (
p->pManAig->pObjCopies )
249 p->pManAig->pObjCopies =
p->pMemFraig;
253 if (
p->vTimeouts ) Vec_PtrFree(
p->vTimeouts );
254 if (
p->vPiVars ) Vec_PtrFree(
p->vPiVars );
258 if (
p->vCex ) Vec_IntFree(
p->vCex );
259 if (
p->vOneHots ) Vec_IntFree(
p->vOneHots );
280 double nMemory = 1.0*Aig_ManObjNumMax(
p->pManAig)*(
p->pSml->nWordsTotal*
sizeof(unsigned)+6*
sizeof(
void*))/(1<<20);
281 printf(
"SimWord = %d. Round = %d. Mem = %0.2f MB. LitBeg = %d. LitEnd = %d. (%6.2f %%).\n",
282 p->pPars->nSimWords,
p->pSml->nSimRounds, nMemory,
p->nLitsBeg,
p->nLitsEnd, 100.0*
p->nLitsEnd/(
p->nLitsBeg?
p->nLitsBeg:1) );
283 printf(
"Proof = %d. Cex = %d. Fail = %d. FailReal = %d. C-lim = %d. ImpRatio = %6.2f %%\n",
285 printf(
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).\n",
286 p->nNodesBeg,
p->nNodesEnd, 100.0*(
p->nNodesBeg-
p->nNodesEnd)/(
p->nNodesBeg?
p->nNodesBeg:1),
287 p->nRegsBeg,
p->nRegsEnd, 100.0*(
p->nRegsBeg-
p->nRegsEnd)/(
p->nRegsBeg?
p->nRegsBeg:1) );
290 ABC_PRT(
"AIG simulation ",
p->pSml->timeSim );
291 ABC_PRT(
"AIG traversal ",
p->timeTrav );
294 ABC_PRT(
"AIG rewriting ",
p->timeRwr );
296 ABC_PRT(
"SAT solving ",
p->timeSat );
297 ABC_PRT(
" Unsat ",
p->timeSatUnsat );
299 ABC_PRT(
" Fail ",
p->timeSatFail );
300 ABC_PRT(
"Class refining ",
p->timeRef );
301 ABC_PRT(
"TOTAL RUNTIME ",
p->timeTotal );
302 if (
p->time1 ) {
ABC_PRT(
"time1 ",
p->time1 ); }
304 printf(
"Speculations = %d.\n",
p->nSpeculs );
#define ABC_ALLOC(type, num)
#define ABC_REALLOC(type, obj, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManCleanMarkB(Aig_Man_t *p)
#define Aig_ManForEachObj(p, pObj, i)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
#define Aig_ManForEachCo(p, pObj, i)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
unsigned Aig_ManRandom(int fReset)
Fra_Man_t * Fra_ManStart(Aig_Man_t *pManAig, Fra_Par_t *pPars)
void Fra_ParamsDefaultSeq(Fra_Par_t *pPars)
Aig_Man_t * Fra_ManPrepareComb(Fra_Man_t *p)
void Fra_ManStop(Fra_Man_t *p)
void Fra_ManFinalizeComb(Fra_Man_t *p)
void Fra_ManClean(Fra_Man_t *p, int nNodesMax)
void Fra_ManPrint(Fra_Man_t *p)
ABC_NAMESPACE_IMPL_START void Fra_ParamsDefault(Fra_Par_t *pPars)
DECLARATIONS ///.
Fra_Cla_t * Fra_ClassesStart(Aig_Man_t *pAig)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Fra_Par_t_ Fra_Par_t
INCLUDES ///.
void Fra_ClassesStop(Fra_Cla_t *p)
void Fra_OneHotEstimateCoverage(Fra_Man_t *p, Vec_Int_t *vOneHots)
void Fra_SmlStop(Fra_Sml_t *p)
struct Fra_Man_t_ Fra_Man_t
double Fra_ImpComputeStateSpaceRatio(Fra_Man_t *p)
void sat_solver_delete(sat_solver *s)
void Sat_SolverPrintStats(FILE *pFile, sat_solver *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.