Commit d76a96d2 by Alan Mishchenko

Bug fix in propagating required times in &nf.

parent 0e0f2e64
...@@ -1437,7 +1437,7 @@ void Nf_ManSetOutputRequireds( Nf_Man_t * p, int fPropCompl ) ...@@ -1437,7 +1437,7 @@ void Nf_ManSetOutputRequireds( Nf_Man_t * p, int fPropCompl )
else else
{ {
if ( p->pGia->vOutReqs && Vec_FltEntry(p->pGia->vOutReqs, i) > 0 && Required <= Nf_Flt2Wrd(Vec_FltEntry(p->pGia->vOutReqs, i)) ) if ( p->pGia->vOutReqs && Vec_FltEntry(p->pGia->vOutReqs, i) > 0 && Required <= Nf_Flt2Wrd(Vec_FltEntry(p->pGia->vOutReqs, i)) )
Required = Nf_Flt2Wrd(Vec_FltEntry(p->pGia->vOutReqs, i)); Required = Abc_MinWord( 2*Required, Nf_Flt2Wrd(Vec_FltEntry(p->pGia->vOutReqs, i)) );
} }
// 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->pGia->vOutReqs && Vec_FltEntry(p->pGia->vOutReqs, i) > 0 && Required > Vec_FltEntry(p->pGia->vOutReqs, i) ) // else if ( p->pGia->vOutReqs && Vec_FltEntry(p->pGia->vOutReqs, i) > 0 && Required > Vec_FltEntry(p->pGia->vOutReqs, i) )
...@@ -2127,7 +2127,7 @@ void Nf_ManUpdateStats( Nf_Man_t * p ) ...@@ -2127,7 +2127,7 @@ void Nf_ManUpdateStats( Nf_Man_t * p )
p->pPars->Area++; p->pPars->Area++;
p->nInvs++; p->nInvs++;
} }
if ( p->Iter && WordMapDelayOld < p->pPars->WordMapDelay ) if ( p->Iter && WordMapDelayOld < p->pPars->WordMapDelay && p->pGia->vOutReqs == NULL )
printf( "******** Critical delay violation %.2f -> %.2f ********\n", Nf_Wrd2Flt(WordMapDelayOld), Nf_Wrd2Flt(p->pPars->WordMapDelay) ); printf( "******** Critical delay violation %.2f -> %.2f ********\n", Nf_Wrd2Flt(WordMapDelayOld), Nf_Wrd2Flt(p->pPars->WordMapDelay) );
} }
......
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