diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-12-21 01:04:39 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-12-21 01:04:39 -0800 |
commit | 6733abd72ef24ebb8e3732a2acd61195510e8fa7 (patch) | |
tree | e0f90f5b8ef7875f555f686a8db7eb200dd91013 /src/map/if | |
parent | 55f0a2805cd03ded51e882e9f29255dc1654318f (diff) | |
download | abc-6733abd72ef24ebb8e3732a2acd61195510e8fa7.tar.gz abc-6733abd72ef24ebb8e3732a2acd61195510e8fa7.tar.bz2 abc-6733abd72ef24ebb8e3732a2acd61195510e8fa7.zip |
Exprimental features in tech-mapping.
Diffstat (limited to 'src/map/if')
-rw-r--r-- | src/map/if/ifMap.c | 5 |
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 ); |