From 73289034befeeeb8f55b13d519459b752b43534a Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 29 Apr 2014 00:21:35 -0700 Subject: Added optimization for average rather than maximum delay. --- src/map/if/ifTime.c | 24 ++++++++++++++++++++---- 1 file 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 ) { -- cgit v1.2.3