diff options
Diffstat (limited to 'src/opt/sfm/sfm.h')
-rw-r--r-- | src/opt/sfm/sfm.h | 31 |
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 ==========================================================*/ |