diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-11-01 17:09:05 -0400 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-11-01 17:09:05 -0400 |
commit | e2af27f160ce566ea5583a1619b7332a7be34c0a (patch) | |
tree | a9a92453b4bfd2ee49454d8fc38a842626d54a6b | |
parent | 74893bf3d4d26570f4e5dbc6ed9562d808e05f2c (diff) | |
download | abc-e2af27f160ce566ea5583a1619b7332a7be34c0a.tar.gz abc-e2af27f160ce566ea5583a1619b7332a7be34c0a.tar.bz2 abc-e2af27f160ce566ea5583a1619b7332a7be34c0a.zip |
Sweeper internal dumping.
-rw-r--r-- | src/aig/gia/gia.h | 1 | ||||
-rw-r--r-- | src/aig/gia/giaSweeper.c | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h index 23e32dc1..b2cc1a8f 100644 --- a/src/aig/gia/gia.h +++ b/src/aig/gia/gia.h @@ -1192,6 +1192,7 @@ extern Vec_Int_t * Gia_SweeperCondVector( Gia_Man_t * p ); extern int Gia_SweeperCondCheckUnsat( Gia_Man_t * p ); extern int Gia_SweeperCheckEquiv( Gia_Man_t * p, int ProbeId1, int ProbeId2 ); extern Gia_Man_t * Gia_SweeperExtractUserLogic( Gia_Man_t * p, Vec_Int_t * vProbeIds, Vec_Ptr_t * vInNames, Vec_Ptr_t * vOutNames ); +extern void Gia_SweeperLogicDump( Gia_Man_t * p, Vec_Int_t * vProbeIds, int fDumpConds, char * pFileName ); extern Gia_Man_t * Gia_SweeperCleanup( Gia_Man_t * p, char * pCommLime ); extern Vec_Int_t * Gia_SweeperGraft( Gia_Man_t * pDst, Vec_Int_t * vProbes, Gia_Man_t * pSrc ); extern int Gia_SweeperFraig( Gia_Man_t * p, Vec_Int_t * vProbeIds, char * pCommLime, int nWords, int nConfs, int fVerify, int fVerbose ); diff --git a/src/aig/gia/giaSweeper.c b/src/aig/gia/giaSweeper.c index 99d1154c..3ec38343 100644 --- a/src/aig/gia/giaSweeper.c +++ b/src/aig/gia/giaSweeper.c @@ -416,6 +416,38 @@ Gia_Man_t * Gia_SweeperExtractUserLogic( Gia_Man_t * p, Vec_Int_t * vProbeIds, V /**Function************************************************************* + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Gia_SweeperLogicDump( Gia_Man_t * p, Vec_Int_t * vProbeIds, int fDumpConds, char * pFileName ) +{ + Gia_Man_t * pGiaOuts; + pGiaOuts = Gia_SweeperExtractUserLogic( p, vProbeIds, NULL, NULL ); + if ( fDumpConds ) + { + Vec_Int_t * vProbeConds = Gia_SweeperCondVector( p ); + Gia_Man_t * pGiaCond = Gia_SweeperExtractUserLogic( p, vProbeConds, NULL, NULL ); + Gia_ManDupAppendShare( pGiaOuts, pGiaCond ); + pGiaOuts->nConstrs = Gia_ManPoNum(pGiaCond); + Gia_ManHashStop( pGiaOuts ); + Gia_ManStop( pGiaCond ); + } + Gia_AigerWrite( pGiaOuts, pFileName, 0, 0 ); + Gia_ManStop( pGiaOuts ); + printf( "Dumped logic cones" ); + if ( fDumpConds ) + printf( " and conditions" ); + printf( " into file \"%s\".\n", pFileName ); +} + +/**Function************************************************************* + Synopsis [Sweeper cleanup.] Description [Returns new GIA with sweeper defined, which is the same |