diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-31 02:01:36 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-31 02:01:36 -0700 |
commit | 90a88462c4140aad870ad7ab4c23e953131afdfd (patch) | |
tree | 7dd139ab1cdf14f31ab7b080138baaac56ba29d3 /src/opt/sfm/sfmWin.c | |
parent | ba309121d7f1dbc9071a552d459bcaa6be7da31b (diff) | |
download | abc-90a88462c4140aad870ad7ab4c23e953131afdfd.tar.gz abc-90a88462c4140aad870ad7ab4c23e953131afdfd.tar.bz2 abc-90a88462c4140aad870ad7ab4c23e953131afdfd.zip |
New MFS package.
Diffstat (limited to 'src/opt/sfm/sfmWin.c')
-rw-r--r-- | src/opt/sfm/sfmWin.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/opt/sfm/sfmWin.c b/src/opt/sfm/sfmWin.c index f12474c9..fa0b484b 100644 --- a/src/opt/sfm/sfmWin.c +++ b/src/opt/sfm/sfmWin.c @@ -214,8 +214,7 @@ void Sfm_NtkAddDivisors( Sfm_Ntk_t * p, int iNode, int nLevelMax ) if ( p->pPars->nFanoutMax && i > p->pPars->nFanoutMax ) return; // skip TFI nodes, PO nodes, or nodes with high logic level - if ( Sfm_ObjIsTravIdCurrent(p, iFanout) || Sfm_ObjIsPo(p, iFanout) || - (p->pPars->fFixLevel && Sfm_ObjLevel(p, iFanout) > nLevelMax) ) + if ( Sfm_ObjIsTravIdCurrent(p, iFanout) || Sfm_ObjIsPo(p, iFanout) || Sfm_ObjLevel(p, iFanout) > nLevelMax ) continue; // handle single-input nodes if ( Sfm_ObjFaninNum(p, iFanout) == 1 ) @@ -362,6 +361,15 @@ int Sfm_NtkCreateWindow( Sfm_Ntk_t * p, int iNode, int fVerbose ) break; } if ( Vec_IntSize(p->vRoots) > 0 ) + Vec_IntForEachEntry( p->vTfo, iTemp, i ) + if ( Sfm_NtkCollectTfi_rec( p, iTemp, p->vOrder ) ) + { + Vec_IntClear( p->vRoots ); + Vec_IntClear( p->vTfo ); + Vec_IntClear( p->vOrder ); + break; + } + if ( Vec_IntSize(p->vRoots) > 0 ) Vec_IntForEachEntry( p->vDivs, iTemp, i ) if ( Sfm_NtkCollectTfi_rec( p, iTemp, p->vOrder ) ) { |