summaryrefslogtreecommitdiffstats
path: root/src/map/scl/sclMan.h
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/sclMan.h
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/sclMan.h')
-rw-r--r--src/map/scl/sclMan.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/map/scl/sclMan.h b/src/map/scl/sclMan.h
index 495c2b34..a6bdd806 100644
--- a/src/map/scl/sclMan.h
+++ b/src/map/scl/sclMan.h
@@ -193,9 +193,26 @@ static inline void Abc_SclManFree( SC_Man * p )
}
static inline void Abc_SclManCleanTime( SC_Man * p )
{
+ Vec_Flt_t * vSlews;
+ Abc_Obj_t * pObj;
+ int i;
+ vSlews = Vec_FltAlloc( 2 * Abc_NtkPiNum(p->pNtk) );
+ Abc_NtkForEachPi( p->pNtk, pObj, i )
+ {
+ SC_Pair * pSlew = Abc_SclObjSlew( p, pObj );
+ Vec_FltPush( vSlews, pSlew->rise );
+ Vec_FltPush( vSlews, pSlew->fall );
+ }
memset( p->pDepts, 0, sizeof(SC_Pair) * p->nObjs );
memset( p->pTimes, 0, sizeof(SC_Pair) * p->nObjs );
memset( p->pSlews, 0, sizeof(SC_Pair) * p->nObjs );
+ Abc_NtkForEachPi( p->pNtk, pObj, i )
+ {
+ SC_Pair * pSlew = Abc_SclObjSlew( p, pObj );
+ pSlew->rise = Vec_FltEntry( vSlews, 2 * i + 0 );
+ pSlew->fall = Vec_FltEntry( vSlews, 2 * i + 1 );
+ }
+ Vec_FltFree( vSlews );
}