summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaDup.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-02-01 23:55:12 +0800
committerAlan Mishchenko <alanmi@berkeley.edu>2013-02-01 23:55:12 +0800
commit6a0dca4535f44b9cd61bec9eecf9f929f5ade9fc (patch)
treea780fe1396a06b2d253f6fbdb05cfc85597d2a8a /src/aig/gia/giaDup.c
parent30ec58fcda8c5227db6a03ed9c136967581d456c (diff)
downloadabc-6a0dca4535f44b9cd61bec9eecf9f929f5ade9fc.tar.gz
abc-6a0dca4535f44b9cd61bec9eecf9f929f5ade9fc.tar.bz2
abc-6a0dca4535f44b9cd61bec9eecf9f929f5ade9fc.zip
Integration of timing manager.
Diffstat (limited to 'src/aig/gia/giaDup.c')
-rw-r--r--src/aig/gia/giaDup.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/aig/gia/giaDup.c b/src/aig/gia/giaDup.c
index 50d1088f..bc1e59f6 100644
--- a/src/aig/gia/giaDup.c
+++ b/src/aig/gia/giaDup.c
@@ -1182,11 +1182,13 @@ Vec_Int_t * Gia_ManDupFindOrderWithHie( Gia_Man_t * p )
curCo = 0;
for ( i = 0; i < Tim_ManBoxNum(pTime); i++ )
{
+//printf( "Box %d:\n", i );
// add internal nodes
for ( k = 0; k < Tim_ManBoxInputNum(pTime, i); k++ )
{
pObj = Gia_ManPo( p, curCo + k );
//Gia_ObjPrint( p, pObj );
+//printf( "Fanin " );
//Gia_ObjPrint( p, Gia_ObjFanin0(pObj) );
Gia_ManDupFindOrderWithHie_rec( p, Gia_ObjFanin0(pObj), vNodes );
}
@@ -1201,7 +1203,9 @@ Vec_Int_t * Gia_ManDupFindOrderWithHie( Gia_Man_t * p )
for ( k = 0; k < Tim_ManBoxOutputNum(pTime, i); k++ )
{
pObj = Gia_ManPi( p, curCi + k );
+//Gia_ObjPrint( p, pObj );
Vec_IntPush( vNodes, Gia_ObjId(p, pObj) );
+ Gia_ObjSetTravIdCurrent( p, pObj );
}
curCi += Tim_ManBoxOutputNum(pTime, i);
}
@@ -1236,7 +1240,7 @@ Vec_Int_t * Gia_ManDupFindOrderWithHie( Gia_Man_t * p )
SeeAlso []
***********************************************************************/
-Gia_Man_t * Gia_ManDupWithHierarchy( Gia_Man_t * p )
+Gia_Man_t * Gia_ManDupWithHierarchy( Gia_Man_t * p, Vec_Int_t ** pvNodes )
{
Vec_Int_t * vNodes;
Gia_Man_t * pNew;
@@ -1260,7 +1264,10 @@ Gia_Man_t * Gia_ManDupWithHierarchy( Gia_Man_t * p )
else assert( 0 );
}
Gia_ManSetRegNum( pNew, Gia_ManRegNum(p) );
- Vec_IntFree( vNodes );
+ if ( pvNodes )
+ *pvNodes = vNodes;
+ else
+ Vec_IntFree( vNodes );
return pNew;
}