abc-master
|
#include "dsdInt.h"
Go to the source code of this file.
Variables | |
static int | s_Mark |
STATIC VARIABLES ///. More... | |
static int | Depth = 0 |
static int | s_Loops1 |
static int | s_Loops2 |
static int | s_Loops3 |
static int | s_Common |
static int | s_CommonNo |
static int | s_Case4Calls |
static int | s_Case4CallsSpecial |
static int | s_nDecBlocks |
static int | s_nLiterals |
static int | s_nExorGates |
static int | s_nReusedBlocks |
static int | s_nCascades |
static int | s_nPrimeBlocks |
static int | HashSuccess = 0 |
static int | HashFailure = 0 |
static int | s_CacheEntries |
void Dsd_Decompose | ( | Dsd_Manager_t * | pDsdMan, |
DdNode ** | pbFuncs, | ||
int | nFuncs | ||
) |
DECOMPOSITION FUNCTIONS ///.
Function*************************************************************
Synopsis [Performs DSD for the array of functions represented by BDDs.]
Description [This function takes the DSD manager, which should be previously allocated by the call to Dsd_ManagerStart(). The resulting DSD tree is stored in the DSD manager (pDsdMan->pRoots, pDsdMan->nRoots). Access to the tree is through the APIs of the manager. The resulting tree is a shared DSD DAG for the functions given in the array. For one function the resulting DAG is always a tree. The root node pointers can be complemented, as discussed in the literature referred to in "dsd.h". This procedure can be called repeatedly for different functions. There is no need to remove the decomposition tree after it is returned, because the next call to the DSD manager will "recycle" the tree. The user should not modify or dereference any data associated with the nodes of the DSD trees (the user can only change the contents of a temporary mark associated with each node by the calling to Dsd_NodeSetMark()). All the decomposition trees and intermediate nodes will be removed when the DSD manager is deallocated at the end by calling Dsd_ManagerStop().]
SideEffects []
SeeAlso []
Definition at line 113 of file dsdProc.c.
Dsd_Node_t* Dsd_DecomposeOne | ( | Dsd_Manager_t * | pDsdMan, |
DdNode * | bFunc | ||
) |
Function*************************************************************
Synopsis [Performs decomposition for one function.]
Description []
SideEffects []
SeeAlso []
Definition at line 230 of file dsdProc.c.
|
static |
Function*************************************************************
Synopsis [Checks support containment of the decomposition components.]
Description [This function returns 1 if support of one component is contained in that of another. In this case, pLarge (pSmall) is assigned to point to the larger (smaller) support. If the supports are identical return 0, and does not assign the components.] ]
SideEffects []
SeeAlso []
Definition at line 1483 of file dsdProc.c.
|
static |
Function*************************************************************
Synopsis [Computes the sum (OR or EXOR) of the functions of the components.]
Description []
SideEffects []
SeeAlso []
|
static |
|
static |
ABC_NAMESPACE_IMPL_START void dsdKernelDecompose | ( | Dsd_Manager_t * | pDsdMan, |
DdNode ** | pbFuncs, | ||
int | nFuncs | ||
) |
FUNCTION DECLARATIONS ///.
CFile****************************************************************
FileName [dsdProc.c]
PackageName [DSD: Disjoint-support decomposition package.]
Synopsis [The core procedures of the package.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 8.0. Started - September 22, 2003.]
Revision [
]
|
static |
Function*************************************************************
Synopsis [The main function of this module. Recursive implementation of DSD.]
Description []
SideEffects []
SeeAlso []
Definition at line 246 of file dsdProc.c.
|
static |
Function*************************************************************
Synopsis [Find the common decomposition components.]
Description [This function determines the common components. It counts the number of common components in the decomposition lists of pL and pH and returns their number and the lists of common components. It assumes that pL and pH are regular pointers. It retuns also the pointers to the last different components encountered in pL and pH.]
SideEffects []
SeeAlso []
Definition at line 1340 of file dsdProc.c.
|
static |
OTHER FUNCTIONS ///.
Function*************************************************************
Synopsis [Finds the corresponding decomposition entry.]
Description [This function returns the non-complemented pointer to the DecEntry of that component which contains the given variable in its support, or NULL if no such component exists]
SideEffects []
SeeAlso []
Definition at line 1300 of file dsdProc.c.
|
static |
Function*************************************************************
Synopsis [Debugging procedure to compute the functionality of the decomposed structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 1559 of file dsdProc.c.