summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-02-11 22:48:20 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2017-02-11 22:48:20 -0800
commit3fb058a35562ceeafb2967f0991215ad47a23b0f (patch)
treea6425be23c78f699fd78bcedb3149bd732331b92
parent4abb1ce8a45d115567a125c6b2b00d48f6776aff (diff)
downloadabc-3fb058a35562ceeafb2967f0991215ad47a23b0f.tar.gz
abc-3fb058a35562ceeafb2967f0991215ad47a23b0f.tar.bz2
abc-3fb058a35562ceeafb2967f0991215ad47a23b0f.zip
Adding PDR with abstraction.
-rw-r--r--src/proof/pdr/pdrCore.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/proof/pdr/pdrCore.c b/src/proof/pdr/pdrCore.c
index f77bc05f..568f7642 100644
--- a/src/proof/pdr/pdrCore.c
+++ b/src/proof/pdr/pdrCore.c
@@ -874,7 +874,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p )
Vec_IntWriteEntry( p->vAbsFlops, i, 1 );
}
//if ( p->pPars->fUseAbs && p->vAbsFlops )
- // printf( "Starting frame %d with %d flops.\n", iFrame, Vec_IntCountPositive(p->vAbsFlops) );
+ // printf( "Starting frame %d with %d (%d) flops.\n", iFrame, Vec_IntCountPositive(p->vAbsFlops), Vec_IntCountPositive(p->vPrio) );
p->nFrames = iFrame;
assert( iFrame == Vec_PtrSize(p->vSolvers)-1 );
p->iUseFrame = Abc_MaxInt(iFrame, 1);
@@ -1061,10 +1061,19 @@ int Pdr_ManSolveInt( Pdr_Man_t * p )
p->timeToStopOne = 0;
}
}
+ if ( p->pPars->fUseAbs && p->vAbsFlops && !fRefined )
+ {
+ int i, Used;
+ Vec_IntForEachEntry( p->vAbsFlops, Used, i )
+ if ( Used && (Vec_IntEntry(p->vPrio, i) >> p->nPrioShift) == 0 )
+ Vec_IntWriteEntry( p->vAbsFlops, i, 0 );
+ }
if ( p->pPars->fVerbose )
Pdr_ManPrintProgress( p, !fRefined, Abc_Clock() - clkStart );
if ( fRefined )
continue;
+ //if ( p->pPars->fUseAbs && p->vAbsFlops )
+ // printf( "Finished frame %d with %d (%d) flops.\n", iFrame, Vec_IntCountPositive(p->vAbsFlops), Vec_IntCountPositive(p->vPrio) );
// open a new timeframe
p->nQueLim = p->pPars->nRestLimit;
assert( pCube == NULL );