diff options
author | Yen-Sheng Ho <ysho@berkeley.edu> | 2017-02-27 20:44:19 -0800 |
---|---|---|
committer | Yen-Sheng Ho <ysho@berkeley.edu> | 2017-02-27 20:44:19 -0800 |
commit | 46b6ac1539ec92587a3e95edd2ce76807d7afccc (patch) | |
tree | 20d3682511b85c2ff97b3e09a6c51928759baefd /src/base | |
parent | 9195192f65bed0c5f3ca2fd8f8b51b34b94f47b3 (diff) | |
download | abc-46b6ac1539ec92587a3e95edd2ce76807d7afccc.tar.gz abc-46b6ac1539ec92587a3e95edd2ce76807d7afccc.tar.bz2 abc-46b6ac1539ec92587a3e95edd2ce76807d7afccc.zip |
improved %pdra -L
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/wlc/wlcAbs.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/base/wlc/wlcAbs.c b/src/base/wlc/wlcAbs.c index c599b9a0..21ae4e4d 100644 --- a/src/base/wlc/wlcAbs.c +++ b/src/base/wlc/wlcAbs.c @@ -570,6 +570,17 @@ static Vec_Bit_t * Wlc_NtkMarkLimit( Wlc_Ntk_t * p, Wlc_Par_t * pPars ) return vMarks; } +static void Wlc_NtkSetUnmark( Wlc_Ntk_t * p, Wlc_Par_t * pPars, Vec_Bit_t * vUnmark ) +{ + int Entry, i; + Vec_Bit_t * vMarks = Wlc_NtkMarkLimit( p, pPars ); + + Vec_BitForEachEntry( vMarks, Entry, i ) + Vec_BitWriteEntry( vUnmark, i, Entry^1 ); + + Vec_BitFree( vMarks ); +} + static Vec_Int_t * Wlc_NtkGetBlacks( Wlc_Ntk_t * p, Wlc_Par_t * pPars ) { Vec_Int_t * vBlacks = Vec_IntAlloc( 100 ) ; @@ -1019,6 +1030,9 @@ int Wlc_NtkPdrAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars ) } else { + if ( nIters == 1 && pPars->nLimit < ABC_INFINITY ) + Wlc_NtkSetUnmark( p, pPars, vUnmark ); + pAbs = Wlc_NtkAbs( p, pPars, vUnmark, &vPisNew, &vFfNew, pPars->fVerbose ); } pGia = Wlc_NtkBitBlast( pAbs, NULL, -1, 0, 0, 0, 0 ); |