diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2009-04-24 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2009-04-24 08:01:00 -0700 |
commit | d7a048d738381651b53340684e26f06b78b8a78c (patch) | |
tree | 82f7bea9d0750a388494e6fffceb61cfeff969b7 /src/aig/ntl/ntlUtil.c | |
parent | 77fab468ad32d15de5c065c211f6f74371670940 (diff) | |
download | abc-d7a048d738381651b53340684e26f06b78b8a78c.tar.gz abc-d7a048d738381651b53340684e26f06b78b8a78c.tar.bz2 abc-d7a048d738381651b53340684e26f06b78b8a78c.zip |
Version abc90424
Diffstat (limited to 'src/aig/ntl/ntlUtil.c')
-rw-r--r-- | src/aig/ntl/ntlUtil.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/aig/ntl/ntlUtil.c b/src/aig/ntl/ntlUtil.c index 9c3d4e42..6d1b6c83 100644 --- a/src/aig/ntl/ntlUtil.c +++ b/src/aig/ntl/ntlUtil.c @@ -657,6 +657,68 @@ void Ntl_ModelClearNets( Ntl_Mod_t * pModel ) } } +/**Function************************************************************* + + Synopsis [Removes nets without fanins and fanouts.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Ntl_ManRemoveUselessNets( Ntl_Man_t * p ) +{ + Ntl_Mod_t * pRoot; + Ntl_Obj_t * pNode; + Ntl_Net_t * pNet; + int i, k, Counter; + pRoot = Ntl_ManRootModel( p ); + Ntl_ModelForEachNet( pRoot, pNet, i ) + pNet->fMark = 0; + Ntl_ModelForEachPi( pRoot, pNode, i ) + { + pNet = Ntl_ObjFanout0(pNode); + pNet->fMark = 1; + } + Ntl_ModelForEachPo( pRoot, pNode, i ) + { + pNet = Ntl_ObjFanin0(pNode); + pNet->fMark = 1; + } + Ntl_ModelForEachNode( pRoot, pNode, i ) + { + Ntl_ObjForEachFanin( pNode, pNet, k ) + pNet->fMark = 1; + Ntl_ObjForEachFanout( pNode, pNet, k ) + pNet->fMark = 1; + } + Ntl_ModelForEachBox( pRoot, pNode, i ) + { + Ntl_ObjForEachFanin( pNode, pNet, k ) + pNet->fMark = 1; + Ntl_ObjForEachFanout( pNode, pNet, k ) + pNet->fMark = 1; + } + Counter = 0; + Ntl_ModelForEachNet( pRoot, pNet, i ) + { + if ( pNet->fMark ) + { + pNet->fMark = 0; + continue; + } + if ( pNet->fFixed ) + continue; + Ntl_ModelDeleteNet( pRoot, pNet ); + Vec_PtrWriteEntry( pRoot->vNets, pNet->NetId, NULL ); + Counter++; + } + if ( Counter ) + printf( "Deleted %d nets without fanins/fanouts.\n", Counter ); +} + //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// |