Commit 5de8e60b by Alan Mishchenko

Improving printouts of critical path.

parent 8c1513df
...@@ -932,15 +932,15 @@ float Abc_NtkDelayTrace( Abc_Ntk_t * pNtk, Abc_Obj_t * pOut, Abc_Obj_t * pIn, in ...@@ -932,15 +932,15 @@ float Abc_NtkDelayTrace( Abc_Ntk_t * pNtk, Abc_Obj_t * pOut, Abc_Obj_t * pIn, in
printf( "I/O time: (" ); printf( "I/O time: (" );
Abc_ObjForEachFanin( pNode, pFanin, k ) Abc_ObjForEachFanin( pNode, pFanin, k )
printf( "%s%.1f", (k? ", ":""), Abc_NodeReadArrival(pFanin)->Worst ); printf( "%s%.1f", (k? ", ":""), Abc_NodeReadArrival(pFanin)->Worst );
if ( Abc_NodeReadRequired(pNode)->Worst == -ABC_INFINITY ) printf( " -> %.1f)", Abc_NodeReadArrival(pNode)->Worst + Slack );
printf( " -> ?)" );
else
printf( " -> %.1f)", Abc_NodeReadRequired(pNode)->Worst );
} }
printf( "\n" ); printf( "\n" );
} }
printf( "Level %3d : ", Abc_ObjLevel(Abc_ObjFanin0(pOut)) + 1 ); printf( "Level %3d : ", Abc_ObjLevel(Abc_ObjFanin0(pOut)) + 1 );
printf( "Primary output \"%s\". ", Abc_ObjName(pOut) ); printf( "Primary output \"%s\". ", Abc_ObjName(pOut) );
if ( Abc_NodeRequired(pOut)->Worst == 0.0 )
printf( "Required time = %6.1f. ", Abc_NodeReadArrival(Abc_ObjFanin0(pOut))->Worst );
else
printf( "Required time = %6.1f. ", Abc_NodeRequired(pOut)->Worst ); printf( "Required time = %6.1f. ", Abc_NodeRequired(pOut)->Worst );
printf( "Path slack = %6.1f.\n", Slack ); printf( "Path slack = %6.1f.\n", Slack );
} }
......
...@@ -253,7 +253,7 @@ void Map_TimeComputeRequired( Map_Man_t * p, float fRequired ) ...@@ -253,7 +253,7 @@ void Map_TimeComputeRequired( Map_Man_t * p, float fRequired )
ptTimeA = Map_Regular(p->pOutputs[i])->tArrival + fPhase; ptTimeA = Map_Regular(p->pOutputs[i])->tArrival + fPhase;
// if external required time can be achieved, use it // if external required time can be achieved, use it
if ( p->pOutputRequireds && p->pOutputRequireds[i].Worst > 0 && ptTimeA->Worst <= p->pOutputRequireds[i].Worst && p->pOutputRequireds[i].Worst <= fRequired ) if ( p->pOutputRequireds && p->pOutputRequireds[i].Worst > 0 && ptTimeA->Worst <= p->pOutputRequireds[i].Worst )//&& p->pOutputRequireds[i].Worst <= fRequired )
ptTime->Rise = ptTime->Fall = ptTime->Worst = p->pOutputRequireds[i].Worst; ptTime->Rise = ptTime->Fall = ptTime->Worst = p->pOutputRequireds[i].Worst;
// if external required cannot be achieved, set the earliest possible arrival time // if external required cannot be achieved, set the earliest possible arrival time
else if ( p->pOutputRequireds && p->pOutputRequireds[i].Worst > 0 && ptTimeA->Worst > p->pOutputRequireds[i].Worst ) else if ( p->pOutputRequireds && p->pOutputRequireds[i].Worst > 0 && ptTimeA->Worst > p->pOutputRequireds[i].Worst )
......
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