summaryrefslogtreecommitdiffstats
path: root/src/opt/sfm/sfm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/opt/sfm/sfm.h')
-rw-r--r--src/opt/sfm/sfm.h31
1 files changed, 13 insertions, 18 deletions
diff --git a/src/opt/sfm/sfm.h b/src/opt/sfm/sfm.h
index 42f8156a..deb055c5 100644
--- a/src/opt/sfm/sfm.h
+++ b/src/opt/sfm/sfm.h
@@ -26,6 +26,8 @@
/// INCLUDES ///
////////////////////////////////////////////////////////////////////////
+#include "misc/vec/vecWec.h"
+
////////////////////////////////////////////////////////////////////////
/// PARAMETERS ///
////////////////////////////////////////////////////////////////////////
@@ -36,26 +38,18 @@ ABC_NAMESPACE_HEADER_START
/// BASIC TYPES ///
////////////////////////////////////////////////////////////////////////
-typedef struct Sfm_Man_t_ Sfm_Man_t;
typedef struct Sfm_Ntk_t_ Sfm_Ntk_t;
typedef struct Sfm_Par_t_ Sfm_Par_t;
struct Sfm_Par_t_
{
- int nWinTfoLevs; // the maximum fanout levels
- int nFanoutsMax; // the maximum number of fanouts
- int nDepthMax; // the maximum number of logic levels
- int nDivMax; // the maximum number of divisors
- int nWinSizeMax; // the maximum size of the window
- int nGrowthLevel; // the maximum allowed growth in level
+ int nTfoLevMax; // the maximum fanout levels
+ int nFanoutMax; // the maximum number of fanouts
+ int nDepthMax; // the maximum depth to try
+ int nWinSizeMax; // the maximum number of divisors
int nBTLimit; // the maximum number of conflicts in one SAT run
- int fResub; // performs resubstitution
+ int fFixLevel; // does not allow level to increase
int fArea; // performs optimization for area
int fMoreEffort; // performs high-affort minimization
- int fSwapEdge; // performs edge swapping
- int fOneHotness; // adds one-hotness conditions
- int fDelay; // performs optimization for delay
- int fPower; // performs power-aware optimization
- int fGiaSat; // use new SAT solver
int fVerbose; // enable basic stats
int fVeryVerbose; // enable detailed stats
};
@@ -70,13 +64,14 @@ struct Sfm_Par_t_
/*=== sfmCnf.c ==========================================================*/
/*=== sfmCore.c ==========================================================*/
-extern int Sfm_ManPerform( Sfm_Ntk_t * p, Sfm_Par_t * pPars );
-/*=== sfmMan.c ==========================================================*/
-extern Sfm_Man_t * Sfm_ManAlloc( Sfm_Ntk_t * p );
-extern void Sfm_ManFree( Sfm_Man_t * p );
+extern void Sfm_ParSetDefault( Sfm_Par_t * pPars );
+extern int Sfm_NtkPerform( Sfm_Ntk_t * p, Sfm_Par_t * pPars );
/*=== sfmNtk.c ==========================================================*/
-extern Sfm_Ntk_t * Sfm_NtkAlloc( int nPis, int nPos, int nNodes, Vec_Int_t * vFanins, Vec_Int_t * vFanouts, Vec_Int_t * vEdges, Vec_Int_t * vOpts );
+extern Sfm_Ntk_t * Sfm_NtkConstruct( Vec_Wec_t * vFanins, int nPis, int nPos, Vec_Str_t * vFixed, Vec_Wrd_t * vTruths );
extern void Sfm_NtkFree( Sfm_Ntk_t * p );
+extern Vec_Int_t * Sfm_NodeReadFanins( Sfm_Ntk_t * p, int i );
+extern word Sfm_NodeReadTruth( Sfm_Ntk_t * p, int i );
+extern int Sfm_NodeReadFixed( Sfm_Ntk_t * p, int i );
/*=== sfmSat.c ==========================================================*/