Bug fix in required time propagation.

This commit is contained in:
Alan Mishchenko 2026-06-08 17:05:54 +07:00
parent b7ee7a5f70
commit 9749046cd6
1 changed files with 5 additions and 2 deletions

View File

@ -338,7 +338,7 @@ float If_ManDelayMax( If_Man_t * p, int fSeq )
void If_ManComputeRequired( If_Man_t * p )
{
If_Obj_t * pObj;
int i, Counter;
int i, iBox, Counter;
float reqTime;
// compute area, clean required times, collect nodes used in the mapping
@ -480,7 +480,7 @@ void If_ManComputeRequired( If_Man_t * p )
if ( p->pPars->pTimesReq )
{
Counter = 0;
If_ManForEachCo( p, pObj, i )
If_ManForEachPo( p, pObj, i )
{
reqTime = p->pPars->pTimesReq[i];
if ( If_ObjArrTime(If_ObjFanin0(pObj)) > reqTime + p->fEpsilon )
@ -551,6 +551,9 @@ void If_ManComputeRequired( If_Man_t * p )
{
reqTime = pObj->Required;
Tim_ManSetCiRequired( p->pManTim, pObj->IdPio, reqTime );
iBox = Tim_ManBoxForCi( p->pManTim, pObj->IdPio );
if ( iBox >= 0 )
Tim_ManSetPreviousTravIdBoxInputs( p->pManTim, iBox );
}
else if ( If_ObjIsCo(pObj) )
{