164 int i, nTransSaved = 0;
169 return (
float)100.0*nTransSaved/32/nFrames/nWords/
Vec_VecSize(vGates);
191 Aig_Obj_t * pObjLi, * pObjLo, * pCand, * pCandBest;
192 int i, k, nHitsCur, nHitsMax,
Counter = 0;
194 int nTransTotal = 0, nTransSaved = 0;
206 printf(
"Clock gate candidate is invalid!\n" );
209 if ( nHitsMax < nHitsCur )
215 if ( pCandBest != NULL )
219 nTransSaved += nHitsMax;
221 nTransTotal += 32 * nFrames *
nWords;
226 printf(
"Gating signals = %6d. Gated flops = %6d. (Total flops = %6d.)\n",
284 printf(
"Gating signals = %6d. Gated flops = %6d. (Total flops = %6d.)\n",
286 printf(
"Complete gates = %6d. Gated transitions = %5.2f %%. ",
#define Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i)
#define Vec_VecForEachLevel(vGlob, vVec, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static void Vec_VecPush(Vec_Vec_t *p, int Level, void *Entry)
Ssw_Sml_t * Ssw_SmlSimulateSeq(Aig_Man_t *pAig, int nPref, int nFrames, int nWords)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
static int Saig_ManPoNum(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
#define Vec_VecForEachEntry(Type, vGlob, pEntry, i, k)
void Cgt_ManCollectFanoutPos(Aig_Man_t *pAig, Aig_Obj_t *pObj, Vec_Ptr_t *vFanout)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
void Cgt_ManCollectFanoutPos_rec(Aig_Man_t *pAig, Aig_Obj_t *pObj, Vec_Ptr_t *vFanout)
FUNCTION DEFINITIONS ///.
static abctime Abc_Clock()
static int Vec_PtrSize(Vec_Ptr_t *p)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
int Ssw_SmlNodeCountOnesReal(Ssw_Sml_t *p, Aig_Obj_t *pObj)
int Ssw_SmlNodeCountOnesRealVec(Ssw_Sml_t *p, Vec_Ptr_t *vObjs)
static int Vec_PtrFind(Vec_Ptr_t *p, void *Entry)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
int Ssw_SmlCountXorImplication(Ssw_Sml_t *p, Aig_Obj_t *pObjLi, Aig_Obj_t *pObjLo, Aig_Obj_t *pCand)
static int Saig_ObjIsPo(Aig_Man_t *p, Aig_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
static Vec_Vec_t * Vec_VecStart(int nSize)
int Cgt_ManCheckGateComplete(Aig_Man_t *pAig, Vec_Vec_t *vGatesAll, Aig_Obj_t *pGate, Vec_Ptr_t *vFanout)
static int Saig_ManRegNum(Aig_Man_t *p)
void Ssw_SmlStop(Ssw_Sml_t *p)
#define ABC_NAMESPACE_IMPL_START
ABC_NAMESPACE_IMPL_START int Ssw_SmlCheckXorImplication(Ssw_Sml_t *p, Aig_Obj_t *pObjLi, Aig_Obj_t *pObjLo, Aig_Obj_t *pCand)
DECLARATIONS ///.
Vec_Ptr_t * Cgt_ManCompleteGates(Aig_Man_t *pAig, Vec_Vec_t *vGatesAll, int nOdcMax, int fVerbose)
float Cgt_ManComputeCoverage(Aig_Man_t *pAig, Vec_Vec_t *vGates)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Vec_VecSizeSize(Vec_Vec_t *p)
static int Vec_VecSize(Vec_Vec_t *p)
static void Vec_PtrClear(Vec_Ptr_t *p)
Vec_Vec_t * Cgt_ManDecideSimple(Aig_Man_t *pAig, Vec_Vec_t *vGatesAll, int nOdcMax, int fVerbose)
static Vec_Ptr_t * Vec_VecEntry(Vec_Vec_t *p, int i)
Vec_Vec_t * Cgt_ManDecideArea(Aig_Man_t *pAig, Vec_Vec_t *vGatesAll, int nOdcMax, int fVerbose)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
int Ssw_SmlCountEqual(Ssw_Sml_t *p, Aig_Obj_t *pObjLi, Aig_Obj_t *pObjLo)
static int Aig_ObjIsCo(Aig_Obj_t *pObj)
static int Aig_ObjCioId(Aig_Obj_t *pObj)
static void Vec_PtrFree(Vec_Ptr_t *p)