21#ifndef ABC__aig__ssw__sswInt_h
22#define ABC__aig__ssw__sswInt_h
169static inline int Ssw_ObjSatNum(
Ssw_Sat_t *
p,
Aig_Obj_t * pObj ) {
return Vec_IntGetEntry(
p->vSatVars, pObj->
Id ); }
170static inline void Ssw_ObjSetSatNum(
Ssw_Sat_t *
p,
Aig_Obj_t * pObj,
int Num ) { Vec_IntSetEntry(
p->vSatVars, pObj->
Id, Num); }
174 return Aig_ObjRepr(pAig, pObj) == Aig_ManConst1(pAig);
178 assert( !Ssw_ObjIsConst1Cand( pAig, pObj ) );
179 Aig_ObjSetRepr( pAig, pObj, Aig_ManConst1(pAig) );
185static inline Aig_Obj_t * Ssw_ObjChild0Fra(
Ssw_Man_t *
p,
Aig_Obj_t * pObj,
int i ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin0(pObj)? Aig_NotCond(Ssw_ObjFrame(
p, Aig_ObjFanin0(pObj), i), Aig_ObjFaninC0(pObj)) : NULL; }
186static inline Aig_Obj_t * Ssw_ObjChild1Fra(
Ssw_Man_t *
p,
Aig_Obj_t * pObj,
int i ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin1(pObj)? Aig_NotCond(Ssw_ObjFrame(
p, Aig_ObjFanin1(pObj), i), Aig_ObjFaninC1(pObj)) : NULL; }
189static inline void Ssw_ObjSetFrame_(
Ssw_Frm_t *
p,
Aig_Obj_t * pObj,
int i,
Aig_Obj_t * pNode ) { Vec_PtrSetEntry(
p->vAig2Frm,
p->nObjs*i+pObj->
Id, pNode ); }
191static inline Aig_Obj_t * Ssw_ObjChild0Fra_(
Ssw_Frm_t *
p,
Aig_Obj_t * pObj,
int i ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin0(pObj)? Aig_NotCond(Ssw_ObjFrame_(
p, Aig_ObjFanin0(pObj), i), Aig_ObjFaninC0(pObj)) : NULL; }
192static inline Aig_Obj_t * Ssw_ObjChild1Fra_(
Ssw_Frm_t *
p,
Aig_Obj_t * pObj,
int i ) {
assert( !Aig_IsComplement(pObj) );
return Aig_ObjFanin1(pObj)? Aig_NotCond(Ssw_ObjFrame_(
p, Aig_ObjFanin1(pObj), i), Aig_ObjFaninC1(pObj)) : NULL; }
207 unsigned (*pFuncNodeHash)(
void *,
Aig_Obj_t *),
208 int (*pFuncNodeIsConst)(
void *,
Aig_Obj_t *),
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
struct Aig_Obj_t_ Aig_Obj_t
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Aig_Obj_t ** Ssw_ClassesReadClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, int *pnSize)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
Ssw_Cla_t * Ssw_ClassesPrepareFromReprs(Aig_Man_t *pAig)
int Ssw_ClassesPrepareRehash(Ssw_Cla_t *p, Vec_Ptr_t *vCands, int fConstCorr)
int Ssw_ClassesRefineConst1Group(Ssw_Cla_t *p, Vec_Ptr_t *vRoots, int fRecursive)
void Ssw_SmlAssignRandomFrame(Ssw_Sml_t *p, Aig_Obj_t *pObj, int iFrame)
Ssw_Sml_t * Ssw_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
Ssw_Cla_t * Ssw_ClassesPreparePairsSimple(Aig_Man_t *pMiter, Vec_Int_t *vPairs)
int Ssw_ManUniqueAddConstraint(Ssw_Man_t *p, Vec_Ptr_t *vCommon, int f1, int f2)
void Ssw_ManRefineByConstrSim(Ssw_Man_t *p)
Aig_Man_t * Ssw_ClassesReadAig(Ssw_Cla_t *p)
void Ssw_SmlClean(Ssw_Sml_t *p)
int Ssw_ClassesCand1Num(Ssw_Cla_t *p)
int Ssw_FilterUsingSemi(Ssw_Man_t *pMan, int fCheckTargets, int nConfMax, int fVerbose)
void Ssw_SatStop(Ssw_Sat_t *p)
struct Ssw_Cla_t_ Ssw_Cla_t
Ssw_Frm_t * Ssw_FrmStart(Aig_Man_t *pAig)
FUNCTION DECLARATIONS ///.
int Ssw_ManSweepDyn(Ssw_Man_t *p)
int Ssw_ManSweepLatch(Ssw_Man_t *p)
void Ssw_ManLoadSolver(Ssw_Man_t *p, Aig_Obj_t *pRepr, Aig_Obj_t *pObj)
void Ssw_SmlResimulateSeq(Ssw_Sml_t *p)
void Ssw_ManResimulateBit(Ssw_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pRepr)
DECLARATIONS ///.
void Ssw_SmlSimulateOne(Ssw_Sml_t *p)
void Ssw_ManStop(Ssw_Man_t *p)
void Ssw_ClassesCheck(Ssw_Cla_t *p)
Ssw_Cla_t * Ssw_ClassesPreparePairs(Aig_Man_t *pAig, Vec_Int_t **pvClasses)
int Ssw_ClassesLitNum(Ssw_Cla_t *p)
void Ssw_ClassesClearRefined(Ssw_Cla_t *p)
Ssw_Cla_t * Ssw_ClassesPrepareSimple(Aig_Man_t *pAig, int fLatchCorr, int nMaxLevs)
int Ssw_ManSweepNode(Ssw_Man_t *p, Aig_Obj_t *pObj, int f, int fBmc, Vec_Int_t *vPairs)
int Ssw_SmlObjIsConstBit(void *p, Aig_Obj_t *pObj)
int Ssw_SmlObjsAreEqualBit(void *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
int Ssw_SmlObjsAreEqualWord(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
int Ssw_ManSweepConstr(Ssw_Man_t *p)
void Ssw_SmlSimulateOneDyn_rec(Ssw_Sml_t *p, Aig_Obj_t *pObj, int f, int *pVisited, int nVisCounter)
void Ssw_SmlSimulateOneFrame(Ssw_Sml_t *p)
void Ssw_UniqueRegisterPairInfo(Ssw_Man_t *p)
DECLARATIONS ///.
void Ssw_SmlObjSetWord(Ssw_Sml_t *p, Aig_Obj_t *pObj, unsigned Word, int iWord, int iFrame)
int Ssw_CnfGetNodeValue(Ssw_Sat_t *p, Aig_Obj_t *pObjFraig)
int Ssw_ClassesRefineGroup(Ssw_Cla_t *p, Vec_Ptr_t *vReprs, int fRecursive)
void Ssw_SmlSavePatternAig(Ssw_Man_t *p, int f)
int Ssw_ClassesRefineConst1(Ssw_Cla_t *p, int fRecursive)
Aig_Man_t * Ssw_FramesWithClasses(Ssw_Man_t *p)
Aig_Man_t * Ssw_SignalCorrespondenceRefine(Ssw_Man_t *p)
Ssw_Sat_t * Ssw_SatStart(int fPolarFlip)
DECLARATIONS ///.
void Ssw_CnfNodeAddToSolver(Ssw_Sat_t *p, Aig_Obj_t *pObj)
void Ssw_ClassesCollectClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, Vec_Ptr_t *vClass)
int Ssw_ManGetSatVarValue(Ssw_Man_t *p, Aig_Obj_t *pObj, int f)
DECLARATIONS ///.
int Ssw_ManSweepBmc(Ssw_Man_t *p)
void Ssw_FrmStop(Ssw_Frm_t *p)
Vec_Ptr_t * Ssw_ClassesGetRefined(Ssw_Cla_t *p)
void Ssw_ManCleanup(Ssw_Man_t *p)
Ssw_Man_t * Ssw_ManCreate(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
DECLARATIONS ///.
struct Ssw_Frm_t_ Ssw_Frm_t
void Ssw_SmlStop(Ssw_Sml_t *p)
int Ssw_NodesAreEquiv(Ssw_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
DECLARATIONS ///.
int Ssw_ClassesClassNum(Ssw_Cla_t *p)
void Ssw_ClassesPrint(Ssw_Cla_t *p, int fVeryVerbose)
int Ssw_ManSweepBmcConstr(Ssw_Man_t *p)
int Ssw_NodeIsConstrained(Ssw_Man_t *p, Aig_Obj_t *pPoObj)
void Ssw_ManResimulateWord(Ssw_Man_t *p, Aig_Obj_t *pCand, Aig_Obj_t *pRepr, int f)
void Ssw_SmlObjAssignConst(Ssw_Sml_t *p, Aig_Obj_t *pObj, int fConst1, int iFrame)
struct Ssw_Sat_t_ Ssw_Sat_t
Ssw_Cla_t * Ssw_ClassesStart(Aig_Man_t *pAig)
unsigned Ssw_SmlObjHashWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
int Ssw_NodesAreConstrained(Ssw_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
void Ssw_ClassesRemoveNode(Ssw_Cla_t *p, Aig_Obj_t *pObj)
int Ssw_ManUniqueOne(Ssw_Man_t *p, Aig_Obj_t *pRepr, Aig_Obj_t *pObj, int fVerbose)
Ssw_Cla_t * Ssw_ClassesPrepare(Aig_Man_t *pAig, int nFramesK, int fLatchCorr, int fConstCorr, int fOutputCorr, int nMaxLevs, int fVerbose)
void Ssw_ClassesSetData(Ssw_Cla_t *p, void *pManData, unsigned(*pFuncNodeHash)(void *, Aig_Obj_t *), int(*pFuncNodeIsConst)(void *, Aig_Obj_t *), int(*pFuncNodesAreEqual)(void *, Aig_Obj_t *, Aig_Obj_t *))
Aig_Man_t * Ssw_SpeculativeReduction(Ssw_Man_t *p)
void Ssw_ClassesStop(Ssw_Cla_t *p)
Ssw_Cla_t * Ssw_ClassesPrepareTargets(Aig_Man_t *pAig)
int Ssw_ClassesRefine(Ssw_Cla_t *p, int fRecursive)
int Ssw_ManSweep(Ssw_Man_t *p)
void Ssw_SmlAssignDist1Plus(Ssw_Sml_t *p, unsigned *pPat)
int Ssw_SmlObjIsConstWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
int Ssw_ClassesRefineOneClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, int fRecursive)
struct Ssw_Sml_t_ Ssw_Sml_t
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
Aig_Obj_t ** pNodeToFrames
Vec_Ptr_t * vResimClasses
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.