abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
dar.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [dar.h]
4 
5  SystemName [ABC: Logic synthesis and verification system.]
6 
7  PackageName [DAG-aware AIG rewriting.]
8 
9  Synopsis [External declarations.]
10 
11  Author [Alan Mishchenko]
12 
13  Affiliation [UC Berkeley]
14 
15  Date [Ver. 1.0. Started - April 28, 2007.]
16 
17  Revision [$Id: dar.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__aig__dar__dar_h
22 #define ABC__aig__dar__dar_h
23 
24 
25 ////////////////////////////////////////////////////////////////////////
26 /// INCLUDES ///
27 ////////////////////////////////////////////////////////////////////////
28 
29 ////////////////////////////////////////////////////////////////////////
30 /// PARAMETERS ///
31 ////////////////////////////////////////////////////////////////////////
32 
33 
34 
36 
37 
38 ////////////////////////////////////////////////////////////////////////
39 /// BASIC TYPES ///
40 ////////////////////////////////////////////////////////////////////////
41 
42 typedef struct Dar_RwrPar_t_ Dar_RwrPar_t;
43 typedef struct Dar_RefPar_t_ Dar_RefPar_t;
44 
46 {
47  int nCutsMax; // the maximum number of cuts to try
48  int nSubgMax; // the maximum number of subgraphs to try
49  int fFanout; // support fanout representation
50  int fUpdateLevel; // update level
51  int fUseZeros; // performs zero-cost replacement
52  int fPower; // enables power-aware rewriting
53  int fRecycle; // enables cut recycling
54  int fVerbose; // enables verbose output
55  int fVeryVerbose; // enables very verbose output
56 };
57 
59 {
60  int nMffcMin; // the min MFFC size for which refactoring is used
61  int nLeafMax; // the max number of leaves of a cut
62  int nCutsMax; // the max number of cuts to consider
63  int fExtend; // extends the cut below MFFC
64  int fUpdateLevel; // updates the level after each move
65  int fUseZeros; // perform zero-cost replacements
66  int fVerbose; // verbosity level
67  int fVeryVerbose; // enables very verbose output
68 };
69 
70 ////////////////////////////////////////////////////////////////////////
71 /// MACRO DEFINITIONS ///
72 ////////////////////////////////////////////////////////////////////////
73 
74 ////////////////////////////////////////////////////////////////////////
75 /// ITERATORS ///
76 ////////////////////////////////////////////////////////////////////////
77 
78 ////////////////////////////////////////////////////////////////////////
79 /// FUNCTION DECLARATIONS ///
80 ////////////////////////////////////////////////////////////////////////
81 
82 /*=== darLib.c ========================================================*/
83 extern void Dar_LibStart();
84 extern void Dar_LibStop();
85 extern void Dar_LibPrepare( int nSubgraphs );
86 extern int Dar_LibReturnClass( unsigned uTruth );
87 /*=== darBalance.c ========================================================*/
88 extern Aig_Man_t * Dar_ManBalance( Aig_Man_t * p, int fUpdateLevel );
89 extern Aig_Man_t * Dar_ManBalanceXor( Aig_Man_t * pAig, int fExor, int fUpdateLevel, int fVerbose );
90 extern void Dar_BalancePrintStats( Aig_Man_t * p );
91 /*=== darCore.c ========================================================*/
92 extern void Dar_ManDefaultRwrParams( Dar_RwrPar_t * pPars );
93 extern int Dar_ManRewrite( Aig_Man_t * pAig, Dar_RwrPar_t * pPars );
94 extern Aig_MmFixed_t * Dar_ManComputeCuts( Aig_Man_t * pAig, int nCutsMax, int fSkipTtMin, int fVerbose );
95 /*=== darRefact.c ========================================================*/
96 extern void Dar_ManDefaultRefParams( Dar_RefPar_t * pPars );
97 extern int Dar_ManRefactor( Aig_Man_t * pAig, Dar_RefPar_t * pPars );
98 /*=== darScript.c ========================================================*/
99 extern Aig_Man_t * Dar_ManRewriteDefault( Aig_Man_t * pAig );
100 extern Aig_Man_t * Dar_ManRwsat( Aig_Man_t * pAig, int fBalance, int fVerbose );
101 extern Aig_Man_t * Dar_ManCompress( Aig_Man_t * pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose );
102 extern Aig_Man_t * Dar_ManCompress2( Aig_Man_t * pAig, int fBalance, int fUpdateLevel, int fFanout, int fPower, int fVerbose );
103 extern Aig_Man_t * Dar_ManChoice( Aig_Man_t * pAig, int fBalance, int fUpdateLevel, int fConstruct, int nConfMax, int nLevelMax, int fVerbose );
104 
105 
106 
108 
109 
110 
111 #endif
112 
113 ////////////////////////////////////////////////////////////////////////
114 /// END OF FILE ///
115 ////////////////////////////////////////////////////////////////////////
116 
int fUseZeros
Definition: dar.h:51
int fVeryVerbose
Definition: dar.h:55
int fVerbose
Definition: dar.h:54
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Definition: aig.h:50
Aig_Man_t * Dar_ManBalanceXor(Aig_Man_t *pAig, int fExor, int fUpdateLevel, int fVerbose)
Definition: darBalance.c:687
static Llb_Mgr_t * p
Definition: llb3Image.c:950
int fFanout
Definition: dar.h:49
Aig_Man_t * Dar_ManRwsat(Aig_Man_t *pAig, int fBalance, int fVerbose)
DECLARATIONS ///.
Definition: darScript.c:71
int fUpdateLevel
Definition: dar.h:64
int fVeryVerbose
Definition: dar.h:67
int Dar_ManRewrite(Aig_Man_t *pAig, Dar_RwrPar_t *pPars)
Definition: darCore.c:78
int Dar_LibReturnClass(unsigned uTruth)
Definition: darLib.c:194
int nCutsMax
Definition: dar.h:62
Aig_Man_t * Dar_ManChoice(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fConstruct, int nConfMax, int nLevelMax, int fVerbose)
Definition: darScript.c:378
int nLeafMax
Definition: dar.h:61
int fRecycle
Definition: dar.h:53
DECLARATIONS ///.
Definition: aigMem.c:30
Aig_MmFixed_t * Dar_ManComputeCuts(Aig_Man_t *pAig, int nCutsMax, int fSkipTtMin, int fVerbose)
Definition: darCore.c:287
int fVerbose
Definition: dar.h:66
int Dar_ManRefactor(Aig_Man_t *pAig, Dar_RefPar_t *pPars)
Definition: darRefact.c:496
Aig_Man_t * Dar_ManCompress2(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fFanout, int fPower, int fVerbose)
Definition: darScript.c:235
Aig_Man_t * Dar_ManRewriteDefault(Aig_Man_t *pAig)
DECLARATIONS ///.
Definition: darScript.c:48
Aig_Man_t * Dar_ManCompress(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose)
Definition: darScript.c:162
void Dar_ManDefaultRefParams(Dar_RefPar_t *pPars)
FUNCTION DEFINITIONS ///.
Definition: darRefact.c:85
int nSubgMax
Definition: dar.h:48
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
int nMffcMin
Definition: dar.h:60
void Dar_LibStop()
Definition: darLib.c:615
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
void Dar_LibPrepare(int nSubgraphs)
Definition: darLib.c:478
int fUseZeros
Definition: dar.h:65
void Dar_BalancePrintStats(Aig_Man_t *p)
Definition: darBalance.c:716
int fPower
Definition: dar.h:52
typedefABC_NAMESPACE_HEADER_START struct Dar_RwrPar_t_ Dar_RwrPar_t
INCLUDES ///.
Definition: dar.h:42
int fUpdateLevel
Definition: dar.h:50
int fExtend
Definition: dar.h:63
int nCutsMax
Definition: dar.h:47
Aig_Man_t * Dar_ManBalance(Aig_Man_t *p, int fUpdateLevel)
Definition: darBalance.c:554
void Dar_LibStart()
MACRO DEFINITIONS ///.
Definition: darLib.c:593
void Dar_ManDefaultRwrParams(Dar_RwrPar_t *pPars)
FUNCTION DEFINITIONS ///.
Definition: darCore.c:51