summaryrefslogtreecommitdiffstats
path: root/src/map/scl/sclLoad.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/scl/sclLoad.c')
-rw-r--r--src/map/scl/sclLoad.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/map/scl/sclLoad.c b/src/map/scl/sclLoad.c
index fc48aa82..f9768b8f 100644
--- a/src/map/scl/sclLoad.c
+++ b/src/map/scl/sclLoad.c
@@ -146,7 +146,8 @@ void Abc_SclComputeLoad( SC_Man * p )
Abc_NtkForEachObj( p->pNtk, pObj, i )
{
SC_Pair * pLoad = Abc_SclObjLoad( p, pObj );
- pLoad->rise = pLoad->fall = 0.0;
+ if ( !Abc_ObjIsPo(pObj) )
+ pLoad->rise = pLoad->fall = 0.0;
}
// add cell load
Abc_NtkForEachNode1( p->pNtk, pObj, i )
@@ -160,6 +161,14 @@ void Abc_SclComputeLoad( SC_Man * p )
pLoad->fall += pPin->fall_cap;
}
}
+ // add PO load
+ Abc_NtkForEachPo( p->pNtk, pObj, i )
+ {
+ SC_Pair * pLoadPo = Abc_SclObjLoad( p, pObj );
+ SC_Pair * pLoad = Abc_SclObjLoad( p, Abc_ObjFanin0(pObj) );
+ pLoad->rise += pLoadPo->rise;
+ pLoad->fall += pLoadPo->fall;
+ }
if ( p->pWLoadUsed == NULL )
return;
// add wire load