summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-01-16 13:07:51 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2012-01-16 13:07:51 -0800
commit0695ec54736318a0fb76ee3df06e5d83719e1fc3 (patch)
tree1434e3511826e7b72c860fa7cd87020c5adbd243 /src/base
parentca28f77f3ac995ca5834b7ceef99ac0363f6ce8c (diff)
downloadabc-0695ec54736318a0fb76ee3df06e5d83719e1fc3.tar.gz
abc-0695ec54736318a0fb76ee3df06e5d83719e1fc3.tar.bz2
abc-0695ec54736318a0fb76ee3df06e5d83719e1fc3.zip
New hierarchy manager plus additional printout in the GIA package.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/abc/abcHieCec.c4
-rw-r--r--src/base/abc/abcHieNew.c21
2 files changed, 16 insertions, 9 deletions
diff --git a/src/base/abc/abcHieCec.c b/src/base/abc/abcHieCec.c
index b338c394..ace7583b 100644
--- a/src/base/abc/abcHieCec.c
+++ b/src/base/abc/abcHieCec.c
@@ -686,14 +686,14 @@ Gia_Man_t * Abc_NtkHieCecTest( char * pFileName, int fVerbose )
assert( Abc_NtkIsNetlist(pNtk) );
assert( !Abc_NtkLatchNum(pNtk) );
-
+/*
if ( pNtk->pDesign != NULL )
{
clk = clock();
Abc_NtkCountNodes( pNtk );
Abc_PrintTime( 1, "Count nodes", clock() - clk );
}
-
+*/
// print stats
if ( fVerbose )
Abc_NtkPrintBoxInfo( pNtk );
diff --git a/src/base/abc/abcHieNew.c b/src/base/abc/abcHieNew.c
index fe176ae4..be41c07a 100644
--- a/src/base/abc/abcHieNew.c
+++ b/src/base/abc/abcHieNew.c
@@ -568,11 +568,18 @@ extern int Abc_NtkCheckRecursive( Abc_Ntk_t * pNtk );
***********************************************************************/
void Au_NtkDeriveFlatGia_rec( Gia_Man_t * pGia, Au_Ntk_t * p )
-{
+{
Au_Obj_t * pObj, * pTerm;
int i, k;
Au_NtkForEachPi( p, pTerm, i )
assert( Au_ObjCopy(pTerm) >= 0 );
+ if ( strcmp(Au_NtkName(p), "ref_egcd") == 0 )
+ {
+ printf( "Replacing one instance of recursive model \"%s\" by a black box.\n", "ref_egcd" );
+ Au_NtkForEachPo( p, pTerm, i )
+ Au_ObjSetCopy( pTerm, Gia_ManAppendCi(pGia) );
+ return;
+ }
Au_NtkForEachObj( p, pObj, i )
{
if ( Au_ObjIsNode(pObj) )
@@ -635,6 +642,7 @@ Gia_Man_t * Au_NtkDeriveFlatGia( Au_Ntk_t * p )
pGia = Gia_ManStart( (1<<16) );
pGia->pName = Gia_UtilStrsav( Au_NtkName(p) );
Gia_ManHashAlloc( pGia );
+ Gia_ManFlipVerbose( pGia );
// create PIs
Au_NtkForEachPi( p, pTerm, i )
Au_ObjSetCopy( pTerm, Gia_ManAppendCi(pGia) );
@@ -725,7 +733,6 @@ Gia_Man_t * Au_ManDeriveTest( Abc_Ntk_t * pRoot )
clk2 += clock() - clk1;
vModels = Abc_NtkCollectHie( pRoot );
-// Vec_PtrForEachEntry( Abc_Ntk_t *, pLib->vModules, pMod, i )
Vec_PtrForEachEntry( Abc_Ntk_t *, vModels, pMod, i )
{
vOrder = Abc_NtkDfsBoxes( pMod );
@@ -742,7 +749,7 @@ Gia_Man_t * Au_ManDeriveTest( Abc_Ntk_t * pRoot )
Au_ManPrintStats( pMan );
- if ( !Abc_NtkCheckRecursive(pRoot) )
+// if ( !Abc_NtkCheckRecursive(pRoot) )
{
clk1 = clock();
pGia = Au_NtkDeriveFlatGia( (Au_Ntk_t *)pRoot->pData );
@@ -750,9 +757,9 @@ Gia_Man_t * Au_ManDeriveTest( Abc_Ntk_t * pRoot )
// printf( "GIA objects max = %d.\n", pMan->nGiaObjMax );
}
- clk1 = clock();
- Au_NtkSuppSizeTest( (Au_Ntk_t *)pRoot->pData );
- clk4 = clock() - clk1;
+// clk1 = clock();
+// Au_NtkSuppSizeTest( (Au_Ntk_t *)pRoot->pData );
+// clk4 = clock() - clk1;
clk1 = clock();
Au_ManDelete( pMan );
@@ -761,7 +768,7 @@ Gia_Man_t * Au_ManDeriveTest( Abc_Ntk_t * pRoot )
Abc_PrintTime( 1, "Time all ", clock() - clk );
Abc_PrintTime( 1, "Time new ", clk2 );
Abc_PrintTime( 1, "Time GIA ", clk3 );
- Abc_PrintTime( 1, "Time supp", clk4 );
+// Abc_PrintTime( 1, "Time supp", clk4 );
return pGia;
}