summaryrefslogtreecommitdiffstats
path: root/abc70930/src/bdd/dsd/dsdApi.c
diff options
context:
space:
mode:
Diffstat (limited to 'abc70930/src/bdd/dsd/dsdApi.c')
-rw-r--r--abc70930/src/bdd/dsd/dsdApi.c97
1 files changed, 97 insertions, 0 deletions
diff --git a/abc70930/src/bdd/dsd/dsdApi.c b/abc70930/src/bdd/dsd/dsdApi.c
new file mode 100644
index 00000000..d1c90e23
--- /dev/null
+++ b/abc70930/src/bdd/dsd/dsdApi.c
@@ -0,0 +1,97 @@
+/**CFile****************************************************************
+
+ FileName [dsdApi.c]
+
+ PackageName [DSD: Disjoint-support decomposition package.]
+
+ Synopsis [Implementation of API functions.]
+
+ Author [Alan Mishchenko]
+
+ Affiliation [UC Berkeley]
+
+ Date [Ver. 8.0. Started - September 22, 2003.]
+
+ Revision [$Id: dsdApi.c,v 1.0 2002/22/09 00:00:00 alanmi Exp $]
+
+***********************************************************************/
+
+#include "dsdInt.h"
+
+////////////////////////////////////////////////////////////////////////
+/// DECLARATIONS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// FUNCTION DEFINITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+/**Function*************************************************************
+
+ Synopsis [APIs of the DSD node.]
+
+ Description [The node's type can be retrieved by calling
+ Dsd_NodeReadType(). The type is one of the following: constant 1 node,
+ the buffer (or the elementary variable), OR gate, EXOR gate, or
+ PRIME function (a non-DSD-decomposable function with more than two
+ inputs). The return value of Dsd_NodeReadFunc() is the global function
+ of the DSD node. The return value of Dsd_NodeReadSupp() is the support
+ of the global function of the DSD node. The array of DSD nodes
+ returned by Dsd_NodeReadDecs() is the array of decomposition nodes for
+ the formal inputs of the given node. The number of decomposition entries
+ returned by Dsd_NodeReadDecsNum() is the number of formal inputs.
+ The mark is explained below.]
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+Dsd_Type_t Dsd_NodeReadType( Dsd_Node_t * p ) { return p->Type; }
+DdNode * Dsd_NodeReadFunc( Dsd_Node_t * p ) { return p->G; }
+DdNode * Dsd_NodeReadSupp( Dsd_Node_t * p ) { return p->S; }
+Dsd_Node_t ** Dsd_NodeReadDecs( Dsd_Node_t * p ) { return p->pDecs; }
+Dsd_Node_t * Dsd_NodeReadDec ( Dsd_Node_t * p, int i ) { return p->pDecs[i]; }
+int Dsd_NodeReadDecsNum( Dsd_Node_t * p ) { return p->nDecs; }
+int Dsd_NodeReadMark( Dsd_Node_t * p ) { return p->Mark; }
+
+/**Function*************************************************************
+
+ Synopsis [APIs of the DSD node.]
+
+ Description [This API allows the user to set the integer mark in the
+ given DSD node. The mark is guaranteed to persist as long as the
+ calls to the decomposition are not performed. In any case, the mark
+ is useful to associate the node with some temporary information, such
+ as its number in the DFS ordered list of the DSD nodes or its number in
+ the BLIF file that it being written.]
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+void Dsd_NodeSetMark( Dsd_Node_t * p, int Mark ){ p->Mark = Mark; }
+
+/**Function*************************************************************
+
+ Synopsis [APIs of the DSD manager.]
+
+ Description [Allows the use to get hold of an individual leave of
+ the DSD tree (Dsd_ManagerReadInput) or an individual root of the
+ decomposition tree (Dsd_ManagerReadRoot). The root may have the
+ complemented attribute.]
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+Dsd_Node_t * Dsd_ManagerReadRoot( Dsd_Manager_t * pMan, int i ) { return pMan->pRoots[i]; }
+Dsd_Node_t * Dsd_ManagerReadInput( Dsd_Manager_t * pMan, int i ) { return pMan->pInputs[i]; }
+Dsd_Node_t * Dsd_ManagerReadConst1( Dsd_Manager_t * pMan ) { return pMan->pConst1; }
+DdManager * Dsd_ManagerReadDd( Dsd_Manager_t * pMan ) { return pMan->dd; }
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////