48 float EntryPrev, EntryCur, Slope;
49 int i, iPrev, k, Entry, EntryMax;
67 Slope = (EntryCur - EntryPrev) / (i - iPrev);
68 for ( k = iPrev + 1; k < i; k++ )
75 for ( k = iPrev + 1; k < i; k++ )
96 if ( vWireCaps == NULL )
138 if ( p->pWLoadUsed != NULL )
140 if ( p->vWireCaps == NULL )
148 if ( p->vInDrive != NULL )
154 printf(
"Maximum input drive strength is exceeded at primary input %d.\n", i );
169 double TotalLoad = 0;
174 TotalLoad += 0.5 * pLoad->
fall + 0.5 * pLoad->
rise;
180 TotalLoad += 0.5 * pLoad->
fall + 0.5 * pLoad->
rise;
183 p->EstLoadAve = (float)(TotalLoad / nObjs);
#define Abc_NtkForEachNode1(pNtk, pNode, i)
static SC_Pair * Abc_SclObjLoad(SC_Man *p, Abc_Obj_t *pObj)
static void Vec_FltWriteEntry(Vec_Flt_t *p, int i, float Entry)
void Abc_SclComputeLoad(SC_Man *p)
#define Vec_FltForEachEntryStart(vVec, Entry, i, Start)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
float Abc_SclFindWireLoad(Vec_Flt_t *vWireCaps, int nFans)
ABC_DLL int Abc_NodeFindFanin(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
#define Abc_NtkForEachCo(pNtk, pCo, i)
typedefABC_NAMESPACE_HEADER_START struct SC_Man_ SC_Man
INCLUDES ///.
static int Abc_MaxInt(int a, int b)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
static float Abc_SclObjInDrive(SC_Man *p, Abc_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START Vec_Flt_t * Abc_SclFindWireCaps(SC_WireLoad *pWL, int nFanoutMax)
DECLARATIONS ///.
static Vec_Flt_t * Vec_FltStart(int nSize)
static int Abc_MinInt(int a, int b)
void Abc_SclUpdateLoadSplit(SC_Man *p, Abc_Obj_t *pBuffer, Abc_Obj_t *pFanout)
#define ABC_NAMESPACE_IMPL_END
static SC_Pin * SC_CellPin(SC_Cell *p, int i)
#define ABC_NAMESPACE_IMPL_START
#define Abc_ObjForEachFanin(pObj, pFanin, i)
void Abc_SclAddWireLoad(SC_Man *p, Abc_Obj_t *pObj, int fSubtr)
typedefABC_NAMESPACE_HEADER_START struct Vec_Flt_t_ Vec_Flt_t
INCLUDES ///.
static int Abc_ObjIsPo(Abc_Obj_t *pObj)
static float Vec_FltEntry(Vec_Flt_t *p, int i)
ABC_DLL int Abc_NtkGetFanoutMax(Abc_Ntk_t *pNtk)
static int Vec_FltSize(Vec_Flt_t *p)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
#define Abc_NtkForEachPi(pNtk, pPi, i)
void Abc_SclUpdateLoad(SC_Man *p, Abc_Obj_t *pObj, SC_Cell *pOld, SC_Cell *pNew)
static SC_Cell * Abc_SclObjCell(Abc_Obj_t *p)