diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2011-10-01 17:00:59 +0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2011-10-01 17:00:59 +0700 |
commit | e6e6a3cf9ecfccf71cba45273ea866e7e2526f0a (patch) | |
tree | 624cbbdca94773dced12e3689362d13358ae62f9 /src/map/if/ifMap.c | |
parent | ff4c674dd7afd2c8f3fa3e52aca8c1e65829315d (diff) | |
download | abc-e6e6a3cf9ecfccf71cba45273ea866e7e2526f0a.tar.gz abc-e6e6a3cf9ecfccf71cba45273ea866e7e2526f0a.tar.bz2 abc-e6e6a3cf9ecfccf71cba45273ea866e7e2526f0a.zip |
Changes to the matching procedure.
Diffstat (limited to 'src/map/if/ifMap.c')
-rw-r--r-- | src/map/if/ifMap.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/map/if/ifMap.c b/src/map/if/ifMap.c index 68af7279..eb7f69b9 100644 --- a/src/map/if/ifMap.c +++ b/src/map/if/ifMap.c @@ -153,9 +153,10 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep if ( pCut->nLeaves > 0 ) { // recompute the parameters of the best cut - if ( p->pPars->pLutStruct ) - pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); - else if ( p->pPars->fDelayOpt ) +/// if ( p->pPars->pLutStruct ) +/// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); +// else if ( p->pPars->fDelayOpt ) + if ( p->pPars->fDelayOpt ) pCut->Delay = If_CutDelaySopCost( p, pCut ); else pCut->Delay = If_CutDelay( p, pObj, pCut ); @@ -205,9 +206,12 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep pCut->fUseless = 0; if ( p->pPars->pFuncCell && RetValue < 2 ) { - assert( pCut->nLimit >= 4 && pCut->nLimit <= 10 ); - pCut->fUseless = !p->pPars->pFuncCell( If_CutTruth(pCut), pCut->nLimit, pCut->nLeaves ); - p->nCutsUseless += pCut->fUseless; + assert( pCut->nLimit >= 4 && pCut->nLimit <= 16 ); + pCut->fUseless = !p->pPars->pFuncCell( If_CutTruth(pCut), pCut->nLimit, pCut->nLeaves, p->pPars->pLutStruct ); + p->nCutsUselessAll += pCut->fUseless; + p->nCutsUseless[pCut->nLeaves] += pCut->fUseless; + p->nCutsCountAll++; + p->nCutsCount[pCut->nLeaves]++; } } @@ -217,9 +221,10 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep if ( pCut->Cost == IF_COST_MAX ) continue; // check if the cut satisfies the required times - if ( p->pPars->pLutStruct ) - pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); - else if ( p->pPars->fDelayOpt ) +/// if ( p->pPars->pLutStruct ) +/// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); +// else if ( p->pPars->fDelayOpt ) + if ( p->pPars->fDelayOpt ) pCut->Delay = If_CutDelaySopCost( p, pCut ); else pCut->Delay = If_CutDelay( p, pObj, pCut ); |