summaryrefslogtreecommitdiffstats
path: root/src/temp/aig
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2006-08-25 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2006-08-25 08:01:00 -0700
commitc5c9e37a0a8cbd6fe29c3430b518b4305060fb4c (patch)
treec7c49dcf9d3280b4fd636ec0a7f84d9f34d5b31f /src/temp/aig
parent735bca1658f92881e12a616f9bdc6a58d0a4c60b (diff)
downloadabc-c5c9e37a0a8cbd6fe29c3430b518b4305060fb4c.tar.gz
abc-c5c9e37a0a8cbd6fe29c3430b518b4305060fb4c.tar.bz2
abc-c5c9e37a0a8cbd6fe29c3430b518b4305060fb4c.zip
Version abc60825
Diffstat (limited to 'src/temp/aig')
-rw-r--r--src/temp/aig/aig.h2
-rw-r--r--src/temp/aig/aigDfs.c9
-rw-r--r--src/temp/aig/aigMan.c1
-rw-r--r--src/temp/aig/aigOper.c8
4 files changed, 14 insertions, 6 deletions
diff --git a/src/temp/aig/aig.h b/src/temp/aig/aig.h
index e489d978..5166d0c3 100644
--- a/src/temp/aig/aig.h
+++ b/src/temp/aig/aig.h
@@ -137,7 +137,7 @@ static inline int Aig_ManObjNum( Aig_Man_t * p ) { return p->nC
static inline Aig_Type_t Aig_ObjType( Aig_Obj_t * pObj ) { return pObj->Type; }
static inline int Aig_ObjIsNone( Aig_Obj_t * pObj ) { return pObj->Type == AIG_NONE; }
-static inline int Aig_ObjIsConst1( Aig_Obj_t * pObj ) { return pObj->Type == AIG_CONST1; }
+static inline int Aig_ObjIsConst1( Aig_Obj_t * pObj ) { assert(!Aig_IsComplement(pObj)); return pObj->Type == AIG_CONST1; }
static inline int Aig_ObjIsPi( Aig_Obj_t * pObj ) { return pObj->Type == AIG_PI; }
static inline int Aig_ObjIsPo( Aig_Obj_t * pObj ) { return pObj->Type == AIG_PO; }
static inline int Aig_ObjIsAnd( Aig_Obj_t * pObj ) { return pObj->Type == AIG_AND; }
diff --git a/src/temp/aig/aigDfs.c b/src/temp/aig/aigDfs.c
index e289f6ec..2fe8b2ef 100644
--- a/src/temp/aig/aigDfs.c
+++ b/src/temp/aig/aigDfs.c
@@ -325,9 +325,12 @@ Aig_Obj_t * Aig_Transfer( Aig_Man_t * pSour, Aig_Man_t * pDest, Aig_Obj_t * pRoo
if ( Aig_ObjIsConst1( Aig_Regular(pRoot) ) )
return Aig_NotCond( Aig_ManConst1(pDest), Aig_IsComplement(pRoot) );
// set the PI mapping
- Aig_ManForEachPi( pDest, pObj, i )
- if ( i < nVars )
- Aig_IthVar(pSour, i)->pData = Aig_IthVar(pDest, i);
+ Aig_ManForEachPi( pSour, pObj, i )
+ {
+ if ( i == nVars )
+ break;
+ pObj->pData = Aig_IthVar(pDest, i);
+ }
// transfer and set markings
Aig_Transfer_rec( pDest, Aig_Regular(pRoot) );
// clear the markings
diff --git a/src/temp/aig/aigMan.c b/src/temp/aig/aigMan.c
index af6df62d..bb39712f 100644
--- a/src/temp/aig/aigMan.c
+++ b/src/temp/aig/aigMan.c
@@ -56,6 +56,7 @@ Aig_Man_t * Aig_ManStart()
Aig_ManStartMemory( p );
// create the constant node
p->pConst1 = Aig_ManFetchMemory( p );
+ p->pConst1->Type = AIG_CONST1;
p->pConst1->fPhase = 1;
p->nCreated = 1;
// start the table
diff --git a/src/temp/aig/aigOper.c b/src/temp/aig/aigOper.c
index cad240ae..9985093e 100644
--- a/src/temp/aig/aigOper.c
+++ b/src/temp/aig/aigOper.c
@@ -183,6 +183,7 @@ Aig_Obj_t * Aig_Or( Aig_Man_t * p, Aig_Obj_t * p0, Aig_Obj_t * p1 )
***********************************************************************/
Aig_Obj_t * Aig_Mux( Aig_Man_t * p, Aig_Obj_t * pC, Aig_Obj_t * p1, Aig_Obj_t * p0 )
{
+/*
Aig_Obj_t * pTempA1, * pTempA2, * pTempB1, * pTempB2, * pTemp;
int Count0, Count1;
// consider trivial cases
@@ -190,6 +191,9 @@ Aig_Obj_t * Aig_Mux( Aig_Man_t * p, Aig_Obj_t * pC, Aig_Obj_t * p1, Aig_Obj_t *
return Aig_Exor( p, pC, p0 );
// other cases can be added
// implement the first MUX (F = C * x1 + C' * x0)
+
+ // check for constants here!!!
+
pTempA1 = Aig_TableLookup( p, Aig_ObjCreateGhost(p, pC, p1, AIG_AND) );
pTempA2 = Aig_TableLookup( p, Aig_ObjCreateGhost(p, Aig_Not(pC), p0, AIG_AND) );
if ( pTempA1 && pTempA2 )
@@ -217,8 +221,8 @@ Aig_Obj_t * Aig_Mux( Aig_Man_t * p, Aig_Obj_t * pC, Aig_Obj_t * p1, Aig_Obj_t *
pTempB1 = pTempB1? pTempB1 : Aig_And(p, pC, Aig_Not(p1));
pTempB2 = pTempB2? pTempB2 : Aig_And(p, Aig_Not(pC), Aig_Not(p0));
return Aig_Not( Aig_Or( p, pTempB1, pTempB2 ) );
-
-// return Aig_Or( Aig_And(pC, p1), Aig_And(Aig_Not(pC), p0) );
+*/
+ return Aig_Or( p, Aig_And(p, pC, p1), Aig_And(p, Aig_Not(pC), p0) );
}
/**Function*************************************************************