diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2015-03-18 20:36:54 +0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2015-03-18 20:36:54 +0700 |
commit | 8095c2d1adc5af256108679917cc5e9591090489 (patch) | |
tree | bf200547ac21e9d2984b47c9a9885176d19b0604 | |
parent | fad6254c07ec04ce9ccb5fb67277cbe9b6a9db21 (diff) | |
download | abc-8095c2d1adc5af256108679917cc5e9591090489.tar.gz abc-8095c2d1adc5af256108679917cc5e9591090489.tar.bz2 abc-8095c2d1adc5af256108679917cc5e9591090489.zip |
Fix for not propagating user timing correctly after &nf.
-rw-r--r-- | src/base/abci/abcTiming.c | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/src/base/abci/abcTiming.c b/src/base/abci/abcTiming.c index 5484696a..3d37265e 100644 --- a/src/base/abci/abcTiming.c +++ b/src/base/abci/abcTiming.c @@ -188,8 +188,8 @@ void Abc_NtkTimeSetArrival( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall Abc_Time_t * pTime; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(pNtk); - if ( pNtk->pManTime->tArrDef.Rise == Rise && pNtk->pManTime->tArrDef.Fall == Fall ) - return; + //if ( pNtk->pManTime->tArrDef.Rise == Rise && pNtk->pManTime->tArrDef.Fall == Fall ) + // return; Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 ); // set the arrival time vTimes = pNtk->pManTime->vArrs; @@ -203,8 +203,8 @@ void Abc_NtkTimeSetRequired( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall Abc_Time_t * pTime; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(pNtk); - if ( pNtk->pManTime->tReqDef.Rise == Rise && pNtk->pManTime->tReqDef.Fall == Fall ) - return; + //if ( pNtk->pManTime->tReqDef.Rise == Rise && pNtk->pManTime->tReqDef.Fall == Fall ) + // return; Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 ); // set the required time vTimes = pNtk->pManTime->vReqs; @@ -521,6 +521,41 @@ void Abc_ManTimeDup( Abc_Ntk_t * pNtkOld, Abc_Ntk_t * pNtkNew ) /**Function************************************************************* + Synopsis [Prepares the timing manager for delay trace.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Abc_NtkTimePrint( Abc_Ntk_t * pNtk ) +{ + if ( pNtk->pManTime == NULL ) + printf( "There is no timing manager\n" ); + else + { + Abc_Obj_t * pObj; int i; + printf( "Default arrival = %8f\n", pNtk->pManTime->tArrDef.Fall ); + printf( "Default required = %8f\n", pNtk->pManTime->tReqDef.Fall ); + printf( "Inputs (%d):\n", Abc_NtkCiNum(pNtk) ); + Abc_NtkForEachCi( pNtk, pObj, i ) + printf( "%20s arrival = %8f required = %8f\n", + Abc_ObjName(pObj), + Abc_NodeReadArrivalWorst(pObj), + Abc_NodeReadRequiredWorst(pObj) ); + printf( "Outputs (%d):\n", Abc_NtkCoNum(pNtk) ); + Abc_NtkForEachCo( pNtk, pObj, i ) + printf( "%20s arrival = %8f required = %8f\n", + Abc_ObjName(pObj), + Abc_NodeReadArrivalWorst(pObj), + Abc_NodeReadRequiredWorst(pObj) ); + } +} + +/**Function************************************************************* + Synopsis [Expends the storage for timing information.] Description [] |