summaryrefslogtreecommitdiffstats
path: root/src/misc/util
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-08-12 23:27:20 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-08-12 23:27:20 -0700
commitfcfafb06017e50144966cd4d56dfac77123ae03c (patch)
tree19530feac7ee2d1cd912939dc5d46af3bfd1571b /src/misc/util
parentae27704c13b8b964ec5e82d685693a2c782744d0 (diff)
downloadabc-fcfafb06017e50144966cd4d56dfac77123ae03c.tar.gz
abc-fcfafb06017e50144966cd4d56dfac77123ae03c.tar.bz2
abc-fcfafb06017e50144966cd4d56dfac77123ae03c.zip
Enabling additional matching feature in the LUT mapper.
Diffstat (limited to 'src/misc/util')
-rw-r--r--src/misc/util/utilTruth.h44
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 []