summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/aig/gia/gia.h1
-rw-r--r--src/aig/gia/giaSweeper.c32
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