summaryrefslogtreecommitdiffstats
path: root/src/opt/sbd/sbd.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2016-11-17 12:16:14 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2016-11-17 12:16:14 -0800
commit585f3a6407146b58acbc5cc880dde566c1292441 (patch)
treecf291d5fed93f959ab90a7148e8bc9698f79eba7 /src/opt/sbd/sbd.h
parent254ac2df8f74d627cdd21c958b65208dfe025097 (diff)
downloadabc-585f3a6407146b58acbc5cc880dde566c1292441.tar.gz
abc-585f3a6407146b58acbc5cc880dde566c1292441.tar.bz2
abc-585f3a6407146b58acbc5cc880dde566c1292441.zip
New SAT-based optimization package.
Diffstat (limited to 'src/opt/sbd/sbd.h')
-rw-r--r--src/opt/sbd/sbd.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/opt/sbd/sbd.h b/src/opt/sbd/sbd.h
new file mode 100644
index 00000000..946a2ee4
--- /dev/null
+++ b/src/opt/sbd/sbd.h
@@ -0,0 +1,104 @@
+/**CFile****************************************************************
+
+ FileName [sbd.h]
+
+ SystemName [ABC: Logic synthesis and verification system.]
+
+ PackageName [SAT-based optimization using internal don't-cares.]
+
+ Synopsis [External declarations.]
+
+ Author [Alan Mishchenko]
+
+ Affiliation [UC Berkeley]
+
+ Date [Ver. 1.0. Started - June 20, 2005.]
+
+ Revision [$Id: sbd.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
+
+***********************************************************************/
+
+#ifndef ABC__opt_sbd__h
+#define ABC__opt_sbd__h
+
+////////////////////////////////////////////////////////////////////////
+/// INCLUDES ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// PARAMETERS ///
+////////////////////////////////////////////////////////////////////////
+
+ABC_NAMESPACE_HEADER_START
+
+////////////////////////////////////////////////////////////////////////
+/// BASIC TYPES ///
+////////////////////////////////////////////////////////////////////////
+
+typedef struct Sbd_Ntk_t_ Sbd_Ntk_t;
+typedef struct Sbd_Par_t_ Sbd_Par_t;
+struct Sbd_Par_t_
+{
+ int nTfoLevMax; // the maximum fanout levels
+ int nTfiLevMax; // the maximum fanin levels
+ int nFanoutMax; // the maximum number of fanouts
+ int nDepthMax; // the maximum depth to try
+ int nVarMax; // the maximum variable count
+ int nMffcMin; // the minimum MFFC size
+ int nMffcMax; // the maximum MFFC size
+ int nDecMax; // the maximum number of decompositions
+ int nWinSizeMax; // the maximum window size
+ int nGrowthLevel; // the maximum allowed growth in level
+ int nBTLimit; // the maximum number of conflicts in one SAT run
+ int nNodesMax; // the maximum number of nodes to try
+ int iNodeOne; // one particular node to try
+ int nFirstFixed; // the number of first nodes to be treated as fixed
+ int nTimeWin; // the size of timing window in percents
+ int DeltaCrit; // delay delta in picoseconds
+ int DelAreaRatio; // delay/area tradeoff (how many ps we trade for a unit of area)
+ int fRrOnly; // perform redundance removal
+ int fArea; // performs optimization for area
+ int fAreaRev; // performs optimization for area in reverse order
+ int fMoreEffort; // performs high-affort minimization
+ int fUseAndOr; // enable internal detection of AND/OR gates
+ int fZeroCost; // enable zero-cost replacement
+ int fUseSim; // enable simulation
+ int fPrintDecs; // enable printing decompositions
+ int fAllBoxes; // enable preserving all boxes
+ int fLibVerbose; // enable library stats
+ int fDelayVerbose; // enable delay stats
+ int fVerbose; // enable basic stats
+ int fVeryVerbose; // enable detailed stats
+};
+
+////////////////////////////////////////////////////////////////////////
+/// MACRO DEFINITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// FUNCTION DECLARATIONS ///
+////////////////////////////////////////////////////////////////////////
+
+/*=== sbdCnf.c ==========================================================*/
+/*=== sbdCore.c ==========================================================*/
+extern void Sbd_ParSetDefault( Sbd_Par_t * pPars );
+extern int Sbd_NtkPerform( Sbd_Ntk_t * p, Sbd_Par_t * pPars );
+/*=== sbdNtk.c ==========================================================*/
+extern Sbd_Ntk_t * Sbd_NtkConstruct( Vec_Wec_t * vFanins, int nPis, int nPos, Vec_Str_t * vFixed, Vec_Str_t * vEmpty, Vec_Wrd_t * vTruths );
+extern void Sbd_NtkFree( Sbd_Ntk_t * p );
+extern Vec_Int_t * Sbd_NodeReadFanins( Sbd_Ntk_t * p, int i );
+extern word * Sbd_NodeReadTruth( Sbd_Ntk_t * p, int i );
+extern int Sbd_NodeReadFixed( Sbd_Ntk_t * p, int i );
+extern int Sbd_NodeReadUsed( Sbd_Ntk_t * p, int i );
+/*=== sbdWin.c ==========================================================*/
+extern Vec_Int_t * Sbd_NtkDfs( Sbd_Ntk_t * p, Vec_Wec_t * vGroups, Vec_Int_t * vGroupMap, Vec_Int_t * vBoxesLeft, int fAllBoxes );
+
+
+ABC_NAMESPACE_HEADER_END
+
+#endif
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////
+