diff options
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/abc/abc.h | 1 | ||||
-rw-r--r-- | src/base/abci/abcIf.c | 2 | ||||
-rw-r--r-- | src/base/abci/abcTiming.c | 25 | ||||
-rw-r--r-- | src/base/io/ioWriteBlif.c | 2 |
4 files changed, 17 insertions, 13 deletions
diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index eeda95a3..e5b57ec8 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -907,6 +907,7 @@ extern ABC_DLL void Abc_ManTimeStop( Abc_ManTime_t * p ); extern ABC_DLL void Abc_ManTimeDup( Abc_Ntk_t * pNtkOld, Abc_Ntk_t * pNtkNew ); extern ABC_DLL void Abc_NtkSetNodeLevelsArrival( Abc_Ntk_t * pNtk ); extern ABC_DLL float * Abc_NtkGetCiArrivalFloats( Abc_Ntk_t * pNtk ); +extern ABC_DLL float * Abc_NtkGetCoRequiredFloats( Abc_Ntk_t * pNtk ); extern ABC_DLL Abc_Time_t * Abc_NtkGetCiArrivalTimes( Abc_Ntk_t * pNtk ); extern ABC_DLL Abc_Time_t * Abc_NtkGetCoRequiredTimes( Abc_Ntk_t * pNtk ); extern ABC_DLL float Abc_NtkDelayTrace( Abc_Ntk_t * pNtk, Abc_Obj_t * pOut, Abc_Obj_t * pIn, int fPrint ); diff --git a/src/base/abci/abcIf.c b/src/base/abci/abcIf.c index 315507c2..926f3e74 100644 --- a/src/base/abci/abcIf.c +++ b/src/base/abci/abcIf.c @@ -123,7 +123,7 @@ Abc_Ntk_t * Abc_NtkIf( Abc_Ntk_t * pNtk, If_Par_t * pPars ) // get timing information pPars->pTimesArr = Abc_NtkGetCiArrivalFloats(pNtk); - pPars->pTimesReq = NULL; + pPars->pTimesReq = Abc_NtkGetCoRequiredFloats(pNtk); // set the latch paths if ( pPars->fLatchPaths && pPars->pTimesArr ) diff --git a/src/base/abci/abcTiming.c b/src/base/abci/abcTiming.c index 87c0e2b3..ce05e83e 100644 --- a/src/base/abci/abcTiming.c +++ b/src/base/abci/abcTiming.c @@ -557,18 +557,6 @@ Abc_Time_t * Abc_NtkGetCiArrivalTimes( Abc_Ntk_t * pNtk ) p[i] = *Abc_NodeArrival(pNode); return p; } - -/**Function************************************************************* - - Synopsis [Sets the CI node levels according to the arrival info.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ Abc_Time_t * Abc_NtkGetCoRequiredTimes( Abc_Ntk_t * pNtk ) { Abc_Time_t * p; @@ -608,6 +596,19 @@ float * Abc_NtkGetCiArrivalFloats( Abc_Ntk_t * pNtk ) p[i] = Abc_NodeArrival(pNode)->Worst; return p; } +float * Abc_NtkGetCoRequiredFloats( Abc_Ntk_t * pNtk ) +{ + float * p; + Abc_Obj_t * pNode; + int i; + if ( pNtk->pManTime == NULL ) + return NULL; + // set the PO required times + p = ABC_CALLOC( float, Abc_NtkCoNum(pNtk) ); + Abc_NtkForEachPo( pNtk, pNode, i ) + p[i] = Abc_NodeRequired(pNode)->Worst; + return p; +} /**Function************************************************************* diff --git a/src/base/io/ioWriteBlif.c b/src/base/io/ioWriteBlif.c index 7cc0d696..692ec3bb 100644 --- a/src/base/io/ioWriteBlif.c +++ b/src/base/io/ioWriteBlif.c @@ -712,6 +712,8 @@ void Io_WriteTimingInfo( FILE * pFile, Abc_Ntk_t * pNtk ) continue; fprintf( pFile, ".output_required %s %g %g\n", Abc_ObjName(Abc_ObjFanin0(pNode)), pTime->Rise, pTime->Fall ); } + + fprintf( pFile, "\n" ); } |