From b6b9d284c4895f48c61294a8619ab14bf3bc14b3 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 7 Apr 2015 00:33:20 +0700 Subject: Several additional fixed in the timing manager. --- src/base/abci/abcTiming.c | 2 +- src/base/io/ioReadBlif.c | 12 ++++++++++++ src/base/io/ioWriteBlif.c | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) (limited to 'src/base') 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" ); -- cgit v1.2.3