summaryrefslogtreecommitdiffstats
path: root/src/aig/fra/fraSec.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-05-17 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-05-17 08:01:00 -0700
commit4d37d4d92fbc69a67a4e22af80a2acc42dff5e63 (patch)
treec9ace93ad9af3224b19f02b8567046f99318185c /src/aig/fra/fraSec.c
parent6da56f1f0f6942e3fc257d8396588804c5891e93 (diff)
downloadabc-4d37d4d92fbc69a67a4e22af80a2acc42dff5e63.tar.gz
abc-4d37d4d92fbc69a67a4e22af80a2acc42dff5e63.tar.bz2
abc-4d37d4d92fbc69a67a4e22af80a2acc42dff5e63.zip
Version abc80517
Diffstat (limited to 'src/aig/fra/fraSec.c')
-rw-r--r--src/aig/fra/fraSec.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/aig/fra/fraSec.c b/src/aig/fra/fraSec.c
index b8f93f57..ec6b7795 100644
--- a/src/aig/fra/fraSec.c
+++ b/src/aig/fra/fraSec.c
@@ -82,7 +82,7 @@ int Fra_FraigSec( Aig_Man_t * p, Fra_Sec_t * pParSec )
float TimeLeft = 0.0;
// try the miter before solving
- pNew = Aig_ManDup( p );
+ pNew = Aig_ManDupSimple( p );
RetValue = Fra_FraigMiterStatus( pNew );
if ( RetValue >= 0 )
goto finish;
@@ -144,7 +144,7 @@ clk = clock();
PRT( "Time", clock() - clk );
}
}
-
+
// run latch correspondence
clk = clock();
if ( pNew->nRegs )
@@ -165,22 +165,27 @@ clk = clock();
}
}
pNew = Fra_FraigLatchCorrespondence( pTemp = pNew, 0, 1000, 1, pParSec->fVeryVerbose, &nIter, TimeLeft );
+ p->pSeqModel = pTemp->pSeqModel; pTemp->pSeqModel = NULL;
+ Aig_ManStop( pTemp );
if ( pNew == NULL )
{
+ if ( p->pSeqModel )
+ {
+ RetValue = 0;
+ printf( "Networks are NOT EQUIVALENT after simulation. " );
+PRT( "Time", clock() - clkTotal );
+ if ( pParSec->fReportSolution && !pParSec->fRecursive )
+ {
+ printf( "SOLUTION: FAIL " );
+PRT( "Time", clock() - clkTotal );
+ }
+ return RetValue;
+ }
pNew = pTemp;
RetValue = -1;
TimeOut = 1;
goto finish;
}
- p->pSeqModel = pTemp->pSeqModel; pTemp->pSeqModel = NULL;
- Aig_ManStop( pTemp );
- if ( pNew == NULL )
- {
- RetValue = 0;
- printf( "Networks are NOT EQUIVALENT after simulation. " );
-PRT( "Time", clock() - clkTotal );
- return RetValue;
- }
if ( pParSec->fVerbose )
{
@@ -354,6 +359,11 @@ PRT( "Time", clock() - clk );
RetValue = 0;
printf( "Networks are NOT EQUIVALENT after simulation. " );
PRT( "Time", clock() - clkTotal );
+ if ( pParSec->fReportSolution && !pParSec->fRecursive )
+ {
+ printf( "SOLUTION: FAIL " );
+PRT( "Time", clock() - clkTotal );
+ }
return RetValue;
}
Fra_SmlStop( pSml );