summaryrefslogtreecommitdiffstats
path: root/src/aig/ntl
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-07-25 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-07-25 08:01:00 -0700
commit1afa8a2f38bacb9f2f8faaf06b4f01c70560a419 (patch)
tree8aa41b5eea9d26befaf1604e8cc6c61b59eaef1b /src/aig/ntl
parent2c96c8af36446d3b855e07d78975cfad50c2917c (diff)
downloadabc-1afa8a2f38bacb9f2f8faaf06b4f01c70560a419.tar.gz
abc-1afa8a2f38bacb9f2f8faaf06b4f01c70560a419.tar.bz2
abc-1afa8a2f38bacb9f2f8faaf06b4f01c70560a419.zip
Version abc80725
Diffstat (limited to 'src/aig/ntl')
-rw-r--r--src/aig/ntl/ntlExtract.c4
-rw-r--r--src/aig/ntl/ntlFraig.c19
2 files changed, 15 insertions, 8 deletions
diff --git a/src/aig/ntl/ntlExtract.c b/src/aig/ntl/ntlExtract.c
index 79cd640a..3ef1d60e 100644
--- a/src/aig/ntl/ntlExtract.c
+++ b/src/aig/ntl/ntlExtract.c
@@ -803,8 +803,8 @@ Nwk_Man_t * Ntl_ManExtractNwk( Ntl_Man_t * p, Aig_Man_t * pAig, Tim_Man_t * pMan
pNtk->pManTime = Tim_ManDup( pManTime, 0 );
else
pNtk->pManTime = Tim_ManDup( p->pManTime, 0 );
-// Nwk_ManRemoveDupFanins( pNtk, 0 );
-// assert( Nwk_ManCheck( pNtk ) );
+ Nwk_ManRemoveDupFanins( pNtk, 0 );
+ assert( Nwk_ManCheck( pNtk ) );
return pNtk;
}
diff --git a/src/aig/ntl/ntlFraig.c b/src/aig/ntl/ntlFraig.c
index bd39956e..38568d26 100644
--- a/src/aig/ntl/ntlFraig.c
+++ b/src/aig/ntl/ntlFraig.c
@@ -145,13 +145,20 @@ void Ntl_ManReduce( Ntl_Man_t * p, Aig_Man_t * pAig )
continue;
assert( pObj != pObjRepr );
pNet = pObj->pData;
- // do not reduce the net if it is driven by a multi-output box
- if ( Ntl_ObjIsBox(pNet->pDriver) && Ntl_ObjFanoutNum(pNet->pDriver) > 1 )
- continue;
- // do not reduce the net if it has no-merge attribute
- if ( Ntl_ObjIsBox(pNet->pDriver) && pNet->pDriver->pImplem->attrNoMerge )
- continue;
pNetRepr = pObjRepr->pData;
+ // consider special cases, when the net should not be reduced
+ if ( Ntl_ObjIsBox(pNet->pDriver) )
+ {
+ // do not reduce the net if it is driven by a multi-output box
+ if ( Ntl_ObjFanoutNum(pNet->pDriver) > 1 )
+ continue;
+ // do not reduce the net if it has no-merge attribute
+ if ( pNet->pDriver->pImplem->attrNoMerge )
+ continue;
+ // do not reduce the net if the replacement net has no-merge attribute
+ if ( pNetRepr != NULL && pNetRepr->pDriver->pImplem->attrNoMerge )
+ continue;
+ }
if ( pNetRepr == NULL )
{
// this is the constant node