summaryrefslogtreecommitdiffstats
path: root/src/map/scl/sclTime.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-08-28 19:24:13 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-08-28 19:24:13 -0700
commit9b02fe59bdf1437c6de99c7dad348f3e18a19f10 (patch)
tree0142da829b66d0b842ad3a84ee0f30d90e37b890 /src/map/scl/sclTime.c
parent329831bdacfeb6c68bf9782daaa9c2d2bea9ce32 (diff)
downloadabc-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.c19
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 );