Commit 73289034 by Alan Mishchenko

Added optimization for average rather than maximum delay.

parent 5acb147f
...@@ -363,9 +363,17 @@ void If_ManComputeRequired( If_Man_t * p ) ...@@ -363,9 +363,17 @@ void If_ManComputeRequired( If_Man_t * p )
// set the required times for the POs // set the required times for the POs
if ( p->pPars->fDoAverage ) if ( p->pPars->fDoAverage )
{ {
if ( p->pPars->nRelaxRatio )
{
If_ManForEachCo( p, pObj, i )
If_ObjFanin0(pObj)->Required = If_ObjArrTime(If_ObjFanin0(pObj)) * (100.0 + p->pPars->nRelaxRatio) / 100.0;
}
else
{
If_ManForEachCo( p, pObj, i ) If_ManForEachCo( p, pObj, i )
If_ObjFanin0(pObj)->Required = If_ObjArrTime(If_ObjFanin0(pObj)); If_ObjFanin0(pObj)->Required = If_ObjArrTime(If_ObjFanin0(pObj));
} }
}
else if ( p->pPars->fLatchPaths ) else if ( p->pPars->fLatchPaths )
{ {
If_ManForEachLatchInput( p, pObj, i ) If_ManForEachLatchInput( p, pObj, i )
...@@ -443,9 +451,17 @@ void If_ManComputeRequired( If_Man_t * p ) ...@@ -443,9 +451,17 @@ void If_ManComputeRequired( If_Man_t * p )
} }
else if ( p->pPars->fDoAverage ) else if ( p->pPars->fDoAverage )
{ {
if ( p->pPars->nRelaxRatio )
{
If_ManForEachCo( p, pObj, i )
Tim_ManSetCoRequired( p->pManTim, i, If_ObjArrTime(If_ObjFanin0(pObj)) * (100.0 + p->pPars->nRelaxRatio) / 100.0 );
}
else
{
If_ManForEachCo( p, pObj, i ) If_ManForEachCo( p, pObj, i )
Tim_ManSetCoRequired( p->pManTim, i, If_ObjArrTime(If_ObjFanin0(pObj)) ); Tim_ManSetCoRequired( p->pManTim, i, If_ObjArrTime(If_ObjFanin0(pObj)) );
} }
}
else if ( p->pPars->fLatchPaths ) else if ( p->pPars->fLatchPaths )
{ {
If_ManForEachPo( p, pObj, i ) If_ManForEachPo( p, pObj, i )
......
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