summaryrefslogtreecommitdiffstats
path: root/src/base/wlc/wlc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/wlc/wlc.h')
-rw-r--r--src/base/wlc/wlc.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/base/wlc/wlc.h b/src/base/wlc/wlc.h
index 55e85330..c00cd4d0 100644
--- a/src/base/wlc/wlc.h
+++ b/src/base/wlc/wlc.h
@@ -190,6 +190,40 @@ struct Wlc_Par_t_
int (*pFuncStop)(int); // callback to terminate
};
+typedef struct Wlc_BstPar_t_ Wlc_BstPar_t;
+struct Wlc_BstPar_t_
+{
+ int iOutput;
+ int nOutputRange;
+ int nAdderLimit;
+ int nMultLimit;
+ int fGiaSimple;
+ int fAddOutputs;
+ int fMulti;
+ int fBooth;
+ int fNoCleanup;
+ int fCreateMiter;
+ int fDecMuxes;
+ int fVerbose;
+ Vec_Int_t * vBoxIds;
+};
+
+static inline void Wlc_BstParDefault( Wlc_BstPar_t * pPar )
+{
+ memset( pPar, 0, sizeof(Wlc_BstPar_t) );
+ pPar->iOutput = -1;
+ pPar->nOutputRange = 0;
+ pPar->nAdderLimit = 0;
+ pPar->nMultLimit = 0;
+ pPar->fGiaSimple = 0;
+ pPar->fAddOutputs = 0;
+ pPar->fMulti = 0;
+ pPar->fBooth = 0;
+ pPar->fCreateMiter = 0;
+ pPar->fDecMuxes = 0;
+ pPar->fVerbose = 0;
+}
+
typedef struct Wla_Man_t_ Wla_Man_t;
struct Wla_Man_t_
{
@@ -325,7 +359,7 @@ extern int Wlc_NtkPdrAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars );
/*=== wlcAbs2.c ========================================================*/
extern int Wlc_NtkAbsCore2( Wlc_Ntk_t * p, Wlc_Par_t * pPars );
/*=== wlcBlast.c ========================================================*/
-extern Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Vec_Int_t * vBoxIds, int iOutput, int nRange, int fGiaSimple, int fAddOutputs, int fBooth, int fNoCleanup, int fCreateMiter, int fDecMuxes );
+extern Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pPars );
/*=== wlcCom.c ========================================================*/
extern void Wlc_SetNtk( Abc_Frame_t * pAbc, Wlc_Ntk_t * pNtk );
/*=== wlcNdr.c ========================================================*/
@@ -376,6 +410,7 @@ extern int Wlc_StdinProcessSmt( Abc_Frame_t * pAbc, char * pCmd );
/*=== wlcReadVer.c ========================================================*/
extern Wlc_Ntk_t * Wlc_ReadVer( char * pFileName, char * pStr );
/*=== wlcUif.c ========================================================*/
+extern Vec_Int_t * Wlc_NtkCollectAddMult( Wlc_Ntk_t * p, Wlc_BstPar_t * pPar, int * pCountA, int * CountM );
extern int Wlc_NtkPairIsUifable( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, Wlc_Obj_t * pObj2 );
extern Vec_Int_t * Wlc_NtkCollectMultipliers( Wlc_Ntk_t * p );
extern Vec_Int_t * Wlc_NtkFindUifableMultiplierPairs( Wlc_Ntk_t * p );