From 118cb03be4b18d0b3add4be21f5c9b09b36336cd Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 9 Aug 2013 22:55:09 -0700 Subject: Integrated buffering and sizing. --- src/map/scl/sclBufSize.c | 2 +- src/map/scl/sclLib.c | 23 +++++++++++------------ src/map/scl/sclSize.c | 10 ++++------ 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/map/scl/sclBufSize.c b/src/map/scl/sclBufSize.c index 431c61df..72712e7d 100644 --- a/src/map/scl/sclBufSize.c +++ b/src/map/scl/sclBufSize.c @@ -355,7 +355,7 @@ void Abc_SclBufSize( Bus_Man_t * p ) printf( "Node %7d : ", i ); printf( "%12s ", pCellNew->pName ); printf( "(%2d/%2d) ", pCellNew->Order, pCellNew->nGates ); - printf( "gain =%5.2f ", Load / SC_CellPinCapAve(pCellNew) ); + printf( "gain =%5d ", (int)(100.0 * Load / SC_CellPinCapAve(pCellNew)) ); printf( "dept =%7.0f ps ", SC_LibTimePs(p->pLib, Dept) ); printf( "\n" ); } diff --git a/src/map/scl/sclLib.c b/src/map/scl/sclLib.c index 1dfdcd13..1f9b26ec 100644 --- a/src/map/scl/sclLib.c +++ b/src/map/scl/sclLib.c @@ -1092,19 +1092,18 @@ void Abc_SclPrintCells( SC_Lib * p, float Slew, float Gain ) SC_RingForEachCell( pRepr, pCell, i ) { Abc_SclComputeParametersCell( p, pCell, Slew, &ED, &PD ); - printf( " %3d ", i+1 ); - printf( "%s", pCell->fSkip ? "s" : " " ); + printf( " %3d ", i+1 ); + printf( "%s", pCell->fSkip ? "s" : " " ); printf( " : " ); - printf( "%-*s ", nLength, pCell->pName ); - printf( "%2d ", pCell->drive_strength ); - printf( "A =%8.2f ", pCell->area ); - printf( "D =%6.0f ps ", 0.01 * ED * Gain + PD ); - printf( "ED =%6.0f ps ", ED ); - printf( "PD =%6.0f ps ", PD ); - printf( "C =%5.1f ff ", SC_CellPinCapAve(pCell) ); - printf( "Lm =%5.1f ff ", 0.01 * Gain * SC_CellPinCapAve(pCell) ); -// printf( "MaxS =%5.1f ps ", SC_CellPin(pCell, pCell->n_inputs)->max_out_slew ); - printf( "Lm2 =%5.0f ff ", SC_CellPin(pCell, pCell->n_inputs)->max_out_cap ); + printf( "%-*s ", nLength, pCell->pName ); + printf( "%2d ", pCell->drive_strength ); + printf( "A =%8.2f ", pCell->area ); + printf( "D =%6.0f ps ", 0.01 * ED * Gain + PD ); + printf( "ED =%6.0f ps ", ED ); + printf( "PD =%6.0f ps ", PD ); + printf( "C =%5.1f ff ", SC_CellPinCapAve(pCell) ); + printf( "Cm =%5.0f ff ", SC_CellPin(pCell, pCell->n_inputs)->max_out_cap ); + printf( "Sm =%5.1f ps ", SC_CellPin(pCell, pCell->n_inputs)->max_out_slew ); printf( "\n" ); } } diff --git a/src/map/scl/sclSize.c b/src/map/scl/sclSize.c index 8b321328..78d670b4 100644 --- a/src/map/scl/sclSize.c +++ b/src/map/scl/sclSize.c @@ -121,7 +121,7 @@ static inline void Abc_SclTimeNodePrint( SC_Man * p, Abc_Obj_t * pObj, int fRise printf( "Cin =%4.0f ff ", pCell ? SC_CellPinCapAve(pCell) : 0.0 ); printf( "Cout =%5.0f ff ", Abc_SclObjLoadFf(p, pObj, fRise >= 0 ? fRise : 0 ) ); printf( "Cmax =%5.0f ff ", pCell ? SC_CellPin(pCell, pCell->n_inputs)->max_out_cap : 0.0 ); - printf( "G =%5.1f ", pCell ? Abc_SclObjLoadAve(p, pObj) / SC_CellPinCap(pCell, 0) : 0.0 ); + printf( "G =%5d ", pCell ? (int)(100.0 * Abc_SclObjLoadAve(p, pObj) / SC_CellPinCapAve(pCell)) : 0 ); printf( "SL =%5.1f ps", Abc_SclObjSlackPs(p, pObj, p->MaxDelay0) ); printf( "\n" ); } @@ -138,10 +138,8 @@ void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll, int fPrintPath ) printf( "Min = %5.1f %% ", 100.0 * Abc_SclCountMinSize(p->pLib, p->pNtk, 0) / Abc_NtkNodeNum(p->pNtk) ); printf( "Area = %12.2f ", Abc_SclGetTotalArea( p ) ); printf( "Delay = %8.2f ps ", maxDelay ); - printf( "Min = %5.1f %%\n", 100.0 * Abc_SclCountNearCriticalNodes(p) / Abc_NtkNodeNum(p->pNtk) ); - if ( !fPrintPath ) - return; - + printf( "Min = %5.1f %% ", 100.0 * Abc_SclCountNearCriticalNodes(p) / Abc_NtkNodeNum(p->pNtk) ); + printf( " \n" ); if ( fShowAll ) { // printf( "Timing information for all nodes: \n" ); @@ -154,7 +152,7 @@ void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll, int fPrintPath ) if ( Abc_ObjFaninNum(pObj) > 0 ) Abc_SclTimeNodePrint( p, pObj, -1, nLength, maxDelay ); } - else + if ( fPrintPath ) { // printf( "Critical path: \n" ); // find the longest cell name -- cgit v1.2.3