summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-04-07 00:33:20 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2015-04-07 00:33:20 +0700
commitb6b9d284c4895f48c61294a8619ab14bf3bc14b3 (patch)
treed09ae22ed2e39d892f2d4140cd9e12bc5e8473d3 /src/base
parent452ff2730ccdb492ea8756579c2a1268d9f05b16 (diff)
downloadabc-b6b9d284c4895f48c61294a8619ab14bf3bc14b3.tar.gz
abc-b6b9d284c4895f48c61294a8619ab14bf3bc14b3.tar.bz2
abc-b6b9d284c4895f48c61294a8619ab14bf3bc14b3.zip
Several additional fixed in the timing manager.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/abci/abcTiming.c2
-rw-r--r--src/base/io/ioReadBlif.c12
-rw-r--r--src/base/io/ioWriteBlif.c4
3 files changed, 15 insertions, 3 deletions
diff --git a/src/base/abci/abcTiming.c b/src/base/abci/abcTiming.c
index b5a66899..ae0e7f45 100644
--- a/src/base/abci/abcTiming.c
+++ b/src/base/abci/abcTiming.c
@@ -489,7 +489,7 @@ Abc_ManTime_t * Abc_ManTimeStart( Abc_Ntk_t * pNtk )
Abc_NtkTimeSetArrival( pNtk, Abc_ObjId(pObj), p->tArrDef.Rise, p->tArrDef.Rise );
// set the default timing for COs
Abc_NtkForEachCo( pNtk, pObj, i )
- Abc_NtkTimeSetArrival( pNtk, Abc_ObjId(pObj), p->tReqDef.Rise, p->tReqDef.Rise );
+ Abc_NtkTimeSetRequired( pNtk, Abc_ObjId(pObj), p->tReqDef.Rise, p->tReqDef.Rise );
return p;
}
diff --git a/src/base/io/ioReadBlif.c b/src/base/io/ioReadBlif.c
index 5e6693e3..405b44d6 100644
--- a/src/base/io/ioReadBlif.c
+++ b/src/base/io/ioReadBlif.c
@@ -56,6 +56,10 @@ struct Io_ReadBlif_t_
float DefInDriFall; // input drive default
float DefOutLoadRise;// output load default
float DefOutLoadFall;// output load default
+ int fHaveDefInArr; // provided in the file
+ int fHaveDefOutReq; // provided in the file
+ int fHaveDefInDri; // provided in the file
+ int fHaveDefOutLoad;// provided in the file
// the error message
FILE * Output; // the output stream
char sError[1000]; // the error string generated during parsing
@@ -969,6 +973,7 @@ int Io_ReadBlifNetworkDefaultInputArrival( Io_ReadBlif_t * p, Vec_Ptr_t * vToken
//Abc_NtkTimeSetDefaultArrival( p->pNtkCur, (float)TimeRise, (float)TimeFall );
p->DefInArrRise = (float)TimeRise;
p->DefInArrFall = (float)TimeFall;
+ p->fHaveDefInArr = 1;
return 0;
}
@@ -1010,6 +1015,7 @@ int Io_ReadBlifNetworkDefaultOutputRequired( Io_ReadBlif_t * p, Vec_Ptr_t * vTok
// Abc_NtkTimeSetDefaultRequired( p->pNtkCur, (float)TimeRise, (float)TimeFall );
p->DefOutReqRise = (float)TimeRise;
p->DefOutReqFall = (float)TimeFall;
+ p->fHaveDefOutReq = 1;
return 0;
}
@@ -1172,6 +1178,7 @@ int Io_ReadBlifNetworkDefaultInputDrive( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens
// Abc_NtkTimeSetDefaultInputDrive( p->pNtkCur, (float)TimeRise, (float)TimeFall );
p->DefInDriRise = (float)TimeRise;
p->DefInDriFall = (float)TimeFall;
+ p->fHaveDefInDri = 1;
return 0;
}
@@ -1213,6 +1220,7 @@ int Io_ReadBlifNetworkDefaultOutputLoad( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens
// Abc_NtkTimeSetDefaultOutputLoad( p->pNtkCur, (float)TimeRise, (float)TimeFall );
p->DefOutLoadRise = (float)TimeRise;
p->DefOutLoadFall = (float)TimeFall;
+ p->fHaveDefOutLoad = 1;
return 0;
}
@@ -1608,21 +1616,25 @@ int Io_ReadBlifCreateTiming( Io_ReadBlif_t * p, Abc_Ntk_t * pNtk )
//Abc_NtkTimeSetDefaultArrival( p->pNtkCur, (float)TimeRise, (float)TimeFall );
// p->DefInArrRise = (float)TimeRise;
// p->DefInArrFall = (float)TimeFall;
+ if ( p->fHaveDefInArr )
Abc_NtkTimeSetDefaultArrival( pNtk, p->DefInArrRise, p->DefInArrFall );
// set timing info
//Abc_NtkTimeSetDefaultRequired( p->pNtkCur, (float)TimeRise, (float)TimeFall );
// p->DefOutReqRise = (float)TimeRise;
// p->DefOutReqFall = (float)TimeFall;
+ if ( p->fHaveDefOutReq )
Abc_NtkTimeSetDefaultRequired( pNtk, p->DefOutReqRise, p->DefOutReqFall );
// set timing info
//Abc_NtkTimeSetDefaultInputDrive( p->pNtkCur, (float)TimeRise, (float)TimeFall );
// p->DefInDriRise = (float)TimeRise;
// p->DefInDriFall = (float)TimeFall;
+ if ( p->fHaveDefInDri )
Abc_NtkTimeSetDefaultInputDrive( pNtk, p->DefInDriRise, p->DefInDriFall );
// set timing info
//Abc_NtkTimeSetDefaultOutputLoad( p->pNtkCur, (float)TimeRise, (float)TimeFall );
// p->DefOutLoadRise = (float)TimeRise;
// p->DefOutLoadFall = (float)TimeFall;
+ if ( p->fHaveDefOutLoad )
Abc_NtkTimeSetDefaultOutputLoad( pNtk, p->DefOutLoadRise, p->DefOutLoadFall );
// set timing info
diff --git a/src/base/io/ioWriteBlif.c b/src/base/io/ioWriteBlif.c
index 57624b75..e77b3bce 100644
--- a/src/base/io/ioWriteBlif.c
+++ b/src/base/io/ioWriteBlif.c
@@ -684,10 +684,10 @@ void Io_WriteTimingInfo( FILE * pFile, Abc_Ntk_t * pNtk )
if ( pNtk->AndGateDelay != 0.0 )
fprintf( pFile, ".and_gate_delay %g\n", pNtk->AndGateDelay );
pTimeDefIn = Abc_NtkReadDefaultArrival( pNtk );
- if ( pTimeDefIn->Rise != 0.0 || pTimeDefIn->Fall != 0.0 )
+ //if ( pTimeDefIn->Rise != 0.0 || pTimeDefIn->Fall != 0.0 )
fprintf( pFile, ".default_input_arrival %g %g\n", pTimeDefIn->Rise, pTimeDefIn->Fall );
pTimeDefOut = Abc_NtkReadDefaultRequired( pNtk );
- if ( pTimeDefOut->Rise != ABC_INFINITY || pTimeDefOut->Fall != ABC_INFINITY )
+ //if ( pTimeDefOut->Rise != ABC_INFINITY || pTimeDefOut->Fall != ABC_INFINITY )
fprintf( pFile, ".default_output_required %g %g\n", pTimeDefOut->Rise, pTimeDefOut->Fall );
fprintf( pFile, "\n" );