diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2015-11-11 23:12:05 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2015-11-11 23:12:05 -0800 |
commit | f7c969ca66649627281510b8c63d867288faafd7 (patch) | |
tree | a0a1d8ae7f60272378cf9c83b4c7b2c46cac7530 /src/map | |
parent | 71847b9d17c5b64ddc7abd4ff85f5637e2fe4a15 (diff) | |
download | abc-f7c969ca66649627281510b8c63d867288faafd7.tar.gz abc-f7c969ca66649627281510b8c63d867288faafd7.tar.bz2 abc-f7c969ca66649627281510b8c63d867288faafd7.zip |
Improvements to timing optimization.
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/scl/scl.c | 2 | ||||
-rw-r--r-- | src/map/scl/sclCon.h | 8 | ||||
-rw-r--r-- | src/map/scl/sclLib.h | 8 | ||||
-rw-r--r-- | src/map/scl/sclLibScl.c | 4 |
4 files changed, 12 insertions, 10 deletions
diff --git a/src/map/scl/scl.c b/src/map/scl/scl.c index 24c45b6e..83eaa9f4 100644 --- a/src/map/scl/scl.c +++ b/src/map/scl/scl.c @@ -753,7 +753,7 @@ int Scl_CommandStime( Abc_Frame_t * pAbc, int argc, char **argv ) { int c; int fShowAll = 0; - int fUseWireLoads = 1; + int fUseWireLoads = 0; int fPrintPath = 0; int fDumpStats = 0; int nTreeCRatio = 0; diff --git a/src/map/scl/sclCon.h b/src/map/scl/sclCon.h index fd6ae273..ec911963 100644 --- a/src/map/scl/sclCon.h +++ b/src/map/scl/sclCon.h @@ -38,7 +38,8 @@ struct Scl_Con_t_ word tInLoadDef; // default input load word tOutReqDef; // default output required time word tOutLoadDef; // default output load - Vec_Ptr_t vInCells; // input driving gates + Vec_Ptr_t vInCells; // input driving gate names + Vec_Ptr_t vInCellsPtr; // input driving gates Vec_Wrd_t vInArrs; // input arrival times Vec_Wrd_t vInSlews; // input slews Vec_Wrd_t vInLoads; // input loads @@ -58,8 +59,8 @@ struct Scl_Con_t_ #define SCL_DIRECTIVE(ITEM) "."ITEM #define SCL_DEF_DIRECTIVE(ITEM) ".default_"ITEM -#define SCL_NUM 1000000 -#define SCL_NUMINV 0.000001 +#define SCL_NUM 1000 +#define SCL_NUMINV 0.001 #define SCL_INFINITY (~(word)0) static inline word Scl_Flt2Wrd( float w ) { return SCL_NUM*w; } @@ -103,6 +104,7 @@ static inline Scl_Con_t * Scl_ConAlloc( char * pFileName, Abc_Nam_t * pNamI, Abc } static inline void Scl_ConFree( Scl_Con_t * p ) { + Vec_PtrErase( &p->vInCellsPtr ); Vec_PtrFreeData( &p->vInCells ); Vec_PtrErase( &p->vInCells ); Vec_WrdErase( &p->vInArrs ); diff --git a/src/map/scl/sclLib.h b/src/map/scl/sclLib.h index 25e60a41..b54a726c 100644 --- a/src/map/scl/sclLib.h +++ b/src/map/scl/sclLib.h @@ -180,8 +180,8 @@ struct SC_Pin_ float cap; // -- this value is used if 'rise_cap' and 'fall_cap' is missing (copied by 'postProcess()'). (not used) float rise_cap; // }- used for input pins ('cap' too). float fall_cap; // } - float rise_capI; // }- used for input pins ('cap' too). - float fall_capI; // } + int rise_capI; // }- used for input pins ('cap' too). + int fall_capI; // } float max_out_cap; // } (not used) float max_out_slew; // }- used only for output pins (max values must not be exceeded or else mapping is illegal) (not used) char * func_text; // } @@ -199,8 +199,8 @@ struct SC_Cell_ int unsupp; // -- set to TRUE by parser if cell contains information we cannot handle float area; float leakage; - float areaI; - float leakageI; + int areaI; + int leakageI; int drive_strength; // -- some library files provide this field (currently unused, but may be a good hint for sizing) (not used) Vec_Ptr_t vPins; // NamedSet<SC_Pin> int n_inputs; // -- 'pins[0 .. n_inputs-1]' are input pins diff --git a/src/map/scl/sclLibScl.c b/src/map/scl/sclLibScl.c index 59f8cbc6..f3a1b0ed 100644 --- a/src/map/scl/sclLibScl.c +++ b/src/map/scl/sclLibScl.c @@ -173,8 +173,8 @@ static int Abc_SclReadLibrary( Vec_Str_t * vOut, int * pPos, SC_Lib * p ) pPin->rise_cap = Vec_StrGetF(vOut, pPos); pPin->fall_cap = Vec_StrGetF(vOut, pPos); - pPin->rise_capI = (int)(MIO_NUM*pPin->rise_capI); - pPin->fall_capI = (int)(MIO_NUM*pPin->fall_capI); + pPin->rise_capI = (int)(MIO_NUM*pPin->rise_cap); + pPin->fall_capI = (int)(MIO_NUM*pPin->fall_cap); } for ( j = 0; j < pCell->n_outputs; j++ ) |