summaryrefslogtreecommitdiffstats
path: root/src/map/scl/sclLoad.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-07-21 01:01:53 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-07-21 01:01:53 -0700
commit1ed823c67d5ba9681a0d5a52aec576edc9ed2de2 (patch)
tree1fd5e7c8de97f0219b7c6db6d10b23fe8dcbeca6 /src/map/scl/sclLoad.c
parentab84c73eb022b145faa040575d0e507e410035de (diff)
downloadabc-1ed823c67d5ba9681a0d5a52aec576edc9ed2de2.tar.gz
abc-1ed823c67d5ba9681a0d5a52aec576edc9ed2de2.tar.bz2
abc-1ed823c67d5ba9681a0d5a52aec576edc9ed2de2.zip
Adding support for input slew and output capacitance to timer and gate-sizer.
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