summaryrefslogtreecommitdiffstats
path: root/src/map/if/ifMap.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-10-01 17:00:59 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-10-01 17:00:59 +0700
commite6e6a3cf9ecfccf71cba45273ea866e7e2526f0a (patch)
tree624cbbdca94773dced12e3689362d13358ae62f9 /src/map/if/ifMap.c
parentff4c674dd7afd2c8f3fa3e52aca8c1e65829315d (diff)
downloadabc-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.c23
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 );