46 assert( !Aig_IsComplement(pObj) );
71 assert( Aig_ManCoNum(pMan) == 1 );
72 pRoot = Aig_ManCo( pMan, 0 );
74 if ( Aig_ObjIsConst1( Aig_ObjFanin0(pRoot) ) )
75 return Hop_NotCond( Hop_ManConst1(pHop), Aig_ObjFaninC0(pRoot) );
82 return Hop_NotCond( (
Hop_Obj_t *)Aig_ObjFanin0(pRoot)->pData, Aig_ObjFaninC0(pRoot) );
100 assert( !Hop_IsComplement(pObj) );
101 if ( !Hop_ObjIsNode(pObj) || Hop_ObjIsMarkA(pObj) )
106 assert( !Hop_ObjIsMarkA(pObj) );
107 Hop_ObjSetMarkA( pObj );
131 if ( Hop_ObjIsConst1( Hop_Regular(pRoot) ) )
133 pObjOld->
pCopy = (
Abc_Obj_t *)Aig_NotCond( Aig_ManConst1(pMan), Hop_IsComplement(pRoot) );
140 Hop_ManPi(pHopMan, i)->pData = pFanin->
pCopy;
148 Hop_ManPi(pHopMan, i)->pData = pFanin->
pNext;
175 Abc_NtkIncrementTravId( pNode->
pNtk );
183 pRoot = Aig_ManConst0(pMan);
187 pRoot =
Aig_Or( pMan, pRoot, pExor );
206 if ( Aig_ObjIsTravIdCurrent( pCare, pObj ) )
208 Aig_ObjSetTravIdCurrent( pCare, pObj );
209 if ( Aig_ObjIsCi(pObj) )
217 pObj0 = Aig_NotCond( pObj0, Aig_ObjFaninC0(pObj) );
218 pObj1 = Aig_NotCond( pObj1, Aig_ObjFaninC1(pObj) );
252 pPi = Aig_ManCi(
p->pCare, (
int)(ABC_PTRUINT_T)pFanin->
pData );
253 Aig_ObjSetTravIdCurrent(
p->pCare, pPi );
259 vOuts = (
Vec_Int_t *)Vec_PtrEntry(
p->vSuppsInv, (
int)(ABC_PTRUINT_T)pFanin->
pData );
262 pPo = Aig_ManCo(
p->pCare, iOut );
263 if ( Aig_ObjIsTravIdCurrent(
p->pCare, pPo ) )
265 Aig_ObjSetTravIdCurrent(
p->pCare, pPo );
266 if ( Aig_ObjFanin0(pPo) == Aig_ManConst1(
p->pCare) )
269 if ( pObjAig == NULL )
271 pObjAig = Aig_NotCond( pObjAig, Aig_ObjFaninC0(pPo) );
289 if (
p->pPars->fResub )
329 Aig_Obj_t * pPi, * pPo, * pObjAig, * pObjRoot;
332 if (
p->pCare == NULL )
339 pPi = Aig_ManCi(
p->pCare, (
int)(ABC_PTRUINT_T)pFanin->
pData );
340 Aig_ObjSetTravIdCurrent(
p->pCare, pPi );
344 pObjRoot = Aig_ManConst1(pMan);
347 vOuts = (
Vec_Int_t *)Vec_PtrEntry(
p->vSuppsInv, (
int)(ABC_PTRUINT_T)pFanin->
pData );
350 pPo = Aig_ManCo(
p->pCare, iOut );
351 if ( Aig_ObjIsTravIdCurrent(
p->pCare, pPo ) )
353 Aig_ObjSetTravIdCurrent(
p->pCare, pPo );
354 if ( Aig_ObjFanin0(pPo) == Aig_ManConst1(
p->pCare) )
357 if ( pObjAig == NULL )
359 pObjAig = Aig_NotCond( pObjAig, Aig_ObjFaninC0(pPo) );
360 pObjRoot =
Aig_And( pMan, pObjRoot, pObjAig );
397 return 1.0 * Counter / (32 * nSimWords);
struct Abc_Obj_t_ Abc_Obj_t
#define Abc_ObjForEachFanin(pObj, pFanin, i)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void Aig_ManStop(Aig_Man_t *p)
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)
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Obj_t * Aig_Exor(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
int Aig_ManCleanup(Aig_Man_t *p)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
void Aig_ManCleanData(Aig_Man_t *p)
Aig_Obj_t * Aig_Or(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Fra_SmlStop(Fra_Sml_t *p)
struct Fra_Sml_t_ Fra_Sml_t
Fra_Sml_t * Fra_SmlSimulateComb(Aig_Man_t *pAig, int nWords, int fCheckMiter)
int Fra_SmlNodeCountOnes(Fra_Sml_t *p, Aig_Obj_t *pObj)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ Hop_Man_t
INCLUDES ///.
Hop_Obj_t * Hop_IthVar(Hop_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
Hop_Obj_t * Hop_And(Hop_Man_t *p, Hop_Obj_t *p0, Hop_Obj_t *p1)
struct Hop_Obj_t_ Hop_Obj_t
struct Mfs_Man_t_ Mfs_Man_t
Aig_Man_t * Abc_NtkAigForConstraints(Mfs_Man_t *p, Abc_Obj_t *pNode)
ABC_NAMESPACE_IMPL_START void Abc_MfsConvertAigToHop_rec(Aig_Obj_t *pObj, Hop_Man_t *pHop)
DECLARATIONS ///.
void Abc_MfsConvertHopToAig_rec(Hop_Obj_t *pObj, Aig_Man_t *pMan)
Aig_Obj_t * Abc_NtkConstructAig_rec(Mfs_Man_t *p, Abc_Obj_t *pNode, Aig_Man_t *pMan)
Aig_Obj_t * Abc_NtkConstructCare_rec(Aig_Man_t *pCare, Aig_Obj_t *pObj, Aig_Man_t *pMan)
Aig_Man_t * Abc_NtkConstructAig(Mfs_Man_t *p, Abc_Obj_t *pNode)
void Abc_MfsConvertHopToAig(Abc_Obj_t *pObjOld, Aig_Man_t *pMan)
ABC_NAMESPACE_IMPL_END ABC_NAMESPACE_IMPL_START double Abc_NtkConstraintRatio(Mfs_Man_t *p, Abc_Obj_t *pNode)
Hop_Obj_t * Abc_MfsConvertAigToHop(Aig_Man_t *pMan, Hop_Man_t *pHop)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.