summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaDup.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2021-03-28 15:40:27 -1000
committerAlan Mishchenko <alanmi@berkeley.edu>2021-03-28 15:40:27 -1000
commit9145a5c20d5fe85523364d7fe2727b8d83c90aaa (patch)
tree6cd8e6bd0abc6332d67e144a9790cb5bb8ff2cac /src/aig/gia/giaDup.c
parent18088bd7dcf3de03cc4f9a439e6b41d04e2f8413 (diff)
downloadabc-9145a5c20d5fe85523364d7fe2727b8d83c90aaa.tar.gz
abc-9145a5c20d5fe85523364d7fe2727b8d83c90aaa.tar.bz2
abc-9145a5c20d5fe85523364d7fe2727b8d83c90aaa.zip
An option to extend the number of primary inputs.
Diffstat (limited to 'src/aig/gia/giaDup.c')
-rw-r--r--src/aig/gia/giaDup.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c
index ed4b7109..9de9e735 100644
--- a/src/aig/gia/giaDup.c
+++ b/src/aig/gia/giaDup.c
@@ -4899,6 +4899,38 @@ Gia_Man_t * Gia_ManDupReplaceCut( Gia_Man_t * p )
return pNew;
}
+/**Function*************************************************************
+
+ Synopsis [Duplicate AIG by creating a cut between logic fed by PIs]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+Gia_Man_t * Gia_ManDupAddPis( Gia_Man_t * p, int nMulti )
+{
+ Gia_Man_t * pNew; int i, k;
+ Gia_Obj_t * pObj;
+ pNew = Gia_ManStart( Gia_ManObjNum(p) + Gia_ManCiNum(p) * nMulti );
+ pNew->pName = Abc_UtilStrsav( p->pName );
+ Gia_ManConst0(p)->Value = 0;
+ Gia_ManForEachCi( p, pObj, i )
+ {
+ pObj->Value = Gia_ManAppendCi(pNew);
+ for ( k = 1; k < nMulti; k++ )
+ Gia_ManAppendCi(pNew);
+ }
+ Gia_ManForEachAnd( p, pObj, i )
+ pObj->Value = Gia_ManAppendAnd( pNew, Gia_ObjFanin0Copy(pObj), Gia_ObjFanin1Copy(pObj) );
+ Gia_ManForEachCo( p, pObj, i )
+ pObj->Value = Gia_ManAppendCo( pNew, Gia_ObjFanin0Copy(pObj) );
+ assert( Gia_ManCiNum(pNew) == nMulti * Gia_ManCiNum(p) );
+ return pNew;
+}
+
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
////////////////////////////////////////////////////////////////////////