|
abc-master
|
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <time.h>#include "misc/vec/vec.h"Go to the source code of this file.
Macros | |
| #define | DAU_MAX_VAR 12 |
| INCLUDES ///. More... | |
| #define | DAU_MAX_STR 2000 |
| #define | DAU_MAX_WORD (1<<(DAU_MAX_VAR-6)) |
Typedefs | |
| typedef struct Dss_Man_t_ | Dss_Man_t |
Enumerations | |
| enum | Dau_DsdType_t { DAU_DSD_NONE = 0, DAU_DSD_CONST0, DAU_DSD_VAR, DAU_DSD_AND, DAU_DSD_XOR, DAU_DSD_MUX, DAU_DSD_PRIME } |
| BASIC TYPES ///. More... | |
Functions | |
| static int | Dau_DsdIsConst (char *p) |
| MACRO DEFINITIONS ///. More... | |
| static int | Dau_DsdIsConst0 (char *p) |
| static int | Dau_DsdIsConst1 (char *p) |
| static int | Dau_DsdIsVar (char *p) |
| static int | Dau_DsdReadVar (char *p) |
| unsigned | Abc_TtCanonicize (word *pTruth, int nVars, char *pCanonPerm) |
| FUNCTION DECLARATIONS ///. More... | |
| unsigned | Abc_TtCanonicizePhase (word *pTruth, int nVars) |
| int * | Dau_DsdComputeMatches (char *p) |
| int | Dau_DsdDecompose (word *pTruth, int nVarsInit, int fSplitPrime, int fWriteTruth, char *pRes) |
| int | Dau_DsdDecomposeLevel (word *pTruth, int nVarsInit, int fSplitPrime, int fWriteTruth, char *pRes, int *pVarLevels) |
| void | Dau_DsdPrintFromTruthFile (FILE *pFile, word *pTruth, int nVarsInit) |
| void | Dau_DsdPrintFromTruth (word *pTruth, int nVarsInit) |
| word * | Dau_DsdToTruth (char *p, int nVars) |
| word | Dau_Dsd6ToTruth (char *p) |
| void | Dau_DsdNormalize (char *p) |
| int | Dau_DsdCountAnds (char *pDsd) |
| void | Dau_DsdTruthCompose_rec (word *pFunc, word pFanins[DAU_MAX_VAR][DAU_MAX_WORD], word *pRes, int nVars, int nWordsR) |
| int | Dau_DsdCheck1Step (void *p, word *pTruth, int nVarsInit, int *pVarLevels) |
| int | Dsm_ManTruthToGia (void *p, word *pTruth, Vec_Int_t *vLeaves, Vec_Int_t *vCover) |
| void * | Dsm_ManDeriveGia (void *p, int fUseMuxes) |
| void | Dau_DsdRemoveBraces (char *pDsd, int *pMatches) |
| char * | Dau_DsdMerge (char *pDsd0i, int *pPerm0, char *pDsd1i, int *pPerm1, int fCompl0, int fCompl1, int nVars) |
| DECLARATIONS ///. More... | |
| Vec_Int_t * | Dau_DecFindSets_int (word *pInit, int nVars, int *pSched[16]) |
| Vec_Int_t * | Dau_DecFindSets (word *pInit, int nVars) |
| void | Dau_DecSortSet (unsigned set, int nVars, int *pnUnique, int *pnShared, int *pnFree) |
| void | Dau_DecPrintSets (Vec_Int_t *vSets, int nVars) |
| void | Dau_DecPrintSet (unsigned set, int nVars, int fNewLine) |
| Dss_Man_t * | Dss_ManAlloc (int nVars, int nNonDecLimit) |
| void | Dss_ManFree (Dss_Man_t *p) |
| int | Dss_ManMerge (Dss_Man_t *p, int *iDsd, int *nFans, int **pFans, unsigned uSharedMask, int nKLutSize, unsigned char *pPerm, word *pTruth) |
| void | Dss_ManPrint (char *pFileName, Dss_Man_t *p) |
| #define DAU_MAX_VAR 12 |
INCLUDES ///.
CFile****************************************************************
FileName [dau.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [DAG-aware unmapping.]
Synopsis [External declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]PARAMETERS ///
| #define DAU_MAX_WORD (1<<(DAU_MAX_VAR-6)) |
| typedef struct Dss_Man_t_ Dss_Man_t |
| enum Dau_DsdType_t |
BASIC TYPES ///.
| Enumerator | |
|---|---|
| DAU_DSD_NONE | |
| DAU_DSD_CONST0 | |
| DAU_DSD_VAR | |
| DAU_DSD_AND | |
| DAU_DSD_XOR | |
| DAU_DSD_MUX | |
| DAU_DSD_PRIME | |
| unsigned Abc_TtCanonicize | ( | word * | pTruth, |
| int | nVars, | ||
| char * | pCanonPerm | ||
| ) |
FUNCTION DECLARATIONS ///.
Function*************************************************************
Synopsis [Semi-canonical form computation.]
Description []
SideEffects []
SeeAlso []
Definition at line 895 of file dauCanon.c.
| unsigned Abc_TtCanonicizePhase | ( | word * | pTruth, |
| int | nVars | ||
| ) |
Definition at line 999 of file dauCanon.c.
Definition at line 516 of file dauNonDsd.c.
Definition at line 462 of file dauNonDsd.c.
| void Dau_DecPrintSet | ( | unsigned | set, |
| int | nVars, | ||
| int | fNewLine | ||
| ) |
Definition at line 390 of file dauNonDsd.c.
| void Dau_DecPrintSets | ( | Vec_Int_t * | vSets, |
| int | nVars | ||
| ) |
Definition at line 434 of file dauNonDsd.c.
| void Dau_DecSortSet | ( | unsigned | set, |
| int | nVars, | ||
| int * | pnUnique, | ||
| int * | pnShared, | ||
| int * | pnFree | ||
| ) |
Definition at line 371 of file dauNonDsd.c.
| word Dau_Dsd6ToTruth | ( | char * | p | ) |
Definition at line 445 of file dauDsd.c.
| int Dau_DsdCheck1Step | ( | void * | p, |
| word * | pTruth, | ||
| int | nVarsInit, | ||
| int * | pVarLevels | ||
| ) |
Function*************************************************************
Synopsis [Find the best cofactoring variable.]
Description [Return -2 if non-DSD; -1 if full DSD; otherwise, returns cofactoring variables i (i >= 0).]
SideEffects []
SeeAlso []
Definition at line 893 of file dauDsd.c.
| int* Dau_DsdComputeMatches | ( | char * | p | ) |
| int Dau_DsdCountAnds | ( | char * | pDsd | ) |
Definition at line 316 of file dauDsd.c.
| int Dau_DsdDecompose | ( | word * | pTruth, |
| int | nVarsInit, | ||
| int | fSplitPrime, | ||
| int | fWriteTruth, | ||
| char * | pRes | ||
| ) |
Definition at line 1912 of file dauDsd.c.
| int Dau_DsdDecomposeLevel | ( | word * | pTruth, |
| int | nVarsInit, | ||
| int | fSplitPrime, | ||
| int | fWriteTruth, | ||
| char * | pRes, | ||
| int * | pVarLevels | ||
| ) |
Definition at line 1936 of file dauDsd.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| char* Dau_DsdMerge | ( | char * | pDsd0i, |
| int * | pPerm0, | ||
| char * | pDsd1i, | ||
| int * | pPerm1, | ||
| int | fCompl0, | ||
| int | fCompl1, | ||
| int | nVars | ||
| ) |
DECLARATIONS ///.
Function*************************************************************
Synopsis [Performs merging of two DSD formulas.]
Description []
SideEffects []
SeeAlso []
Definition at line 587 of file dauMerge.c.
| void Dau_DsdNormalize | ( | char * | p | ) |
Definition at line 260 of file dauDsd.c.
| void Dau_DsdPrintFromTruth | ( | word * | pTruth, |
| int | nVarsInit | ||
| ) |
Definition at line 1968 of file dauDsd.c.
| void Dau_DsdPrintFromTruthFile | ( | FILE * | pFile, |
| word * | pTruth, | ||
| int | nVarsInit | ||
| ) |
Definition at line 1960 of file dauDsd.c.
|
inlinestatic |
| void Dau_DsdRemoveBraces | ( | char * | pDsd, |
| int * | pMatches | ||
| ) |
Definition at line 554 of file dauMerge.c.
| word* Dau_DsdToTruth | ( | char * | p, |
| int | nVars | ||
| ) |
Definition at line 609 of file dauDsd.c.
| void Dau_DsdTruthCompose_rec | ( | word * | pFunc, |
| word | pFanins[DAU_MAX_VAR][DAU_MAX_WORD], | ||
| word * | pRes, | ||
| int | nVars, | ||
| int | nWordsR | ||
| ) |
Definition at line 501 of file dauDsd.c.
| void* Dsm_ManDeriveGia | ( | void * | pGia, |
| int | fUseMuxes | ||
| ) |
Function*************************************************************
Synopsis [Performs structural hashing on the LUT functions.]
Description []
SideEffects []
SeeAlso []
Definition at line 471 of file dauGia.c.
Function*************************************************************
Synopsis [Convert TT to GIA via DSD.]
Description []
SideEffects []
SeeAlso []
Definition at line 415 of file dauGia.c.
| Dss_Man_t* Dss_ManAlloc | ( | int | nVars, |
| int | nNonDecLimit | ||
| ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 967 of file dauTree.c.
| void Dss_ManFree | ( | Dss_Man_t * | p | ) |
Definition at line 987 of file dauTree.c.
| int Dss_ManMerge | ( | Dss_Man_t * | p, |
| int * | iDsd, | ||
| int * | nFans, | ||
| int ** | pFans, | ||
| unsigned | uSharedMask, | ||
| int | nKLutSize, | ||
| unsigned char * | pPerm, | ||
| word * | pTruth | ||
| ) |
Definition at line 1539 of file dauTree.c.
| void Dss_ManPrint | ( | char * | pFileName, |
| Dss_Man_t * | p | ||
| ) |
Definition at line 1086 of file dauTree.c.