summaryrefslogtreecommitdiffstats
path: root/src/aig/gia
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-10-01 11:47:58 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2015-10-01 11:47:58 -0700
commitd76a96d22f2cf6f964720d7998757e2caadf80ee (patch)
treeb64d80f56a16abcea648fe11966455f8a44d3f32 /src/aig/gia
parent0e0f2e64af4a101f8a60d236f29b95dd7cfd1fbf (diff)
downloadabc-d76a96d22f2cf6f964720d7998757e2caadf80ee.tar.gz
abc-d76a96d22f2cf6f964720d7998757e2caadf80ee.tar.bz2
abc-d76a96d22f2cf6f964720d7998757e2caadf80ee.zip
Bug fix in propagating required times in &nf.
Diffstat (limited to 'src/aig/gia')
-rw-r--r--src/aig/gia/giaNf.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/aig/gia/giaNf.c b/src/aig/gia/giaNf.c
index b088c4f2..7f9b83aa 100644
--- a/src/aig/gia/giaNf.c
+++ b/src/aig/gia/giaNf.c
@@ -1437,7 +1437,7 @@ void Nf_ManSetOutputRequireds( Nf_Man_t * p, int fPropCompl )
else
{
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
// 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 )
p->pPars->Area++;
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) );
}