summaryrefslogtreecommitdiffstats
path: root/src/base/cba
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2016-04-02 16:04:15 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2016-04-02 16:04:15 -0700
commit9074d19d69e7def0ebc9493510c72823da4d7ca8 (patch)
tree76982a9b036b09e2af7529f7fcb4c021a723a26d /src/base/cba
parent7724dfcca212ae1fd43cb095d5d85fea85c07608 (diff)
downloadabc-9074d19d69e7def0ebc9493510c72823da4d7ca8.tar.gz
abc-9074d19d69e7def0ebc9493510c72823da4d7ca8.tar.bz2
abc-9074d19d69e7def0ebc9493510c72823da4d7ca8.zip
Allowing Cba manager to be derived from another Cba manager.
Diffstat (limited to 'src/base/cba')
-rw-r--r--src/base/cba/cba.h2
-rw-r--r--src/base/cba/cbaNtk.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/base/cba/cba.h b/src/base/cba/cba.h
index a71830d6..36a93f32 100644
--- a/src/base/cba/cba.h
+++ b/src/base/cba/cba.h
@@ -1103,7 +1103,7 @@ extern int Cba_ManIsTopoOrder( Cba_Man_t * p );
extern Vec_Int_t * Cba_NtkCollectDfs( Cba_Ntk_t * p );
extern Cba_Man_t * Cba_ManCollapse( Cba_Man_t * p );
extern Cba_Man_t * Cba_ManExtractGroup( Cba_Man_t * p, Vec_Int_t * vObjs );
-extern Cba_Man_t * Cba_ManDeriveFromGia( Gia_Man_t * pGia, int fUseXor );
+extern Cba_Man_t * Cba_ManDeriveFromGia( Cba_Man_t * p, Gia_Man_t * pGia, int fUseXor );
extern Cba_Man_t * Cba_ManInsertGroup( Cba_Man_t * p, Vec_Int_t * vObjs, Cba_Ntk_t * pSyn );
/*=== cbaReadBlif.c ==========================================================*/
extern Cba_Man_t * Prs_ManBuildCbaBlif( char * pFileName, Vec_Ptr_t * vDes );
diff --git a/src/base/cba/cbaNtk.c b/src/base/cba/cbaNtk.c
index fee91192..e33adaea 100644
--- a/src/base/cba/cbaNtk.c
+++ b/src/base/cba/cbaNtk.c
@@ -1049,9 +1049,9 @@ static inline int Cba_NtkInsertGiaObj( Cba_Ntk_t * p, Gia_Man_t * pGia, int iObj
Vec_IntWriteEntry( vLit2Fon, Abc_Var2Lit(iObj, 0), Cba_ObjFon0(p, iObjNew) );
return iObjNew;
}
-Cba_Man_t * Cba_ManDeriveFromGia( Gia_Man_t * pGia, int fUseXor )
+Cba_Man_t * Cba_ManDeriveFromGia( Cba_Man_t * pOld, Gia_Man_t * pGia, int fUseXor )
{
- Cba_Man_t * p = Cba_ManAlloc( pGia->pSpec, 1, NULL, NULL, NULL, NULL );
+ Cba_Man_t * p = Cba_ManAlloc( pGia->pSpec, 1, pOld ? Abc_NamRef(pOld->pStrs) : NULL, pOld ? Abc_NamRef(pOld->pFuns) : NULL, NULL, NULL );
Cba_Ntk_t * pNtk = Cba_NtkAlloc( p, Abc_NamStrFindOrAdd(p->pStrs, pGia->pName, NULL), Gia_ManCiNum(pGia), Gia_ManCoNum(pGia), 1000, 2000, 2000 );
Vec_Int_t * vLit2Fon = Vec_IntStartFull( 2*Gia_ManObjNum(pGia) );
int i, iObj, iObjNew, NameId, iLit0, iFon0;