49 assert( Saig_ManRegNum(pAig) > 0 );
57 p->nFrames = pPars->nFramesK + 1;
59 p->vCommon = Vec_PtrAlloc( 100 );
62 p->nPatWords = Abc_BitWordNum( Saig_ManPiNum(pAig) *
p->nFrames + Saig_ManRegNum(pAig) );
65 p->vNewLos = Vec_PtrAlloc( 100 );
66 p->vNewPos = Vec_IntAlloc( 100 );
67 p->vResimConsts = Vec_PtrAlloc( 100 );
68 p->vResimClasses = Vec_PtrAlloc( 100 );
89 nEquivs += ( Aig_ObjRepr(
p->pAig, pObj) != NULL );
106 double nMemory = 1.0*Aig_ManObjNumMax(
p->pAig)*
p->nFrames*(2*
sizeof(int)+2*
sizeof(
void*))/(1<<20);
108 Abc_Print( 1,
"Parameters: F = %d. AddF = %d. C-lim = %d. Constr = %d. MaxLev = %d. Mem = %0.2f MB.\n",
109 p->pPars->nFramesK,
p->pPars->nFramesAddSim,
p->pPars->nBTLimit, Saig_ManConstrNum(
p->pAig),
p->pPars->nMaxLevs, nMemory );
110 Abc_Print( 1,
"AIG : PI = %d. PO = %d. Latch = %d. Node = %d. Ave SAT vars = %d.\n",
111 Saig_ManPiNum(
p->pAig), Saig_ManPoNum(
p->pAig), Saig_ManRegNum(
p->pAig), Aig_ManNodeNum(
p->pAig),
112 0/(
p->pPars->nIters+1) );
113 Abc_Print( 1,
"SAT calls : Proof = %d. Cex = %d. Fail = %d. Lits proved = %d.\n",
115 Abc_Print( 1,
"SAT solver: Vars max = %d. Calls max = %d. Recycles = %d. Sim rounds = %d.\n",
116 p->nVarsMax,
p->nCallsMax,
p->nRecyclesTotal,
p->nSimRounds );
117 Abc_Print( 1,
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).\n",
118 p->nNodesBeg,
p->nNodesEnd, 100.0*(
p->nNodesBeg-
p->nNodesEnd)/(
p->nNodesBeg?
p->nNodesBeg:1),
119 p->nRegsBeg,
p->nRegsEnd, 100.0*(
p->nRegsBeg-
p->nRegsEnd)/(
p->nRegsBeg?
p->nRegsBeg:1) );
121 p->timeOther =
p->timeTotal-
p->timeBmc-
p->timeReduce-
p->timeMarkCones-
p->timeSimSat-
p->timeSat;
123 ABC_PRTP(
"Spec reduce",
p->timeReduce,
p->timeTotal );
124 ABC_PRTP(
"Mark cones ",
p->timeMarkCones,
p->timeTotal );
125 ABC_PRTP(
"Sim SAT ",
p->timeSimSat,
p->timeTotal );
126 ABC_PRTP(
"SAT solving",
p->timeSat,
p->timeTotal );
127 ABC_PRTP(
" unsat ",
p->timeSatUnsat,
p->timeTotal );
128 ABC_PRTP(
" sat ",
p->timeSatSat,
p->timeTotal );
129 ABC_PRTP(
" undecided",
p->timeSatUndec,
p->timeTotal );
130 ABC_PRTP(
"Other ",
p->timeOther,
p->timeTotal );
131 ABC_PRTP(
"TOTAL ",
p->timeTotal,
p->timeTotal );
134 if (
p->pAig->nConstrs )
136 Abc_Print( 1,
"Statistics reflecting the use of constraints:\n" );
137 Abc_Print( 1,
"Total cones = %6d. Constraint cones = %6d. (%6.2f %%)\n",
138 p->nConesTotal,
p->nConesConstr, 100.0*
p->nConesConstr/
p->nConesTotal );
139 Abc_Print( 1,
"Total equivs = %6d. Removed equivs = %6d. (%6.2f %%)\n",
140 p->nEquivsTotal,
p->nEquivsConstr, 100.0*
p->nEquivsConstr/
p->nEquivsTotal );
141 Abc_Print( 1,
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).\n",
142 p->nNodesBegC,
p->nNodesEndC, 100.0*(
p->nNodesBegC-
p->nNodesEndC)/(
p->nNodesBegC?
p->nNodesBegC:1),
143 p->nRegsBegC,
p->nRegsEndC, 100.0*(
p->nRegsBegC-
p->nRegsEndC)/(
p->nRegsBegC?
p->nRegsBegC:1) );
167 memset(
p->pNodeToFrames, 0,
sizeof(
Aig_Obj_t *) * Aig_ManObjNumMax(
p->pAig) *
p->nFrames );
171 Vec_PtrFree(
p->vSimInfo );
175 p->nConstrReduced = 0;
192 if (
p->pPars->fVerbose )
199 Vec_IntFree(
p->vDiffPairs );
201 Vec_IntFree(
p->vInits );
202 Vec_PtrFree(
p->vResimConsts );
203 Vec_PtrFree(
p->vResimClasses );
204 Vec_PtrFree(
p->vNewLos );
205 Vec_IntFree(
p->vNewPos );
206 Vec_PtrFree(
p->vCommon );
#define ABC_ALLOC(type, num)
#define ABC_PRTP(a, t, T)
#define ABC_CALLOC(type, num)
#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)
void Aig_ManStop(Aig_Man_t *p)
struct Aig_Obj_t_ Aig_Obj_t
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
void Aig_ManCleanMarkAB(Aig_Man_t *p)
void Ssw_ClassesStop(Ssw_Cla_t *p)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
void Ssw_ManPrintStats(Ssw_Man_t *p)
void Ssw_ManStop(Ssw_Man_t *p)
int Ssw_ManCountEquivs(Ssw_Man_t *p)
ABC_NAMESPACE_IMPL_START Ssw_Man_t * Ssw_ManCreate(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
DECLARATIONS ///.
void Ssw_ManCleanup(Ssw_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
void Ssw_SmlStop(Ssw_Sml_t *p)