abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cgt.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [cgt.h]
4 
5  SystemName [ABC: Logic synthesis and verification system.]
6 
7  PackageName [Clock gating package.]
8 
9  Synopsis [External declarations.]
10 
11  Author [Alan Mishchenko]
12 
13  Affiliation [UC Berkeley]
14 
15  Date [Ver. 1.0. Started - June 20, 2005.]
16 
17  Revision [$Id: cgt.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__aig__cgt__cgt_h
22 #define ABC__aig__cgt__cgt_h
23 
24 
25 /*
26  The algorithm implemented in this package is based on the paper:
27  A. Hurst. "Automatic synthesis of clock gating logic with controlled
28  netlist perturbation", DAC 2008.
29 */
30 
31 ////////////////////////////////////////////////////////////////////////
32 /// INCLUDES ///
33 ////////////////////////////////////////////////////////////////////////
34 
35 ////////////////////////////////////////////////////////////////////////
36 /// PARAMETERS ///
37 ////////////////////////////////////////////////////////////////////////
38 
39 
40 
42 
43 
44 ////////////////////////////////////////////////////////////////////////
45 /// BASIC TYPES ///
46 ////////////////////////////////////////////////////////////////////////
47 
48 typedef struct Cgt_Par_t_ Cgt_Par_t;
49 struct Cgt_Par_t_
50 {
51  int nLevelMax; // the max number of levels to look for clock-gates
52  int nCandMax; // the max number of candidates at each node
53  int nOdcMax; // the max number of ODC levels to consider
54  int nConfMax; // the max number of conflicts at a node
55  int nVarsMin; // the min number of variables to recycle the SAT solver
56  int nFlopsMin; // the min number of flops needed to recycle the SAT solver
57  int fAreaOnly; // derive clock gating to minimize area
58  int fVerbose; // verbosity flag
59  int fVeryVerbose; // verbosity flag
60 };
61 
62 ////////////////////////////////////////////////////////////////////////
63 /// MACRO DEFINITIONS ///
64 ////////////////////////////////////////////////////////////////////////
65 
66 ////////////////////////////////////////////////////////////////////////
67 /// FUNCTION DECLARATIONS ///
68 ////////////////////////////////////////////////////////////////////////
69 
70 /*=== cgtCore.c ==========================================================*/
71 extern void Cgt_SetDefaultParams( Cgt_Par_t * p );
72 extern Vec_Vec_t * Cgt_ClockGatingCandidates( Aig_Man_t * pAig, Aig_Man_t * pCare, Cgt_Par_t * pPars, Vec_Int_t * vUseful );
73 extern Vec_Vec_t * Cgt_ClockGatingInt( Aig_Man_t * pAig, Aig_Man_t * pCare, Cgt_Par_t * pPars, Vec_Int_t * vUseful );
74 extern Aig_Man_t * Cgt_ClockGating( Aig_Man_t * pAig, Aig_Man_t * pCare, Cgt_Par_t * pPars );
75 
76 
77 
79 
80 
81 
82 #endif
83 
84 ////////////////////////////////////////////////////////////////////////
85 /// END OF FILE ///
86 ////////////////////////////////////////////////////////////////////////
87 
int nOdcMax
Definition: cgt.h:53
int nCandMax
Definition: cgt.h:52
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
Definition: vecVec.h:42
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Definition: aig.h:50
static Llb_Mgr_t * p
Definition: llb3Image.c:950
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
Definition: cgt.h:49
int fVerbose
Definition: cgt.h:58
int nLevelMax
Definition: cgt.h:51
int fAreaOnly
Definition: cgt.h:57
void Cgt_SetDefaultParams(Cgt_Par_t *p)
MACRO DEFINITIONS ///.
Definition: cgtCore.c:46
int nFlopsMin
Definition: cgt.h:56
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
typedefABC_NAMESPACE_HEADER_START struct Cgt_Par_t_ Cgt_Par_t
INCLUDES ///.
Definition: cgt.h:48
int nVarsMin
Definition: cgt.h:55
int fVeryVerbose
Definition: cgt.h:59
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
Aig_Man_t * Cgt_ClockGating(Aig_Man_t *pAig, Aig_Man_t *pCare, Cgt_Par_t *pPars)
Definition: cgtCore.c:298
Vec_Vec_t * Cgt_ClockGatingInt(Aig_Man_t *pAig, Aig_Man_t *pCare, Cgt_Par_t *pPars, Vec_Int_t *vUseful)
Definition: cgtCore.c:287
int nConfMax
Definition: cgt.h:54
Vec_Vec_t * Cgt_ClockGatingCandidates(Aig_Man_t *pAig, Aig_Man_t *pCare, Cgt_Par_t *pPars, Vec_Int_t *vUseful)
Definition: cgtCore.c:245