diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-05-17 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-05-17 08:01:00 -0700 |
commit | 4d37d4d92fbc69a67a4e22af80a2acc42dff5e63 (patch) | |
tree | c9ace93ad9af3224b19f02b8567046f99318185c /src/aig/fra | |
parent | 6da56f1f0f6942e3fc257d8396588804c5891e93 (diff) | |
download | abc-4d37d4d92fbc69a67a4e22af80a2acc42dff5e63.tar.gz abc-4d37d4d92fbc69a67a4e22af80a2acc42dff5e63.tar.bz2 abc-4d37d4d92fbc69a67a4e22af80a2acc42dff5e63.zip |
Version abc80517
Diffstat (limited to 'src/aig/fra')
-rw-r--r-- | src/aig/fra/fraInd.c | 6 | ||||
-rw-r--r-- | src/aig/fra/fraSec.c | 32 | ||||
-rw-r--r-- | src/aig/fra/fraSec80516.zip | bin | 0 -> 3502 bytes | |||
-rw-r--r-- | src/aig/fra/fraSim.c | 2 |
4 files changed, 25 insertions, 15 deletions
diff --git a/src/aig/fra/fraInd.c b/src/aig/fra/fraInd.c index 3be0e3f6..df92792a 100644 --- a/src/aig/fra/fraInd.c +++ b/src/aig/fra/fraInd.c @@ -105,9 +105,9 @@ static inline void Fra_FramesConstrainNode( Aig_Man_t * pManFraig, Aig_Obj_t * p // set the new node Fra_ObjSetFraig( pObj, iFrame, pObjNew2 ); // add the constraint - pMiter = Aig_Exor( pManFraig, Aig_Regular(pObjNew), Aig_Regular(pObjReprNew) ); - pMiter = Aig_NotCond( pMiter, Aig_Regular(pMiter)->fPhase ^ Aig_IsComplement(pMiter) ); - pMiter = Aig_Not( pMiter ); + pMiter = Aig_Exor( pManFraig, pObjNew, pObjReprNew ); + pMiter = Aig_NotCond( pMiter, !Aig_ObjPhaseReal(pMiter) ); + assert( Aig_ObjPhaseReal(pMiter) == 1 ); Aig_ObjCreatePo( pManFraig, pMiter ); } 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 ); diff --git a/src/aig/fra/fraSec80516.zip b/src/aig/fra/fraSec80516.zip Binary files differnew file mode 100644 index 00000000..0adf10df --- /dev/null +++ b/src/aig/fra/fraSec80516.zip diff --git a/src/aig/fra/fraSim.c b/src/aig/fra/fraSim.c index b14dd5bd..a8de5e37 100644 --- a/src/aig/fra/fraSim.c +++ b/src/aig/fra/fraSim.c @@ -994,7 +994,7 @@ Fra_Cex_t * Fra_SmlGetCounterExample( Fra_Sml_t * p ) } return pCex; } - + /**Function************************************************************* Synopsis [Generates seq counter-example from the combinational one.] |