summaryrefslogtreecommitdiffstats
path: root/src/map/if/ifMap.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-12-21 01:04:39 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2014-12-21 01:04:39 -0800
commit6733abd72ef24ebb8e3732a2acd61195510e8fa7 (patch)
treee0f90f5b8ef7875f555f686a8db7eb200dd91013 /src/map/if/ifMap.c
parent55f0a2805cd03ded51e882e9f29255dc1654318f (diff)
downloadabc-6733abd72ef24ebb8e3732a2acd61195510e8fa7.tar.gz
abc-6733abd72ef24ebb8e3732a2acd61195510e8fa7.tar.bz2
abc-6733abd72ef24ebb8e3732a2acd61195510e8fa7.zip
Exprimental features in tech-mapping.
Diffstat (limited to 'src/map/if/ifMap.c')
-rw-r--r--src/map/if/ifMap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/map/if/ifMap.c b/src/map/if/ifMap.c
index 32e3ce15..89e94804 100644
--- a/src/map/if/ifMap.c
+++ b/src/map/if/ifMap.c
@@ -275,12 +275,13 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
if ( p->pPars->fUseAndVars )
{
int iDecMask = -1, truthId = Abc_Lit2Var(pCut->iCutFunc);
+ assert( p->pPars->nLutSize <= 13 );
if ( truthId >= Vec_IntSize(p->vTtDecs[pCut->nLeaves]) || Vec_IntEntry(p->vTtDecs[pCut->nLeaves], truthId) == -1 )
{
while ( truthId >= Vec_IntSize(p->vTtDecs[pCut->nLeaves]) )
Vec_IntPush( p->vTtDecs[pCut->nLeaves], -1 );
- if ( (int)pCut->nLeaves > p->pPars->nLutSize / 2 )
- iDecMask = Abc_TtProcessBiDec( If_CutTruthW(p, pCut), (int)pCut->nLeaves, p->pPars->nLutSize / 2 );
+ if ( (int)pCut->nLeaves > p->pPars->nLutSize / 2 && (int)pCut->nLeaves <= 2 * (p->pPars->nLutSize / 2) )
+ iDecMask = Abc_TtProcessBiDec( If_CutTruthWR(p, pCut), (int)pCut->nLeaves, p->pPars->nLutSize / 2 );
else
iDecMask = 0;
Vec_IntWriteEntry( p->vTtDecs[pCut->nLeaves], truthId, iDecMask );