summaryrefslogtreecommitdiffstats
path: root/src/base/cba/cbaNtk.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-02-13 16:28:17 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2015-02-13 16:28:17 -0800
commitedf3622ceb8569b87ffc007c75716f1042ba00d7 (patch)
treebc8246d3cb5878b31e10c1a472a1ad6bd312660d /src/base/cba/cbaNtk.c
parentea2d82ab141c5a162f2c2cf0adce74a21d911d8a (diff)
downloadabc-edf3622ceb8569b87ffc007c75716f1042ba00d7.tar.gz
abc-edf3622ceb8569b87ffc007c75716f1042ba00d7.tar.bz2
abc-edf3622ceb8569b87ffc007c75716f1042ba00d7.zip
Several improvements to CBA data-structure.
Diffstat (limited to 'src/base/cba/cbaNtk.c')
-rw-r--r--src/base/cba/cbaNtk.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/src/base/cba/cbaNtk.c b/src/base/cba/cbaNtk.c
index fb9b5fb3..2c9d8492 100644
--- a/src/base/cba/cbaNtk.c
+++ b/src/base/cba/cbaNtk.c
@@ -77,30 +77,18 @@ void Cba_ManAssignInternNamesNtk( Cba_Ntk_t * p, Vec_Int_t * vMap )
// set all names
Cba_NtkForEachPi( p, iObj, i )
nNameless += Cba_ManSetInternOne( p, iObj, vMap );
- Cba_NtkForEachPo( p, iObj, i )
- nNameless += Cba_ManSetInternOne( p, iObj, vMap );
Cba_NtkForEachBox( p, iObj )
- {
- Cba_BoxForEachBi( p, iObj, iTerm, i )
- nNameless += Cba_ManSetInternOne( p, iTerm, vMap );
Cba_BoxForEachBo( p, iObj, iTerm, i )
nNameless += Cba_ManSetInternOne( p, iTerm, vMap );
- }
+ // generate new names
if ( nNameless )
{
int nNameless2 = 0;
- // generate new names
Cba_NtkForEachPi( p, iObj, i )
nNameless2 += Cba_ManAssignInternOne( p, iObj, vMap );
- Cba_NtkForEachPo( p, iObj, i )
- nNameless2 += Cba_ManAssignInternOne( p, iObj, vMap );
Cba_NtkForEachBox( p, iObj )
- {
- Cba_BoxForEachBi( p, iObj, iTerm, i )
- nNameless2 += Cba_ManAssignInternOne( p, iTerm, vMap );
Cba_BoxForEachBo( p, iObj, iTerm, i )
nNameless2 += Cba_ManAssignInternOne( p, iTerm, vMap );
- }
assert( nNameless == nNameless2 );
if ( nNameless )
printf( "Generated unique names for %d objects in network \"%s\".\n", nNameless, Cba_NtkName(p) );
@@ -108,16 +96,9 @@ void Cba_ManAssignInternNamesNtk( Cba_Ntk_t * p, Vec_Int_t * vMap )
// unmark all names
Cba_NtkForEachPi( p, iObj, i )
Vec_IntWriteEntry( vMap, Cba_ObjName(p, iObj), 0 );
- Cba_NtkForEachPo( p, iObj, i )
- Vec_IntWriteEntry( vMap, Cba_ObjName(p, iObj), 0 );
Cba_NtkForEachBox( p, iObj )
- {
- Cba_BoxForEachBi( p, iObj, iTerm, i )
- Vec_IntWriteEntry( vMap, Cba_ObjName(p, iTerm), 0 );
Cba_BoxForEachBo( p, iObj, iTerm, i )
Vec_IntWriteEntry( vMap, Cba_ObjName(p, iTerm), 0 );
- }
-
}
void Cba_ManAssignInternNames( Cba_Man_t * p )
{
@@ -315,8 +296,9 @@ Cba_Man_t * Cba_ManCollapse( Cba_Man_t * p )
Cba_NtkStartNames( pRootNew );
Cba_NtkForEachPi( pRoot, iObj, i )
Cba_ObjSetName( pRootNew, Cba_NtkPi(pRootNew, i), Cba_ObjName(pRoot, iObj) );
- Cba_NtkForEachPo( pRoot, iObj, i )
- Cba_ObjSetName( pRootNew, Cba_NtkPo(pRootNew, i), Cba_ObjName(pRoot, iObj) );
+ Cba_NtkForEachPoDriver( pRoot, iObj, i )
+ if ( !Cba_ObjIsPi(pRoot, iObj) )
+ Cba_ObjSetName( pRootNew, Cba_ObjCopy(pRoot, iObj), Cba_ObjName(pRoot, iObj) );
}
return pNew;
}