abc-master
|
Go to the source code of this file.
Data Structures | |
struct | Dss_Fun_t_ |
struct | Dss_Ent_t_ |
struct | Dss_Obj_t_ |
struct | Dss_Ntk_t_ |
struct | Dss_Man_t_ |
Macros | |
#define | Dss_VecForEachObj(vVec, pObj, i) Vec_PtrForEachEntry( Dss_Obj_t *, vVec, pObj, i ) |
#define | Dss_VecForEachObjVec(vLits, vVec, pObj, i) for ( i = 0; (i < Vec_IntSize(vLits)) && ((pObj) = Dss_Lit2Obj(vVec, Vec_IntEntry(vLits,i))); i++ ) |
#define | Dss_VecForEachNode(vVec, pObj, i) |
#define | Dss_ObjForEachFanin(vVec, pObj, pFanin, i) for ( i = 0; (i < Dss_ObjFaninNum(pObj)) && ((pFanin) = Dss_ObjFanin(vVec, pObj, i)); i++ ) |
#define | Dss_ObjForEachChild(vVec, pObj, pFanin, i) for ( i = 0; (i < Dss_ObjFaninNum(pObj)) && ((pFanin) = Dss_ObjChild(vVec, pObj, i)); i++ ) |
Typedefs | |
typedef typedefABC_NAMESPACE_IMPL_START struct Dss_Fun_t_ | Dss_Fun_t |
DECLARATIONS ///. More... | |
typedef struct Dss_Ent_t_ | Dss_Ent_t |
typedef struct Dss_Obj_t_ | Dss_Obj_t |
typedef struct Dss_Ntk_t_ | Dss_Ntk_t |
Functions | |
static Dss_Obj_t * | Dss_Regular (Dss_Obj_t *p) |
static Dss_Obj_t * | Dss_Not (Dss_Obj_t *p) |
static Dss_Obj_t * | Dss_NotCond (Dss_Obj_t *p, int c) |
static int | Dss_IsComplement (Dss_Obj_t *p) |
static int | Dss_EntWordNum (Dss_Ent_t *p) |
static int | Dss_FunWordNum (Dss_Fun_t *p) |
static int | Dss_ObjWordNum (int nFans) |
static word * | Dss_ObjTruth (Dss_Obj_t *pObj) |
static void | Dss_ObjClean (Dss_Obj_t *pObj) |
static int | Dss_ObjId (Dss_Obj_t *pObj) |
static int | Dss_ObjType (Dss_Obj_t *pObj) |
static int | Dss_ObjSuppSize (Dss_Obj_t *pObj) |
static int | Dss_ObjFaninNum (Dss_Obj_t *pObj) |
static int | Dss_ObjFaninC (Dss_Obj_t *pObj, int i) |
static Dss_Obj_t * | Dss_VecObj (Vec_Ptr_t *p, int Id) |
static Dss_Obj_t * | Dss_VecConst0 (Vec_Ptr_t *p) |
static Dss_Obj_t * | Dss_VecVar (Vec_Ptr_t *p, int v) |
static int | Dss_VecLitSuppSize (Vec_Ptr_t *p, int iLit) |
static int | Dss_Obj2Lit (Dss_Obj_t *pObj) |
static Dss_Obj_t * | Dss_Lit2Obj (Vec_Ptr_t *p, int iLit) |
static Dss_Obj_t * | Dss_ObjFanin (Vec_Ptr_t *p, Dss_Obj_t *pObj, int i) |
static Dss_Obj_t * | Dss_ObjChild (Vec_Ptr_t *p, Dss_Obj_t *pObj, int i) |
static int | Dss_WordCountOnes (unsigned uWord) |
static int | Dss_Lit2Lit (int *pMapLit, int Lit) |
static word ** | Dss_ManTtElems () |
FUNCTION DEFINITIONS ///. More... | |
Dss_Obj_t * | Dss_ObjAllocNtk (Dss_Ntk_t *p, int Type, int nFans, int nTruthVars) |
Dss_Obj_t * | Dss_ObjCreateNtk (Dss_Ntk_t *p, int Type, Vec_Int_t *vFaninLits) |
Dss_Ntk_t * | Dss_NtkAlloc (int nVars) |
void | Dss_NtkFree (Dss_Ntk_t *p) |
void | Dss_NtkPrint_rec (Dss_Ntk_t *p, Dss_Obj_t *pObj) |
void | Dss_NtkPrint (Dss_Ntk_t *p) |
static void | Dau_DsdMergeMatches (char *pDsd, int *pMatches) |
int | Dss_NtkCreate_rec (char *pStr, char **p, int *pMatches, Dss_Ntk_t *pNtk, word *pTruth) |
Dss_Ntk_t * | Dss_NtkCreate (char *pDsd, int nVars, word *pTruth) |
int | Dss_ObjCompare (Vec_Ptr_t *p, Dss_Obj_t *p0i, Dss_Obj_t *p1i) |
void | Dss_ObjSort (Vec_Ptr_t *p, Dss_Obj_t **pNodes, int nNodes, int *pPerm) |
void | Dss_NtkCheck (Dss_Ntk_t *p) |
int | Dss_NtkCollectPerm_rec (Dss_Ntk_t *p, Dss_Obj_t *pObj, int *pPermDsd, int *pnPerms) |
void | Dss_NtkTransform (Dss_Ntk_t *p, int *pPermDsd) |
Dss_Obj_t * | Dss_ObjAlloc (Dss_Man_t *p, int Type, int nFans, int nTruthVars) |
Dss_Obj_t * | Dss_ObjCreate (Dss_Man_t *p, int Type, Vec_Int_t *vFaninLits, word *pTruth) |
void | Dss_ManHashProfile (Dss_Man_t *p) |
static unsigned | Dss_ObjHashKey (Dss_Man_t *p, int Type, Vec_Int_t *vFaninLits, word *pTruth) |
unsigned * | Dss_ObjHashLookup (Dss_Man_t *p, int Type, Vec_Int_t *vFaninLits, word *pTruth) |
Dss_Obj_t * | Dss_ObjFindOrAdd (Dss_Man_t *p, int Type, Vec_Int_t *vFaninLits, word *pTruth) |
void | Dss_ManCacheAlloc (Dss_Man_t *p) |
void | Dss_ManCacheFree (Dss_Man_t *p) |
static unsigned | Dss_ManCacheHashKey (Dss_Man_t *p, Dss_Ent_t *pEnt) |
void | Dss_ManCacheProfile (Dss_Man_t *p) |
Dss_Ent_t ** | Dss_ManCacheLookup (Dss_Man_t *p, Dss_Ent_t *pEnt) |
Dss_Ent_t * | Dss_ManCacheCreate (Dss_Man_t *p, Dss_Ent_t *pEnt0, Dss_Fun_t *pFun0) |
Dss_Man_t * | Dss_ManAlloc (int nVars, int nNonDecLimit) |
void | Dss_ManFree (Dss_Man_t *p) |
void | Dss_ManPrint_rec (FILE *pFile, Dss_Man_t *p, Dss_Obj_t *pObj, int *pPermLits, int *pnSupp) |
void | Dss_ManPrintOne (FILE *pFile, Dss_Man_t *p, int iDsdLit, int *pPermLits) |
int | Dss_ManCheckNonDec_rec (Dss_Man_t *p, Dss_Obj_t *pObj) |
void | Dss_ManDump (Dss_Man_t *p) |
void | Dss_ManPrint (char *pFileName, Dss_Man_t *p) |
void | Dss_ManComputeTruth_rec (Dss_Man_t *p, Dss_Obj_t *pObj, int nVars, word *pRes, int *pPermLits, int *pnSupp) |
word * | Dss_ManComputeTruth (Dss_Man_t *p, int iDsd, int nVars, int *pPermLits) |
int | Dss_NtkRebuild_rec (Dss_Man_t *p, Dss_Ntk_t *pNtk, Dss_Obj_t *pObj) |
int | Dss_NtkRebuild (Dss_Man_t *p, Dss_Ntk_t *pNtk) |
int | Dss_ManOperation (Dss_Man_t *p, int Type, int *pLits, int nLits, unsigned char *pPerm, word *pTruth) |
Dss_Fun_t * | Dss_ManOperationFun (Dss_Man_t *p, int *iDsd, int nFansTot) |
void | Dss_EntPrint (Dss_Ent_t *p, Dss_Fun_t *pFun) |
Dss_Fun_t * | Dss_ManBooleanAnd (Dss_Man_t *p, Dss_Ent_t *pEnt, int Counter) |
Dss_Ent_t * | Dss_ManSharedMap (Dss_Man_t *p, int *iDsd, int *nFans, int **pFans, unsigned uSharedMask) |
int | Dss_ManMerge (Dss_Man_t *p, int *iDsd, int *nFans, int **pFans, unsigned uSharedMask, int nKLutSize, unsigned char *pPermRes, word *pTruth) |
Dss_Ent_t * | Dss_ManSharedMapDerive (Dss_Man_t *p, int iDsd0, int iDsd1, Vec_Str_t *vShared) |
int | Mpm_FuncCompute (Dss_Man_t *p, int iDsd0, int iDsd1, Vec_Str_t *vShared, int *pPerm, int *pnLeaves) |
int | Dss_ObjCheckTransparent (Dss_Man_t *p, Dss_Obj_t *pObj) |
void | Dau_DsdTest__ () |
void | Dau_DsdTest () |
void | Dau_DsdTest444 () |
#define Dss_ObjForEachChild | ( | vVec, | |
pObj, | |||
pFanin, | |||
i | |||
) | for ( i = 0; (i < Dss_ObjFaninNum(pObj)) && ((pFanin) = Dss_ObjChild(vVec, pObj, i)); i++ ) |
#define Dss_ObjForEachFanin | ( | vVec, | |
pObj, | |||
pFanin, | |||
i | |||
) | for ( i = 0; (i < Dss_ObjFaninNum(pObj)) && ((pFanin) = Dss_ObjFanin(vVec, pObj, i)); i++ ) |
#define Dss_VecForEachNode | ( | vVec, | |
pObj, | |||
i | |||
) |
#define Dss_VecForEachObj | ( | vVec, | |
pObj, | |||
i | |||
) | Vec_PtrForEachEntry( Dss_Obj_t *, vVec, pObj, i ) |
#define Dss_VecForEachObjVec | ( | vLits, | |
vVec, | |||
pObj, | |||
i | |||
) | for ( i = 0; (i < Vec_IntSize(vLits)) && ((pObj) = Dss_Lit2Obj(vVec, Vec_IntEntry(vLits,i))); i++ ) |
typedef struct Dss_Ent_t_ Dss_Ent_t |
typedef typedefABC_NAMESPACE_IMPL_START struct Dss_Fun_t_ Dss_Fun_t |
DECLARATIONS ///.
CFile****************************************************************
FileName [dauTree.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [DAG-aware unmapping.]
Synopsis [Canonical DSD package.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
typedef struct Dss_Ntk_t_ Dss_Ntk_t |
typedef struct Dss_Obj_t_ Dss_Obj_t |
|
inlinestatic |
void Dau_DsdTest | ( | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1841 of file dauTree.c.
void Dau_DsdTest444 | ( | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1978 of file dauTree.c.
void Dau_DsdTest__ | ( | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1816 of file dauTree.c.
|
inlinestatic |
|
inlinestatic |
Definition at line 148 of file dauTree.c.
Dss_Man_t* Dss_ManAlloc | ( | int | nVars, |
int | nNonDecLimit | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 967 of file dauTree.c.
Function*************************************************************
Synopsis [Performs AND on two DSD functions with support overlap.]
Description [Returns the perm of the resulting literals. The perm size is equal to the number of support variables. The perm variables are 0-based numbers of pLits[0] followed by nLits[0]-based numbers of pLits[1].]
SideEffects []
SeeAlso []
Definition at line 1433 of file dauTree.c.
void Dss_ManCacheAlloc | ( | Dss_Man_t * | p | ) |
Function*************************************************************
Synopsis [Cache for decomposition calls.]
Description []
SideEffects []
SeeAlso []
Definition at line 890 of file dauTree.c.
Definition at line 944 of file dauTree.c.
Definition at line 927 of file dauTree.c.
void Dss_ManCacheProfile | ( | Dss_Man_t * | p | ) |
Definition at line 913 of file dauTree.c.
Definition at line 1040 of file dauTree.c.
Definition at line 1192 of file dauTree.c.
void Dss_ManComputeTruth_rec | ( | Dss_Man_t * | p, |
Dss_Obj_t * | pObj, | ||
int | nVars, | ||
word * | pRes, | ||
int * | pPermLits, | ||
int * | pnSupp | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1139 of file dauTree.c.
void Dss_ManDump | ( | Dss_Man_t * | p | ) |
Definition at line 1056 of file dauTree.c.
void Dss_ManFree | ( | Dss_Man_t * | p | ) |
Definition at line 987 of file dauTree.c.
void Dss_ManHashProfile | ( | Dss_Man_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 821 of file dauTree.c.
int Dss_ManMerge | ( | Dss_Man_t * | p, |
int * | iDsd, | ||
int * | nFans, | ||
int ** | pFans, | ||
unsigned | uSharedMask, | ||
int | nKLutSize, | ||
unsigned char * | pPermRes, | ||
word * | pTruth | ||
) |
Definition at line 1539 of file dauTree.c.
int Dss_ManOperation | ( | Dss_Man_t * | p, |
int | Type, | ||
int * | pLits, | ||
int | nLits, | ||
unsigned char * | pPerm, | ||
word * | pTruth | ||
) |
Function*************************************************************
Synopsis [Performs DSD operation on the two literals.]
Description [Returns the perm of the resulting literals. The perm size is equal to the number of support variables. The perm variables are 0-based numbers of pLits[0] followed by nLits[0]-based numbers of pLits[1].]
SideEffects []
SeeAlso []
Definition at line 1287 of file dauTree.c.
Definition at line 1389 of file dauTree.c.
void Dss_ManPrint | ( | char * | pFileName, |
Dss_Man_t * | p | ||
) |
Definition at line 1086 of file dauTree.c.
void Dss_ManPrint_rec | ( | FILE * | pFile, |
Dss_Man_t * | p, | ||
Dss_Obj_t * | pObj, | ||
int * | pPermLits, | ||
int * | pnSupp | ||
) |
Definition at line 1005 of file dauTree.c.
void Dss_ManPrintOne | ( | FILE * | pFile, |
Dss_Man_t * | p, | ||
int | iDsdLit, | ||
int * | pPermLits | ||
) |
Definition at line 1030 of file dauTree.c.
Dss_Ent_t* Dss_ManSharedMap | ( | Dss_Man_t * | p, |
int * | iDsd, | ||
int * | nFans, | ||
int ** | pFans, | ||
unsigned | uSharedMask | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1510 of file dauTree.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1681 of file dauTree.c.
|
inlinestatic |
Definition at line 101 of file dauTree.c.
Definition at line 102 of file dauTree.c.
Dss_Ntk_t* Dss_NtkAlloc | ( | int | nVars | ) |
Definition at line 453 of file dauTree.c.
void Dss_NtkCheck | ( | Dss_Ntk_t * | p | ) |
Definition at line 709 of file dauTree.c.
Definition at line 601 of file dauTree.c.
Definition at line 538 of file dauTree.c.
void Dss_NtkPrint | ( | Dss_Ntk_t * | p | ) |
Definition at line 478 of file dauTree.c.
Definition at line 1264 of file dauTree.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1227 of file dauTree.c.
void Dss_NtkTransform | ( | Dss_Ntk_t * | p, |
int * | pPermDsd | ||
) |
Definition at line 725 of file dauTree.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 760 of file dauTree.c.
Function*************************************************************
Synopsis [Creating DSD network.]
Description []
SideEffects []
SeeAlso []
Definition at line 425 of file dauTree.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1776 of file dauTree.c.
|
inlinestatic |
Definition at line 110 of file dauTree.c.
Function*************************************************************
Synopsis [Comparing two DSD nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 634 of file dauTree.c.
Definition at line 774 of file dauTree.c.
Definition at line 440 of file dauTree.c.
|
inlinestatic |
|
inlinestatic |
Definition at line 868 of file dauTree.c.
|
inlinestatic |
Definition at line 836 of file dauTree.c.
Definition at line 853 of file dauTree.c.
Definition at line 664 of file dauTree.c.
|
inlinestatic |
Definition at line 100 of file dauTree.c.
|
inlinestatic |
Definition at line 117 of file dauTree.c.
|
inlinestatic |
int Mpm_FuncCompute | ( | Dss_Man_t * | p, |
int | iDsd0, | ||
int | iDsd1, | ||
Vec_Str_t * | vShared, | ||
int * | pPerm, | ||
int * | pnLeaves | ||
) |
Definition at line 1693 of file dauTree.c.