48 if ( (pRes = Ssw_ObjFrame_(pFrm, pObj, f)) )
50 if ( Aig_ObjIsConst1(pObj) )
51 pRes = Aig_ManConst1( pFrm->
pFrames );
52 else if ( Saig_ObjIsPi(pFrm->
pAig, pObj) )
54 else if ( Aig_ObjIsCo(pObj) )
57 pRes = Ssw_ObjChild0Fra_( pFrm, pObj, f );
59 else if ( Saig_ObjIsLo(pFrm->
pAig, pObj) )
62 pRes = Aig_ManConst0( pFrm->
pFrames );
68 assert( Aig_ObjIsNode(pObj) );
71 pRes0 = Ssw_ObjChild0Fra_( pFrm, pObj, f );
72 pRes1 = Ssw_ObjChild1Fra_( pFrm, pObj, f );
75 Ssw_ObjSetFrame_( pFrm, pObj, f, pRes );
99 pCex->iFrame = iFrame;
101 nShift = Saig_ManRegNum(pFrm->
pAig);
102 for ( f = 0; f <= iFrame; f++, nShift += Saig_ManPiNum(pFrm->
pAig) )
105 pObjFrames = Ssw_ObjFrame_(pFrm, pObj, f);
106 if ( pObjFrames == NULL )
109 Abc_InfoSetBit( pCex->pData, nShift + i );
131 int status, Lit, i, f, RetValue;
135 assert( Saig_ManRegNum(pAig) > 0 );
143 Abc_Print( 1,
"AIG: PI/PO/Reg = %d/%d/%d. Node = %6d. Lev = %5d.\n",
144 Saig_ManPiNum(pAig), Saig_ManPoNum(pAig), Saig_ManRegNum(pAig),
150 for ( f = 0; f < nFramesMax; f++ )
152 clkPart = Abc_Clock();
157 pObjFrame = Ssw_ObjFrame_( pFrm, pObj, f );
162 Lit = toLitCond( Ssw_ObjSatNum(pSat,pObjFrame), Aig_IsComplement(pObjFrame) );
165 Abc_Print( 1,
"Solving output %2d of frame %3d ... \r",
166 i % Saig_ManPoNum(pAig), i / Saig_ManPoNum(pAig) );
168 status =
sat_solver_solve( pSat->
pSat, &Lit, &Lit + 1, (ABC_INT64_T)nConfLimit, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
184 else if ( status ==
l_True )
202 Abc_Print( 1,
"Solved %2d outputs of frame %3d. ", Saig_ManPoNum(pAig), f );
203 Abc_Print( 1,
"Conf =%8.0f. Var =%8d. AIG=%9d. ",
206 ABC_PRT(
"T", Abc_Clock() - clkPart );
207 clkPart = Abc_Clock();
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManSetCioIds(Aig_Man_t *p)
int Aig_ManLevelNum(Aig_Man_t *p)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
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 ///.
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
#define Saig_ManForEachPo(p, pObj, i)
#define Saig_ManForEachPi(p, pObj, i)
int sat_solver_simplify(sat_solver *s)
ABC_NAMESPACE_IMPL_START Ssw_Frm_t * Ssw_FrmStart(Aig_Man_t *pAig)
DECLARATIONS ///.
void Ssw_FrmStop(Ssw_Frm_t *p)
Abc_Cex_t * Ssw_BmcGetCounterExample(Ssw_Frm_t *pFrm, Ssw_Sat_t *pSat, int iPo, int iFrame)
ABC_NAMESPACE_IMPL_START Aig_Obj_t * Ssw_BmcUnroll_rec(Ssw_Frm_t *pFrm, Aig_Obj_t *pObj, int f)
DECLARATIONS ///.
int Ssw_BmcDynamic(Aig_Man_t *pAig, int nFramesMax, int nConfLimit, int fVerbose, int *piFrame)
MACRO DEFINITIONS ///.
void Ssw_SatStop(Ssw_Sat_t *p)
int Ssw_CnfGetNodeValue(Ssw_Sat_t *p, Aig_Obj_t *pObj)
void Ssw_CnfNodeAddToSolver(Ssw_Sat_t *p, Aig_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START Ssw_Sat_t * Ssw_SatStart(int fPolarFlip)
DECLARATIONS ///.
struct Ssw_Frm_t_ Ssw_Frm_t
struct Ssw_Sat_t_ Ssw_Sat_t
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Abc_CexAlloc(int nRegs, int nRealPis, int nFrames)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.