Fix for not propagating user timing correctly after &nf.

This commit is contained in:
Alan Mishchenko 2015-03-18 20:36:54 +07:00
parent fad6254c07
commit 8095c2d1ad
1 changed files with 39 additions and 4 deletions

View File

@ -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;
@ -519,6 +519,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.]