summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-05-27 09:49:13 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-05-27 09:49:13 -0700
commit0cad45fa900133942fedc7ea22bc4802e57d9ca0 (patch)
tree95fa3328c6962997f1233146fb696f30560a08ab /src/base
parentfb6eaaf5d9e26d7b0ac326fa17a8c7379b24df68 (diff)
downloadabc-0cad45fa900133942fedc7ea22bc4802e57d9ca0.tar.gz
abc-0cad45fa900133942fedc7ea22bc4802e57d9ca0.tar.bz2
abc-0cad45fa900133942fedc7ea22bc4802e57d9ca0.zip
New MFS package.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/abci/abcMfs.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/base/abci/abcMfs.c b/src/base/abci/abcMfs.c
index 2371e49a..76dfb162 100644
--- a/src/base/abci/abcMfs.c
+++ b/src/base/abci/abcMfs.c
@@ -126,10 +126,13 @@ Sfm_Ntk_t * Abc_NtkExtractMfs( Abc_Ntk_t * pNtk, int nFirstFixed )
Vec_IntPush( vArray, pFanin->iTemp );
}
Vec_PtrFree( vNodes );
- // update fixed
- assert( nFirstFixed >= 0 && nFirstFixed < Abc_NtkNodeNum(pNtk) );
for ( i = Abc_NtkCiNum(pNtk); i < Abc_NtkCiNum(pNtk) + nFirstFixed; i++ )
Vec_StrWriteEntry( vFixed, i, (char)1 );
+ // update fixed
+ assert( nFirstFixed >= 0 && nFirstFixed < Abc_NtkNodeNum(pNtk) );
+// for ( i = Abc_NtkCiNum(pNtk); i + Abc_NtkCoNum(pNtk) < Abc_NtkObjNum(pNtk); i++ )
+// if ( rand() % 10 == 0 )
+// Vec_StrWriteEntry( vFixed, i, (char)1 );
return Sfm_NtkConstruct( vFanins, Abc_NtkCiNum(pNtk), Abc_NtkCoNum(pNtk), vFixed, vTruths );
}
@@ -159,7 +162,8 @@ void Abc_NtkInsertMfs( Abc_Ntk_t * pNtk, Sfm_Ntk_t * p )
Vec_IntWriteEntry( vMap, pNode->iTemp, Abc_ObjId(pNode) );
// remove old fanins
Abc_NtkForEachNode( pNtk, pNode, i )
- Abc_ObjRemoveFanins( pNode );
+ if ( !Sfm_NodeReadFixed(p, pNode->iTemp) )
+ Abc_ObjRemoveFanins( pNode );
// create new fanins
vCover = Vec_IntAlloc( 1 << 16 );
Abc_NtkForEachNode( pNtk, pNode, i )