summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-09-16 21:40:20 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-09-16 21:40:20 -0700
commitbbf4b8bc1e35f33b9150963059396ae25bc13a54 (patch)
tree24389dc01e576e2e2ffb430bf6da6f43fe6c0f6d
parent8b2b4fb6b86680c4dd4ea74979d425a87257d7fe (diff)
downloadabc-bbf4b8bc1e35f33b9150963059396ae25bc13a54.tar.gz
abc-bbf4b8bc1e35f33b9150963059396ae25bc13a54.tar.bz2
abc-bbf4b8bc1e35f33b9150963059396ae25bc13a54.zip
Improving printouts in 'stime'.
-rw-r--r--src/map/scl/scl.c11
-rw-r--r--src/map/scl/sclInt.h2
-rw-r--r--src/map/scl/sclMan.h2
-rw-r--r--src/map/scl/sclSize.c4
-rw-r--r--src/map/scl/sclTime.c8
5 files changed, 17 insertions, 10 deletions
diff --git a/src/map/scl/scl.c b/src/map/scl/scl.c
index 35423beb..2d14c1c7 100644
--- a/src/map/scl/scl.c
+++ b/src/map/scl/scl.c
@@ -298,9 +298,10 @@ int Scl_CommandStime( Abc_Frame_t * pAbc, int argc, char **argv )
int c;
int fShowAll = 0;
int fUseWireLoads = 1;
+ int fShort = 0;
Extra_UtilGetoptReset();
- while ( ( c = Extra_UtilGetopt( argc, argv, "cah" ) ) != EOF )
+ while ( ( c = Extra_UtilGetopt( argc, argv, "cash" ) ) != EOF )
{
switch ( c )
{
@@ -310,6 +311,9 @@ int Scl_CommandStime( Abc_Frame_t * pAbc, int argc, char **argv )
case 'a':
fShowAll ^= 1;
break;
+ case 's':
+ fShort ^= 1;
+ break;
case 'h':
goto usage;
default:
@@ -338,14 +342,15 @@ int Scl_CommandStime( Abc_Frame_t * pAbc, int argc, char **argv )
return 1;
}
- Abc_SclTimePerform( pAbc->pLibScl, Abc_FrameReadNtk(pAbc), fShowAll, fUseWireLoads );
+ Abc_SclTimePerform( pAbc->pLibScl, Abc_FrameReadNtk(pAbc), fUseWireLoads, fShowAll, fShort );
return 0;
usage:
- fprintf( pAbc->Err, "usage: stime [-cah]\n" );
+ fprintf( pAbc->Err, "usage: stime [-cash]\n" );
fprintf( pAbc->Err, "\t performs STA using Liberty library\n" );
fprintf( pAbc->Err, "\t-c : toggle using wire-loads if specified [default = %s]\n", fUseWireLoads? "yes": "no" );
fprintf( pAbc->Err, "\t-a : display timing information for all nodes [default = %s]\n", fShowAll? "yes": "no" );
+ fprintf( pAbc->Err, "\t-s : display timing information without critical path [default = %s]\n", fShort? "yes": "no" );
fprintf( pAbc->Err, "\t-h : print the help massage\n" );
return 1;
}
diff --git a/src/map/scl/sclInt.h b/src/map/scl/sclInt.h
index 40f0a460..5dc00cf2 100644
--- a/src/map/scl/sclInt.h
+++ b/src/map/scl/sclInt.h
@@ -432,7 +432,7 @@ extern void Abc_SclWriteText( char * pFileName, SC_Lib * p );
extern void Abc_SclLoad( char * pFileName, SC_Lib ** ppScl );
extern void Abc_SclSave( char * pFileName, SC_Lib * pScl );
/*=== sclTime.c =============================================================*/
-extern void Abc_SclTimePerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, int fShowAll, int fUseWireLoads );
+extern void Abc_SclTimePerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, int fUseWireLoads, int fShowAll, int fShort );
/*=== sclSize.c =============================================================*/
extern void Abc_SclSizingPerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, SC_SizePars * p );
/*=== sclUpsize.c =============================================================*/
diff --git a/src/map/scl/sclMan.h b/src/map/scl/sclMan.h
index 1c6382ba..cc9316d5 100644
--- a/src/map/scl/sclMan.h
+++ b/src/map/scl/sclMan.h
@@ -235,7 +235,7 @@ static inline SC_Cell * Abc_SclObjResiable( SC_Man * p, Abc_Obj_t * pObj, int fU
/*=== sclTime.c =============================================================*/
extern Abc_Obj_t * Abc_SclFindCriticalCo( SC_Man * p, int * pfRise );
extern Abc_Obj_t * Abc_SclFindMostCriticalFanin( SC_Man * p, int * pfRise, Abc_Obj_t * pNode );
-extern void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll );
+extern void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll, int fShort );
extern SC_Man * Abc_SclManStart( SC_Lib * pLib, Abc_Ntk_t * pNtk, int fUseWireLoads );
extern void Abc_SclTimeCone( SC_Man * p, Vec_Int_t * vCone );
extern void Abc_SclTimeNtkRecompute( SC_Man * p, float * pArea, float * pDelay );
diff --git a/src/map/scl/sclSize.c b/src/map/scl/sclSize.c
index a5f99191..fea4d89e 100644
--- a/src/map/scl/sclSize.c
+++ b/src/map/scl/sclSize.c
@@ -367,7 +367,7 @@ void Abc_SclSizingPerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, SC_SizePars * pPars
int r, i, nNodes, nCones = 0, nDownSize = 0;
p = Abc_SclManStart( pLib, pNtk, pPars->fUseWireLoads );
if ( pPars->fPrintCP )
- Abc_SclTimeNtkPrint( p, 0 );
+ Abc_SclTimeNtkPrint( p, 0, 0 );
if ( pPars->fVerbose )
printf( "Iterative gate-sizing of network \"%s\" with library \"%s\":\n", Abc_NtkName(pNtk), pLib->pName );
if ( pPars->fVerbose )
@@ -459,7 +459,7 @@ void Abc_SclSizingPerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, SC_SizePars * pPars
p->MaxDelay = Abc_SclGetMaxDelay(p);
if ( pPars->fPrintCP )
- Abc_SclTimeNtkPrint( p, 0 );
+ Abc_SclTimeNtkPrint( p, 0, 0 );
if ( nRuntimeLimit && clock() > nRuntimeLimit )
printf( "Timeout was reached after %d seconds.\n", pPars->nTimeOut );
// print cumulative statistics
diff --git a/src/map/scl/sclTime.c b/src/map/scl/sclTime.c
index 202cf96b..5d45a911 100644
--- a/src/map/scl/sclTime.c
+++ b/src/map/scl/sclTime.c
@@ -96,7 +96,7 @@ static inline void Abc_SclTimeGatePrint( SC_Man * p, Abc_Obj_t * pObj, int fRise
printf( "slew =%6.1f ps ", Abc_SclObjSlewPs(p, pObj, fRise >= 0 ? fRise : 0 ) );
printf( "\n" );
}
-void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll )
+void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll, int fShort )
{
int i, nLength = 0, fRise = 0;
Abc_Obj_t * pObj, * pPivot = Abc_SclFindCriticalCo( p, &fRise );
@@ -105,6 +105,8 @@ void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll )
printf( "Gates = %d. ", Abc_NtkNodeNum(p->pNtk) );
printf( "Area = %.2f. ", Abc_SclGetTotalArea( p ) );
printf( "Critical delay = %.1f ps\n", Abc_SclObjTimePs(p, pPivot, fRise) );
+ if ( fShort )
+ return;
if ( fShowAll )
{
@@ -299,11 +301,11 @@ SC_Man * Abc_SclManStart( SC_Lib * pLib, Abc_Ntk_t * pNtk, int fUseWireLoads )
SeeAlso []
***********************************************************************/
-void Abc_SclTimePerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, int fShowAll, int fUseWireLoads )
+void Abc_SclTimePerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, int fUseWireLoads, int fShowAll, int fShort )
{
SC_Man * p;
p = Abc_SclManStart( pLib, pNtk, fUseWireLoads );
- Abc_SclTimeNtkPrint( p, fShowAll );
+ Abc_SclTimeNtkPrint( p, fShowAll, fShort );
Abc_SclManFree( p );
}