diff options
-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 |