diff options
-rw-r--r-- | src/map/if/ifTime.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/map/if/ifTime.c b/src/map/if/ifTime.c index 7402bd31..ca53776d 100644 --- a/src/map/if/ifTime.c +++ b/src/map/if/ifTime.c @@ -363,8 +363,16 @@ void If_ManComputeRequired( If_Man_t * p ) // set the required times for the POs if ( p->pPars->fDoAverage ) { - If_ManForEachCo( p, pObj, i ) - If_ObjFanin0(pObj)->Required = If_ObjArrTime(If_ObjFanin0(pObj)); + 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_ObjFanin0(pObj)->Required = If_ObjArrTime(If_ObjFanin0(pObj)); + } } else if ( p->pPars->fLatchPaths ) { @@ -443,8 +451,16 @@ void If_ManComputeRequired( If_Man_t * p ) } else if ( p->pPars->fDoAverage ) { - If_ManForEachCo( p, pObj, i ) - Tim_ManSetCoRequired( p->pManTim, i, If_ObjArrTime(If_ObjFanin0(pObj)) ); + 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 ) + Tim_ManSetCoRequired( p->pManTim, i, If_ObjArrTime(If_ObjFanin0(pObj)) ); + } } else if ( p->pPars->fLatchPaths ) { |