diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-08-28 19:24:13 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-08-28 19:24:13 -0700 |
commit | 9b02fe59bdf1437c6de99c7dad348f3e18a19f10 (patch) | |
tree | 0142da829b66d0b842ad3a84ee0f30d90e37b890 /src/map/scl/sclTime.c | |
parent | 329831bdacfeb6c68bf9782daaa9c2d2bea9ce32 (diff) | |
download | abc-9b02fe59bdf1437c6de99c7dad348f3e18a19f10.tar.gz abc-9b02fe59bdf1437c6de99c7dad348f3e18a19f10.tar.bz2 abc-9b02fe59bdf1437c6de99c7dad348f3e18a19f10.zip |
Added buffering based on combinational merging.
Diffstat (limited to 'src/map/scl/sclTime.c')
-rw-r--r-- | src/map/scl/sclTime.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/map/scl/sclTime.c b/src/map/scl/sclTime.c index 45eb4ee5..160478c2 100644 --- a/src/map/scl/sclTime.c +++ b/src/map/scl/sclTime.c @@ -259,6 +259,23 @@ Abc_Obj_t * Abc_SclFindMostCritical( SC_Man * p, int * pfRise, Vec_Ptr_t * vNode assert( pPivot != NULL ); return pPivot; } +Abc_Obj_t * Abc_SclFindMostCriticalFanin( SC_Man * p, int * pfRise, Abc_Obj_t * pNode ) +{ + Abc_Obj_t * pObj, * pPivot = NULL; + float fMaxArr = 0; + int i; + Abc_ObjForEachFanin( pNode, pObj, i ) + { + SC_Pair * pArr = Abc_SclObjArr( p, pObj ); + if ( fMaxArr < pArr->rise ) fMaxArr = pArr->rise, *pfRise = 1, pPivot = pObj; + if ( fMaxArr < pArr->fall ) fMaxArr = pArr->fall, *pfRise = 0, pPivot = pObj; + } + assert( pPivot != NULL ); + return pPivot; +} +void Abc_SclCriticalPathPrint( SC_Man * p, Vec_Ptr_t * vNodes ) +{ +} void Abc_SclTimeNtkPrint( SC_Man * p, Vec_Ptr_t * vNodes ) { /* @@ -385,6 +402,7 @@ void Abc_SclTimeNtk( SC_Man * p ) Vec_PtrFree( vNodes ); } + /**Function************************************************************* Synopsis [] @@ -399,6 +417,7 @@ void Abc_SclTimeNtk( SC_Man * p ) void Abc_SclTimePerform( SC_Lib * pLib, void * pNtk ) { SC_Man * p; + p = Abc_SclManAlloc( pLib, (Abc_Ntk_t *)pNtk ); Abc_SclTimeNtk( p ); Abc_SclManFree( p ); |