From d3595d230f51c4208c56a62fa309e2f7861598fc Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 9 Oct 2012 12:35:47 -0700 Subject: Improvements to gate sizing (bug fix). --- src/map/scl/sclUpsize.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/map/scl/sclUpsize.c') diff --git a/src/map/scl/sclUpsize.c b/src/map/scl/sclUpsize.c index ffdb58d9..5216ed22 100644 --- a/src/map/scl/sclUpsize.c +++ b/src/map/scl/sclUpsize.c @@ -143,7 +143,8 @@ void Abc_SclFindCriticalNodeWindow_rec( SC_Man * p, Abc_Obj_t * pObj, Vec_Int_t if ( fSlackFan >= 0 ) Abc_SclFindCriticalNodeWindow_rec( p, pNext, vPath, fSlackFan ); } - Vec_IntPush( vPath, Abc_ObjId(pObj) ); + if ( Abc_ObjFaninNum(pObj) > 0 ) + Vec_IntPush( vPath, Abc_ObjId(pObj) ); } Vec_Int_t * Abc_SclFindCriticalNodeWindow( SC_Man * p, Vec_Int_t * vPathCos, int Window ) { @@ -196,7 +197,7 @@ Vec_Int_t * Abc_SclFindNodesToUpdate( Abc_Obj_t * pPivot, Vec_Int_t ** pvEvals ) // collect fanins, node, and fanouts vNodes = Vec_IntAlloc( 16 ); Abc_ObjForEachFanin( pPivot, pNext, i ) - if ( Abc_ObjIsNode(pNext) ) + if ( Abc_ObjIsNode(pNext) && Abc_ObjFaninNum(pNext) > 0 ) Vec_IntPush( vNodes, Abc_ObjId(pNext) ); Vec_IntPush( vNodes, Abc_ObjId(pPivot) ); Abc_ObjForEachFanout( pPivot, pNext, i ) @@ -539,11 +540,12 @@ void Abc_SclUpsizePerform( SC_Lib * pLib, Abc_Ntk_t * pNtk, int nIters, int Wind // update for best gates and recompute timing ABC_SWAP( Vec_Int_t *, p->vGatesBest, p->vGates ); Abc_SclTimeNtkRecompute( p, &p->SumArea, &p->MaxDelay, 0 ); + if ( fVerbose ) + Abc_SclUpsizePrint( p, i, Window, nAllPos/i, nAllNodes/i, nAllUpsizes/i, nAllTfos/i, 1 ); + // report runtime p->timeTotal = clock() - p->timeTotal; if ( fVerbose ) { - Abc_SclUpsizePrint( p, i, Window, nAllPos/i, nAllNodes/i, nAllUpsizes/i, nAllTfos/i, 1 ); - // report runtime p->timeOther = p->timeTotal - p->timeCone - p->timeSize - p->timeTime; ABC_PRTP( "Runtime: Critical path", p->timeCone, p->timeTotal ); ABC_PRTP( "Runtime: Sizing eval ", p->timeSize, p->timeTotal ); -- cgit v1.2.3