diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-01-15 09:15:10 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-01-15 09:15:10 -0800 |
commit | 1f0e5533dc32c8c3543dece554a148815c7d49c2 (patch) | |
tree | 2bc16805e6f2c2b3fc8fc53aca215c5b19caa76d /src/map/if/ifMap.c | |
parent | 60a84f7350f6a4a07342c99fa28821574700a6bf (diff) | |
download | abc-1f0e5533dc32c8c3543dece554a148815c7d49c2.tar.gz abc-1f0e5533dc32c8c3543dece554a148815c7d49c2.tar.bz2 abc-1f0e5533dc32c8c3543dece554a148815c7d49c2.zip |
Several small bug fixes in the mapper.
Diffstat (limited to 'src/map/if/ifMap.c')
-rw-r--r-- | src/map/if/ifMap.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/map/if/ifMap.c b/src/map/if/ifMap.c index a845f177..c6547fce 100644 --- a/src/map/if/ifMap.c +++ b/src/map/if/ifMap.c @@ -180,6 +180,7 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep If_ObjForEachCut( pObj->pFanin0, pCut0, i ) If_ObjForEachCut( pObj->pFanin1, pCut1, k ) { + // get the next free cut assert( pCutSet->nCuts <= pCutSet->nCutsMax ); pCut = pCutSet->ppCuts[pCutSet->nCuts]; @@ -227,11 +228,13 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep /// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); // else if ( p->pPars->fDelayOpt ) if ( p->pPars->fUserRecLib ) - pCut->Delay = If_CutDelayRecCost(p, pCut); + pCut->Delay = If_CutDelayRecCost(p, pCut); else if (p->pPars->fDelayOpt) pCut->Delay = If_CutDelaySopCost(p, pCut); else pCut->Delay = If_CutDelay( p, pObj, pCut ); + if ( pCut->Cost == IF_COST_MAX ) + continue; // Abc_Print( 1, "%.2f ", pCut->Delay ); if ( Mode && pCut->Delay > pObj->Required + p->fEpsilon ) continue; |