summaryrefslogtreecommitdiffstats
path: root/src/base/abci
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/abci')
-rw-r--r--src/base/abci/abc.c4
-rw-r--r--src/base/abci/abcCollapse.c21
2 files changed, 14 insertions, 11 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index 9b62c622..c1f7eb5a 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -3102,8 +3102,8 @@ usage:
int Abc_CommandSatClp( Abc_Frame_t * pAbc, int argc, char ** argv )
{
Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc), * pNtkRes;
- int nCubeLim = 1000;
- int nBTLimit = 1000000;
+ int nCubeLim = 0;
+ int nBTLimit = 1000000;
int nCostMax = 20000000;
int fCanon = 0;
int fReverse = 0;
diff --git a/src/base/abci/abcCollapse.c b/src/base/abci/abcCollapse.c
index e6618e15..dad22e2b 100644
--- a/src/base/abci/abcCollapse.c
+++ b/src/base/abci/abcCollapse.c
@@ -431,16 +431,19 @@ Abc_Ntk_t * Abc_NtkFromSops( Abc_Ntk_t * pNtk, int nCubeLim, int nBTLimit, int n
// order CO nodes by support size
vCoNodes = Abc_NtkCreateCoOrder( pNtk, vSupps );
// compute cost of the largest node
- pNode = (Abc_Obj_t *)Vec_PtrEntry( vCoNodes, 0 );
- vDfsNodes = Abc_NtkDfsNodes( pNtk, &pNode, 1 );
- vLevel = Vec_WecEntry( vSupps, Abc_ObjFaninId0(pNode) );
- Cost = Vec_PtrSize(vDfsNodes) * Vec_IntSize(vLevel) * nCubeLim;
- Vec_PtrFree( vDfsNodes );
- if ( Cost > nCostMax )
+ if ( nCubeLim > 0 )
{
- Vec_PtrFree( vCoNodes );
- Vec_WecFree( vSupps );
- return NULL;
+ pNode = (Abc_Obj_t *)Vec_PtrEntry( vCoNodes, 0 );
+ vDfsNodes = Abc_NtkDfsNodes( pNtk, &pNode, 1 );
+ vLevel = Vec_WecEntry( vSupps, Abc_ObjFaninId0(pNode) );
+ Cost = Vec_PtrSize(vDfsNodes) * Vec_IntSize(vLevel) * nCubeLim;
+ Vec_PtrFree( vDfsNodes );
+ if ( Cost > nCostMax )
+ {
+ Vec_PtrFree( vCoNodes );
+ Vec_WecFree( vSupps );
+ return NULL;
+ }
}
// collect CO IDs in this order
vNodeCoIds = Vec_IntAlloc( Abc_NtkCoNum(pNtk) );