Commit 8095c2d1 by Alan Mishchenko

Fix for not propagating user timing correctly after &nf.

parent fad6254c
...@@ -188,8 +188,8 @@ void Abc_NtkTimeSetArrival( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall ...@@ -188,8 +188,8 @@ void Abc_NtkTimeSetArrival( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall
Abc_Time_t * pTime; Abc_Time_t * pTime;
if ( pNtk->pManTime == NULL ) if ( pNtk->pManTime == NULL )
pNtk->pManTime = Abc_ManTimeStart(pNtk); pNtk->pManTime = Abc_ManTimeStart(pNtk);
if ( pNtk->pManTime->tArrDef.Rise == Rise && pNtk->pManTime->tArrDef.Fall == Fall ) //if ( pNtk->pManTime->tArrDef.Rise == Rise && pNtk->pManTime->tArrDef.Fall == Fall )
return; // return;
Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 ); Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 );
// set the arrival time // set the arrival time
vTimes = pNtk->pManTime->vArrs; vTimes = pNtk->pManTime->vArrs;
...@@ -203,8 +203,8 @@ void Abc_NtkTimeSetRequired( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall ...@@ -203,8 +203,8 @@ void Abc_NtkTimeSetRequired( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall
Abc_Time_t * pTime; Abc_Time_t * pTime;
if ( pNtk->pManTime == NULL ) if ( pNtk->pManTime == NULL )
pNtk->pManTime = Abc_ManTimeStart(pNtk); pNtk->pManTime = Abc_ManTimeStart(pNtk);
if ( pNtk->pManTime->tReqDef.Rise == Rise && pNtk->pManTime->tReqDef.Fall == Fall ) //if ( pNtk->pManTime->tReqDef.Rise == Rise && pNtk->pManTime->tReqDef.Fall == Fall )
return; // return;
Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 ); Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 );
// set the required time // set the required time
vTimes = pNtk->pManTime->vReqs; vTimes = pNtk->pManTime->vReqs;
...@@ -521,6 +521,41 @@ void Abc_ManTimeDup( Abc_Ntk_t * pNtkOld, Abc_Ntk_t * pNtkNew ) ...@@ -521,6 +521,41 @@ void Abc_ManTimeDup( Abc_Ntk_t * pNtkOld, Abc_Ntk_t * pNtkNew )
/**Function************************************************************* /**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.] Synopsis [Expends the storage for timing information.]
Description [] Description []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment