summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-05-10 02:42:16 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-05-10 02:42:16 +0700
commit0a79a38a4dc385d7cd76a94f349b0f1af44ae82e (patch)
tree0d5dfa856845055f165e813089cf687be9350a17 /src
parent2f46b56ae60bc74175f1df525c1be46a12072357 (diff)
downloadabc-0a79a38a4dc385d7cd76a94f349b0f1af44ae82e.tar.gz
abc-0a79a38a4dc385d7cd76a94f349b0f1af44ae82e.tar.bz2
abc-0a79a38a4dc385d7cd76a94f349b0f1af44ae82e.zip
Adding duplicator of the design manager.
Diffstat (limited to 'src')
-rw-r--r--src/base/abc/abc.h1
-rw-r--r--src/base/abc/abcLib.c24
2 files changed, 25 insertions, 0 deletions
diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h
index 12a2024a..215d66be 100644
--- a/src/base/abc/abc.h
+++ b/src/base/abc/abc.h
@@ -673,6 +673,7 @@ extern ABC_DLL Vec_Ptr_t * Abc_NtkConverLatchNamesIntoNumbers( Abc_Ntk_t
extern ABC_DLL Abc_Des_t * Abc_DesCreate( char * pName );
extern ABC_DLL void Abc_DesCleanManPointer( Abc_Des_t * p, void * pMan );
extern ABC_DLL void Abc_DesFree( Abc_Des_t * p, Abc_Ntk_t * pNtk );
+extern ABC_DLL Abc_Des_t * Abc_DesDup( Abc_Des_t * p );
extern ABC_DLL void Abc_DesPrint( Abc_Des_t * p );
extern ABC_DLL int Abc_DesAddModel( Abc_Des_t * p, Abc_Ntk_t * pNtk );
extern ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName( Abc_Des_t * p, char * pName );
diff --git a/src/base/abc/abcLib.c b/src/base/abc/abcLib.c
index 9a8c36f2..788b0fe0 100644
--- a/src/base/abc/abcLib.c
+++ b/src/base/abc/abcLib.c
@@ -121,6 +121,30 @@ void Abc_DesFree( Abc_Des_t * p, Abc_Ntk_t * pNtkSave )
/**Function*************************************************************
+ Synopsis [Duplicated the library.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+Abc_Des_t * Abc_DesDup( Abc_Des_t * p )
+{
+ Abc_Des_t * pNew;
+ Abc_Ntk_t * pTemp;
+ int i;
+ pNew = Abc_DesCreate( p->pName );
+ Vec_PtrForEachEntry( Abc_Ntk_t *, p->vModules, pTemp, i )
+ Abc_DesAddModel( pNew, Abc_NtkDup(pTemp) );
+ Vec_PtrForEachEntry( Abc_Ntk_t *, p->vTops, pTemp, i )
+ Vec_PtrPush( pNew->vTops, pTemp->pCopy );
+ return pNew;
+}
+
+/**Function*************************************************************
+
Synopsis [Frees the library.]
Description []