abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
dsdInt.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [dsdInt.h]
4 
5  PackageName [DSD: Disjoint-support decomposition package.]
6 
7  Synopsis [Internal declarations of the package.]
8 
9  Author [Alan Mishchenko]
10 
11  Affiliation [UC Berkeley]
12 
13  Date [Ver. 8.0. Started - September 22, 2003.]
14 
15  Revision [$Id: dsdInt.h,v 1.0 2002/22/09 00:00:00 alanmi Exp $]
16 
17 ***********************************************************************/
18 
19 #ifndef ABC__bdd__dsd__dsdInt_h
20 #define ABC__bdd__dsd__dsdInt_h
21 
22 
23 #include "misc/extra/extraBdd.h"
24 #include "dsd.h"
25 
27 
28 
29 ////////////////////////////////////////////////////////////////////////
30 /// TYPEDEF DEFINITIONS ///
31 ////////////////////////////////////////////////////////////////////////
32 
33 typedef unsigned char byte;
34 
35 ////////////////////////////////////////////////////////////////////////
36 /// STRUCTURE DEFINITIONS ///
37 ////////////////////////////////////////////////////////////////////////
38 
39 // DSD manager
41 {
42  DdManager * dd; // the BDD manager
43  st__table * Table; // the mapping of BDDs into their DEs
44  int nInputs; // the number of primary inputs
45  int nRoots; // the number of primary outputs
46  int nRootsAlloc;// the number of primary outputs
47  Dsd_Node_t ** pInputs; // the primary input nodes
48  Dsd_Node_t ** pRoots; // the primary output nodes
49  Dsd_Node_t * pConst1; // the constant node
50  int fVerbose; // the verbosity level
51 };
52 
53 // DSD node
55 {
56  Dsd_Type_t Type; // decomposition type
57  DdNode * G; // function of the node
58  DdNode * S; // support of this function
59  Dsd_Node_t ** pDecs; // pointer to structures for formal inputs
60  int Mark; // the mark used by CASE 4 of disjoint decomposition
61  short nDecs; // the number of formal inputs
62  short nVisits; // the counter of visits
63 };
64 
65 ////////////////////////////////////////////////////////////////////////
66 /// MACRO DEFINITIONS ///
67 ////////////////////////////////////////////////////////////////////////
68 
69 #define MAXINPUTS 1000
70 
71 ////////////////////////////////////////////////////////////////////////
72 /// PARAMETERS ///
73 ////////////////////////////////////////////////////////////////////////
74 
75 ////////////////////////////////////////////////////////////////////////
76 /// FUNCTION DECLARATIONS ///
77 ////////////////////////////////////////////////////////////////////////
78 
79 /*=== dsdCheck.c =======================================================*/
80 extern void Dsd_CheckCacheAllocate( int nEntries );
81 extern void Dsd_CheckCacheDeallocate();
82 extern void Dsd_CheckCacheClear();
83 extern int Dsd_CheckRootFunctionIdentity( DdManager * dd, DdNode * bF1, DdNode * bF2, DdNode * bC1, DdNode * bC2 );
84 /*=== dsdTree.c =======================================================*/
85 extern Dsd_Node_t * Dsd_TreeNodeCreate( int Type, int nDecs, int BlockNum );
86 extern void Dsd_TreeNodeDelete( DdManager * dd, Dsd_Node_t * pNode );
87 extern void Dsd_TreeUnmark( Dsd_Manager_t * dMan );
88 extern DdNode * Dsd_TreeGetPrimeFunctionOld( DdManager * dd, Dsd_Node_t * pNode, int fRemap );
89 
90 
91 
93 
94 #endif
95 
96 ////////////////////////////////////////////////////////////////////////
97 /// END OF FILE ///
98 ////////////////////////////////////////////////////////////////////////
99 
DdNode * S
Definition: dsdInt.h:58
DdManager * dd
Definition: dsdInt.h:42
Definition: cudd.h:278
DdNode * G
Definition: dsdInt.h:57
void Dsd_TreeUnmark(Dsd_Manager_t *dMan)
Definition: dsdTree.c:107
int fVerbose
Definition: dsdInt.h:50
st__table * Table
Definition: dsdInt.h:43
void Dsd_TreeNodeDelete(DdManager *dd, Dsd_Node_t *pNode)
Definition: dsdTree.c:87
Dsd_Node_t * pConst1
Definition: dsdInt.h:49
Dsd_Node_t ** pDecs
Definition: dsdInt.h:59
ABC_NAMESPACE_HEADER_START typedef unsigned char byte
TYPEDEF DEFINITIONS ///.
Definition: dsdInt.h:33
Definition: st.h:52
STRUCTURE DEFINITIONS ///.
Definition: dsdInt.h:40
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
int nRootsAlloc
Definition: dsdInt.h:46
DdNode * Dsd_TreeGetPrimeFunctionOld(DdManager *dd, Dsd_Node_t *pNode, int fRemap)
Definition: dsdTree.c:1120
Dsd_Type_t Type
Definition: dsdInt.h:56
int Mark
Definition: dsdInt.h:60
int nInputs
Definition: dsdInt.h:44
Dsd_Node_t * Dsd_TreeNodeCreate(int Type, int nDecs, int BlockNum)
FUNCTION DEFINITIONS ///.
Definition: dsdTree.c:61
Dsd_Node_t ** pInputs
Definition: dsdInt.h:47
void Dsd_CheckCacheDeallocate()
Definition: dsdCheck.c:97
void Dsd_CheckCacheAllocate(int nEntries)
PARAMETERS ///.
Definition: dsdCheck.c:63
enum Dsd_Type_t_ Dsd_Type_t
Definition: dsd.h:61
int Dsd_CheckRootFunctionIdentity(DdManager *dd, DdNode *bF1, DdNode *bF2, DdNode *bC1, DdNode *bC2)
Definition: dsdCheck.c:133
void Dsd_CheckCacheClear()
Definition: dsdCheck.c:114
int nRoots
Definition: dsdInt.h:45
short nVisits
Definition: dsdInt.h:62
Dsd_Node_t ** pRoots
Definition: dsdInt.h:48
short nDecs
Definition: dsdInt.h:61