summaryrefslogtreecommitdiffstats
path: root/src/aig/saig/saigSynch.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-10-04 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-10-04 08:01:00 -0700
commiteb75697fe00a8668f74b3c710dcbf5658e07d167 (patch)
tree05b78ce8fb95fcc37b013f5bfd9da0dd3544b42a /src/aig/saig/saigSynch.c
parent689cbe904e3a28d7502feb9931b748764f947aaf (diff)
downloadabc-eb75697fe00a8668f74b3c710dcbf5658e07d167.tar.gz
abc-eb75697fe00a8668f74b3c710dcbf5658e07d167.tar.bz2
abc-eb75697fe00a8668f74b3c710dcbf5658e07d167.zip
Version abc81004
Diffstat (limited to 'src/aig/saig/saigSynch.c')
-rw-r--r--src/aig/saig/saigSynch.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/aig/saig/saigSynch.c b/src/aig/saig/saigSynch.c
index 9dbbb420..eb0fefc9 100644
--- a/src/aig/saig/saigSynch.c
+++ b/src/aig/saig/saigSynch.c
@@ -453,6 +453,40 @@ Vec_Str_t * Saig_SynchSequence( Aig_Man_t * pAig, int nWords )
/**Function*************************************************************
+ Synopsis [Duplicates the AIG to have constant-0 initial state.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+Aig_Man_t * Saig_ManDupInitZero( Aig_Man_t * p )
+{
+ Aig_Man_t * pNew;
+ Aig_Obj_t * pObj;
+ int i;
+ pNew = Aig_ManStart( Aig_ManObjNumMax(p) );
+ pNew->pName = Aig_UtilStrsav( p->pName );
+ Aig_ManConst1(p)->pData = Aig_ManConst1(pNew);
+ Saig_ManForEachPi( p, pObj, i )
+ pObj->pData = Aig_ObjCreatePi( pNew );
+ Saig_ManForEachLo( p, pObj, i )
+ pObj->pData = Aig_NotCond( Aig_ObjCreatePi( pNew ), pObj->fMarkA );
+ Aig_ManForEachNode( p, pObj, i )
+ pObj->pData = Aig_And( pNew, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) );
+ Saig_ManForEachPo( p, pObj, i )
+ pObj->pData = Aig_ObjCreatePo( pNew, Aig_ObjChild0Copy(pObj) );
+ Saig_ManForEachLi( p, pObj, i )
+ pObj->pData = Aig_ObjCreatePo( pNew, Aig_NotCond( Aig_ObjChild0Copy(pObj), pObj->fMarkA ) );
+ Aig_ManSetRegNum( pNew, Saig_ManRegNum(p) );
+ assert( Aig_ManNodeNum(pNew) == Aig_ManNodeNum(p) );
+ return pNew;
+}
+
+/**Function*************************************************************
+
Synopsis [Determines synchronizing sequence using ternary simulation.]
Description []