summaryrefslogtreecommitdiffstats
path: root/src/aig
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2022-06-26 19:45:03 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2022-06-26 19:45:03 -0700
commitadcc398bc38c91fa4cc8849aca9eb69c6fb61d21 (patch)
tree34b8b7b8102016f4e1584cdc0cdf742e4a79b472 /src/aig
parent8cf3f54208b5cdda6a164db4a747a2e4bffcd93b (diff)
downloadabc-adcc398bc38c91fa4cc8849aca9eb69c6fb61d21.tar.gz
abc-adcc398bc38c91fa4cc8849aca9eb69c6fb61d21.tar.bz2
abc-adcc398bc38c91fa4cc8849aca9eb69c6fb61d21.zip
Dumping equivalences after SAT sweeping.
Diffstat (limited to 'src/aig')
-rw-r--r--src/aig/miniaig/miniaig.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/aig/miniaig/miniaig.h b/src/aig/miniaig/miniaig.h
index c501d326..0365b946 100644
--- a/src/aig/miniaig/miniaig.h
+++ b/src/aig/miniaig/miniaig.h
@@ -368,6 +368,20 @@ static inline int Mini_AigTruth( Mini_Aig_t * p, int * pVarLits, int nVars, unsi
Lit1 = Mini_AigTruth( p, pVarLits, Var, Mini_AigTt5Cofactor1(Truth, Var) );
return Mini_AigMuxProp( p, pVarLits[Var], Lit1, Lit0 );
}
+static char * Mini_AigPhase( Mini_Aig_t * p )
+{
+ char * pRes = MINI_AIG_CALLOC( char, Mini_AigNodeNum(p) );
+ int i;
+ Mini_AigForEachAnd( p, i )
+ {
+ int iFaninLit0 = Mini_AigNodeFanin0( p, i );
+ int iFaninLit1 = Mini_AigNodeFanin1( p, i );
+ int Phase0 = pRes[Mini_AigLit2Var(iFaninLit0)] ^ Mini_AigLitIsCompl(iFaninLit0);
+ int Phase1 = pRes[Mini_AigLit2Var(iFaninLit1)] ^ Mini_AigLitIsCompl(iFaninLit1);
+ pRes[i] = Phase0 & Phase1;
+ }
+ return pRes;
+}
// procedure to check the topological order during AIG construction
static int Mini_AigCheck( Mini_Aig_t * p )