diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-08-12 23:27:20 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-08-12 23:27:20 -0700 |
commit | fcfafb06017e50144966cd4d56dfac77123ae03c (patch) | |
tree | 19530feac7ee2d1cd912939dc5d46af3bfd1571b /src/misc/util/utilTruth.h | |
parent | ae27704c13b8b964ec5e82d685693a2c782744d0 (diff) | |
download | abc-fcfafb06017e50144966cd4d56dfac77123ae03c.tar.gz abc-fcfafb06017e50144966cd4d56dfac77123ae03c.tar.bz2 abc-fcfafb06017e50144966cd4d56dfac77123ae03c.zip |
Enabling additional matching feature in the LUT mapper.
Diffstat (limited to 'src/misc/util/utilTruth.h')
-rw-r--r-- | src/misc/util/utilTruth.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/misc/util/utilTruth.h b/src/misc/util/utilTruth.h index 65b646fa..245a78fc 100644 --- a/src/misc/util/utilTruth.h +++ b/src/misc/util/utilTruth.h @@ -1067,6 +1067,50 @@ static inline void Abc_TtSwapVars( word * pTruth, int nVars, int iVar, int jVar /**Function************************************************************* + Synopsis [Support minimization.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline void Abc_TtShrink( word * pF, int nVars, int nVarsAll, unsigned Phase ) +{ + int i, k, Var = 0; + assert( nVarsAll <= 16 ); + for ( i = 0; i < nVarsAll; i++ ) + if ( Phase & (1 << i) ) + { + for ( k = i-1; k >= Var; k-- ) + Abc_TtSwapAdjacent( pF, Abc_TtWordNum(nVarsAll), k ); + Var++; + } + assert( Var == nVars ); +} +static inline int Abc_TtMinimumBase( word * t, int * pSupp, int nVarsAll, int * pnVars ) +{ + int v, iVar = 0, uSupp = 0; + assert( nVarsAll <= 16 ); + for ( v = 0; v < nVarsAll; v++ ) + if ( Abc_TtHasVar( t, nVarsAll, v ) ) + { + uSupp |= (1 << v); + if ( pSupp ) + pSupp[iVar] = pSupp[v]; + iVar++; + } + if ( pnVars ) + *pnVars = iVar; + if ( uSupp == 0 || Abc_TtSuppIsMinBase( uSupp ) ) + return 0; + Abc_TtShrink( t, iVar, nVarsAll, uSupp ); + return 1; +} + +/**Function************************************************************* + Synopsis [Implemeting given NPN config.] Description [] |