summaryrefslogtreecommitdiffstats
path: root/src/aig/cgt/cgt.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-10-29 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-10-29 08:01:00 -0700
commitc9ad5880cc61787dec6d018111b63023407ce0e6 (patch)
treed6a89a234b2109d569645286ee9902485ff73a13 /src/aig/cgt/cgt.h
parentd80ee832f3883bf5b848db4ab31563c07fd08b59 (diff)
downloadabc-c9ad5880cc61787dec6d018111b63023407ce0e6.tar.gz
abc-c9ad5880cc61787dec6d018111b63023407ce0e6.tar.bz2
abc-c9ad5880cc61787dec6d018111b63023407ce0e6.zip
Version abc81029
Diffstat (limited to 'src/aig/cgt/cgt.h')
-rw-r--r--src/aig/cgt/cgt.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/aig/cgt/cgt.h b/src/aig/cgt/cgt.h
new file mode 100644
index 00000000..b9997d56
--- /dev/null
+++ b/src/aig/cgt/cgt.h
@@ -0,0 +1,81 @@
+/**CFile****************************************************************
+
+ FileName [cgt.h]
+
+ SystemName [ABC: Logic synthesis and verification system.]
+
+ PackageName [Clock gating package.]
+
+ Synopsis [External declarations.]
+
+ Author [Alan Mishchenko]
+
+ Affiliation [UC Berkeley]
+
+ Date [Ver. 1.0. Started - June 20, 2005.]
+
+ Revision [$Id: cgt.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
+
+***********************************************************************/
+
+#ifndef __CGT_H__
+#define __CGT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ The algorithm implemented in this package is based on the paper:
+ A. Hurst. "Automatic synthesis of clock gating logic with controlled
+ netlist perturbation", DAC 2008.
+*/
+
+////////////////////////////////////////////////////////////////////////
+/// INCLUDES ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// PARAMETERS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// BASIC TYPES ///
+////////////////////////////////////////////////////////////////////////
+
+typedef struct Cgt_Par_t_ Cgt_Par_t;
+struct Cgt_Par_t_
+{
+ int nLevelMax; // the max number of levels to look for clock-gates
+ int nCandMax; // the max number of candidates at each node
+ int nOdcMax; // the max number of ODC levels to consider
+ int nConfMax; // the max number of conflicts at a node
+ int nVarsMin; // the min number of variables to recycle the SAT solver
+ int nFlopsMin; // the min number of flops needed to recycle the SAT solver
+ int fVerbose; // verbosity flag
+
+};
+
+////////////////////////////////////////////////////////////////////////
+/// MACRO DEFINITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// FUNCTION DECLARATIONS ///
+////////////////////////////////////////////////////////////////////////
+
+/*=== cgtCore.c ==========================================================*/
+extern void Cgt_SetDefaultParams( Cgt_Par_t * p );
+extern Vec_Vec_t * Cgt_ClockGatingCandidates( Aig_Man_t * pAig, Aig_Man_t * pCare, Cgt_Par_t * pPars );
+extern Aig_Man_t * Cgt_ClockGating( Aig_Man_t * pAig, Aig_Man_t * pCare, Cgt_Par_t * pPars );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////
+