summaryrefslogtreecommitdiffstats
path: root/src/opt/res/res.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/opt/res/res.h')
-rw-r--r--src/opt/res/res.h71
1 files changed, 10 insertions, 61 deletions
diff --git a/src/opt/res/res.h b/src/opt/res/res.h
index 4a887741..fda35b89 100644
--- a/src/opt/res/res.h
+++ b/src/opt/res/res.h
@@ -37,50 +37,17 @@ extern "C" {
/// BASIC TYPES ///
////////////////////////////////////////////////////////////////////////
-typedef struct Res_Win_t_ Res_Win_t;
-struct Res_Win_t_
+typedef struct Res_Par_t_ Res_Par_t;
+struct Res_Par_t_
{
- // the general data
- int nWinTfiMax; // the fanin levels
- int nWinTfoMax; // the fanout levels
- int nLevLeaves; // the level where leaves begin
- int nLevDivMax; // the maximum divisor level
- Abc_Obj_t * pNode; // the node in the center
- // the window data
- Vec_Vec_t * vLevels; // nodes by level
- Vec_Ptr_t * vLeaves; // leaves of the window
- Vec_Ptr_t * vRoots; // roots of the window
- Vec_Ptr_t * vDivs; // the candidate divisors of the node
+ // general parameters
+ int nWindow; // window size
+ int nSimWords; // the number of simulation words
+ int nCands; // the number of candidates to try
+ int fVerbose; // enable basic stats
+ int fVeryVerbose; // enable detailed stats
};
-typedef struct Res_Sim_t_ Res_Sim_t;
-struct Res_Sim_t_
-{
- Abc_Ntk_t * pAig; // AIG for simulation
- // simulation parameters
- int nWords; // the number of simulation words
- int nPats; // the number of patterns
- int nWordsOut; // the number of simulation words in the output patterns
- int nPatsOut; // the number of patterns in the output patterns
- // simulation info
- Vec_Ptr_t * vPats; // input simulation patterns
- Vec_Ptr_t * vPats0; // input simulation patterns
- Vec_Ptr_t * vPats1; // input simulation patterns
- Vec_Ptr_t * vOuts; // output simulation info
- int nPats0; // the number of 0-patterns accumulated
- int nPats1; // the number of 1-patterns accumulated
- // resub candidates
- Vec_Vec_t * vCands; // resubstitution candidates
-};
-
-// adds one node to the window
-static inline void Res_WinAddNode( Res_Win_t * p, Abc_Obj_t * pObj )
-{
- assert( !pObj->fMarkA );
- pObj->fMarkA = 1;
- Vec_VecPush( p->vLevels, pObj->Level, pObj );
-}
-
////////////////////////////////////////////////////////////////////////
/// MACRO DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
@@ -89,26 +56,8 @@ static inline void Res_WinAddNode( Res_Win_t * p, Abc_Obj_t * pObj )
/// FUNCTION DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
-/*=== resDivs.c ==========================================================*/
-extern void Res_WinDivisors( Res_Win_t * p, int nLevDivMax );
-extern int Res_WinVisitMffc( Res_Win_t * p );
-/*=== resFilter.c ==========================================================*/
-extern Vec_Vec_t * Res_FilterCandidates( Res_Win_t * pWin, Res_Sim_t * pSim );
-/*=== resSat.c ==========================================================*/
-extern void * Res_SatProveUnsat( Abc_Ntk_t * pAig, Vec_Ptr_t * vFanins );
-/*=== resSim.c ==========================================================*/
-extern Res_Sim_t * Res_SimAlloc( int nWords );
-extern void Res_SimFree( Res_Sim_t * p );
-extern int Res_SimPrepare( Res_Sim_t * p, Abc_Ntk_t * pAig );
-/*=== resStrash.c ==========================================================*/
-extern Abc_Ntk_t * Res_WndStrash( Res_Win_t * p );
-/*=== resWnd.c ==========================================================*/
-extern void Res_UpdateNetwork( Abc_Obj_t * pObj, Vec_Ptr_t * vFanins, Hop_Obj_t * pFunc, Vec_Vec_t * vLevels );
-/*=== resWnd.c ==========================================================*/
-extern Res_Win_t * Res_WinAlloc();
-extern void Res_WinFree( Res_Win_t * p );
-extern int Res_WinCompute( Abc_Obj_t * pNode, int nWinTfiMax, int nWinTfoMax, Res_Win_t * p );
-extern void Res_WinVisitNodeTfo( Res_Win_t * p );
+/*=== resCore.c ==========================================================*/
+extern int Abc_NtkResynthesize( Abc_Ntk_t * pNtk, Res_Par_t * pPars );
#ifdef __cplusplus