abc-master
|
#include "gia.h"
#include "misc/vec/vecMem.h"
#include "misc/util/utilTruth.h"
#include "misc/extra/extra.h"
#include "sat/cnf/cnf.h"
#include "opt/dau/dau.h"
Go to the source code of this file.
Data Structures | |
struct | Mf_Cut_t_ |
struct | Mf_Obj_t_ |
struct | Mf_Man_t_ |
Macros | |
#define | MF_LEAF_MAX 10 |
DECLARATIONS ///. More... | |
#define | MF_CUT_MAX 16 |
#define | MF_LOG_PAGE 12 |
#define | MF_NO_LEAF 31 |
#define | MF_TT_WORDS ((MF_LEAF_MAX > 6) ? 1 << (MF_LEAF_MAX-6) : 1) |
#define | MF_NO_FUNC 134217727 |
#define | Mf_SetForEachCut(pList, pCut, i) for ( i = 0, pCut = pList + 1; i < pList[0]; i++, pCut += Mf_CutSize(pCut) + 1 ) |
#define | Mf_ObjForEachCut(pCuts, i, nCuts) for ( i = 0, i < nCuts; i++ ) |
Typedefs | |
typedef struct Mf_Cut_t_ | Mf_Cut_t |
typedef struct Mf_Obj_t_ | Mf_Obj_t |
typedef struct Mf_Man_t_ | Mf_Man_t |
Functions | |
static Mf_Obj_t * | Mf_ManObj (Mf_Man_t *p, int i) |
static int * | Mf_ManCutSet (Mf_Man_t *p, int i) |
static int * | Mf_ObjCutSet (Mf_Man_t *p, int i) |
static int * | Mf_ObjCutBest (Mf_Man_t *p, int i) |
static int | Mf_ObjMapRefNum (Mf_Man_t *p, int i) |
static int | Mf_ObjMapRefInc (Mf_Man_t *p, int i) |
static int | Mf_ObjMapRefDec (Mf_Man_t *p, int i) |
static int | Mf_CutSize (int *pCut) |
static int | Mf_CutFunc (int *pCut) |
static int | Mf_CutSetBoth (int n, int f) |
static int | Mf_CutIsTriv (int *pCut, int i) |
int | Kit_TruthToGia (Gia_Man_t *pMan, unsigned *pTruth, int nVars, Vec_Int_t *vMemory, Vec_Int_t *vLeaves, int fHash) |
DECLARATIONS ///. More... | |
int | Mf_ManTruthCanonicize (word *t, int nVars) |
void | Mf_ManTruthQuit () |
Vec_Wrd_t * | Mf_ManTruthCollect (int Limit) |
int | Mf_ManTruthCount () |
void | Mf_ManProfileTruths (Mf_Man_t *p) |
static int | Mf_CubeLit (int Cube, int iVar) |
static int | Mf_ManCountLits (int *pCnf, int nCubes, int nVars) |
Vec_Int_t * | Mf_ManDeriveCnfs (Mf_Man_t *p, int *pnVars, int *pnClas, int *pnLits) |
Cnf_Dat_t * | Mf_ManDeriveCnf (Mf_Man_t *p, int fCnfObjIds, int fAddOrCla) |
static int | Mf_CutComputeTruth6 (Mf_Man_t *p, Mf_Cut_t *pCut0, Mf_Cut_t *pCut1, int fCompl0, int fCompl1, Mf_Cut_t *pCutR, int fIsXor) |
static int | Mf_CutComputeTruth (Mf_Man_t *p, Mf_Cut_t *pCut0, Mf_Cut_t *pCut1, int fCompl0, int fCompl1, Mf_Cut_t *pCutR, int fIsXor) |
static int | Mf_CutComputeTruthMux6 (Mf_Man_t *p, Mf_Cut_t *pCut0, Mf_Cut_t *pCut1, Mf_Cut_t *pCutC, int fCompl0, int fCompl1, int fComplC, Mf_Cut_t *pCutR) |
static int | Mf_CutComputeTruthMux (Mf_Man_t *p, Mf_Cut_t *pCut0, Mf_Cut_t *pCut1, Mf_Cut_t *pCutC, int fCompl0, int fCompl1, int fComplC, Mf_Cut_t *pCutR) |
static int | Mf_CutCountBits (word i) |
static word | Mf_CutGetSign (int *pLeaves, int nLeaves) |
static int | Mf_CutCreateUnit (Mf_Cut_t *p, int i) |
static void | Mf_CutPrint (Mf_Man_t *p, Mf_Cut_t *pCut) |
static int | Mf_ManPrepareCuts (Mf_Cut_t *pCuts, Mf_Man_t *p, int iObj, int fAddUnit) |
static int | Mf_ManSaveCuts (Mf_Man_t *p, Mf_Cut_t **pCuts, int nCuts) |
static void | Mf_ObjSetBestCut (int *pCuts, int *pCut) |
static int | Mf_CutCheck (Mf_Cut_t *pBase, Mf_Cut_t *pCut) |
static int | Mf_SetCheckArray (Mf_Cut_t **ppCuts, int nCuts) |
static int | Mf_CutMergeOrder (Mf_Cut_t *pCut0, Mf_Cut_t *pCut1, Mf_Cut_t *pCut, int nLutSize) |
static int | Mf_CutMergeOrderMux (Mf_Cut_t *pCut0, Mf_Cut_t *pCut1, Mf_Cut_t *pCut2, Mf_Cut_t *pCut, int nLutSize) |
static int | Mf_SetCutIsContainedOrder (Mf_Cut_t *pBase, Mf_Cut_t *pCut) |
static int | Mf_SetLastCutIsContained (Mf_Cut_t **pCuts, int nCuts) |
static int | Mf_SetLastCutContainsArea (Mf_Cut_t **pCuts, int nCuts) |
static int | Mf_CutCompareArea (Mf_Cut_t *pCut0, Mf_Cut_t *pCut1) |
static void | Mf_SetSortByArea (Mf_Cut_t **pCuts, int nCuts) |
static int | Mf_SetAddCut (Mf_Cut_t **pCuts, int nCuts, int nCutNum) |
static int | Mf_CutArea (Mf_Man_t *p, int nLeaves, int iFunc) |
static void | Mf_CutParams (Mf_Man_t *p, Mf_Cut_t *pCut, float FlowRefs) |
void | Mf_ObjMergeOrder (Mf_Man_t *p, int iObj) |
void | Mf_ManSetFlowRefs (Gia_Man_t *p, Vec_Int_t *vRefs) |
int | Mf_ManSetMapRefs (Mf_Man_t *p) |
Gia_Man_t * | Mf_ManDeriveMapping (Mf_Man_t *p) |
Gia_Man_t * | Mf_ManDeriveMappingCoarse (Mf_Man_t *p) |
Gia_Man_t * | Mf_ManDeriveMappingGia (Mf_Man_t *p) |
Mf_Man_t * | Mf_ManAlloc (Gia_Man_t *pGia, Jf_Par_t *pPars) |
void | Mf_ManFree (Mf_Man_t *p) |
void | Mf_ManSetDefaultPars (Jf_Par_t *pPars) |
void | Mf_ManPrintStats (Mf_Man_t *p, char *pTitle) |
void | Mf_ManPrintInit (Mf_Man_t *p) |
void | Mf_ManPrintQuit (Mf_Man_t *p, Gia_Man_t *pNew) |
void | Mf_ManComputeCuts (Mf_Man_t *p) |
int | Mf_CutRef_rec (Mf_Man_t *p, int *pCut) |
int | Mf_CutDeref_rec (Mf_Man_t *p, int *pCut) |
static int | Mf_CutAreaDerefed (Mf_Man_t *p, int *pCut) |
static float | Mf_CutFlow (Mf_Man_t *p, int *pCut, int *pTime) |
static void | Mf_ObjComputeBestCut (Mf_Man_t *p, int iObj) |
void | Mf_ManComputeMapping (Mf_Man_t *p) |
Gia_Man_t * | Mf_ManPerformMapping (Gia_Man_t *pGia, Jf_Par_t *pPars) |
Cnf_Dat_t * | Mf_ManGenerateCnf (Gia_Man_t *pGia, int nLutSize, int fCnfObjIds, int fAddOrCla, int fVerbose) |
void | Mf_ManDumpCnf (Gia_Man_t *p, char *pFileName, int nLutSize, int fCnfObjIds, int fAddOrCla, int fVerbose) |
Variables | |
static int | s_nCalls = 0 |
FUNCTION DEFINITIONS ///. More... | |
static Vec_Mem_t * | s_vTtMem = NULL |
#define MF_LEAF_MAX 10 |
DECLARATIONS ///.
CFile****************************************************************
FileName [giaMf.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis [Cut computation.]
Author [Alan Mishchenko]`
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
#define Mf_ObjForEachCut | ( | pCuts, | |
i, | |||
nCuts | |||
) | for ( i = 0, i < nCuts; i++ ) |
#define Mf_SetForEachCut | ( | pList, | |
pCut, | |||
i | |||
) | for ( i = 0, pCut = pList + 1; i < pList[0]; i++, pCut += Mf_CutSize(pCut) + 1 ) |
#define MF_TT_WORDS ((MF_LEAF_MAX > 6) ? 1 << (MF_LEAF_MAX-6) : 1) |
int Kit_TruthToGia | ( | Gia_Man_t * | pMan, |
unsigned * | pTruth, | ||
int | nVars, | ||
Vec_Int_t * | vMemory, | ||
Vec_Int_t * | vLeaves, | ||
int | fHash | ||
) |
DECLARATIONS ///.
CFile****************************************************************
FileName [giaMap.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis [Manipulation of mapping associated with the AIG.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
Definition at line 80 of file kitHop.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 510 of file giaMf.c.
|
inlinestatic |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 487 of file giaMf.c.
|
inlinestatic |
Definition at line 563 of file giaMf.c.
|
inlinestatic |
Definition at line 540 of file giaMf.c.
|
inlinestatic |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
|
inlinestatic |
|
inlinestatic |
Definition at line 1509 of file giaMf.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 950 of file giaMf.c.
Definition at line 631 of file giaMf.c.
int Mf_CutRef_rec | ( | Mf_Man_t * | p, |
int * | pCut | ||
) |
|
inlinestatic |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1321 of file giaMf.c.
void Mf_ManComputeMapping | ( | Mf_Man_t * | p | ) |
|
inlinestatic |
|
inlinestatic |
Function*************************************************************
Synopsis [Derives CNF for the AIG using the mapping.]
Description []
SideEffects []
SeeAlso []
Definition at line 325 of file giaMf.c.
Definition at line 260 of file giaMf.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1169 of file giaMf.c.
Definition at line 1191 of file giaMf.c.
Definition at line 1232 of file giaMf.c.
void Mf_ManDumpCnf | ( | Gia_Man_t * | p, |
char * | pFileName, | ||
int | nLutSize, | ||
int | fCnfObjIds, | ||
int | fAddOrCla, | ||
int | fVerbose | ||
) |
Definition at line 1646 of file giaMf.c.
Cnf_Dat_t* Mf_ManGenerateCnf | ( | Gia_Man_t * | pGia, |
int | nLutSize, | ||
int | fCnfObjIds, | ||
int | fAddOrCla, | ||
int | fVerbose | ||
) |
Function*************************************************************
Synopsis [CNF generation]
Description []
SideEffects []
SeeAlso []
Definition at line 1629 of file giaMf.c.
Definition at line 1575 of file giaMf.c.
|
inlinestatic |
Definition at line 650 of file giaMf.c.
Definition at line 1432 of file giaMf.c.
void Mf_ManPrintStats | ( | Mf_Man_t * | p, |
char * | pTitle | ||
) |
Definition at line 1404 of file giaMf.c.
void Mf_ManProfileTruths | ( | Mf_Man_t * | p | ) |
Function*************************************************************
Synopsis [Collect truth tables used by the mapper.]
Description []
SideEffects []
SeeAlso []
Definition at line 214 of file giaMf.c.
void Mf_ManSetDefaultPars | ( | Jf_Par_t * | pPars | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1077 of file giaMf.c.
int Mf_ManSetMapRefs | ( | Mf_Man_t * | p | ) |
Definition at line 1111 of file giaMf.c.
int Mf_ManTruthCanonicize | ( | word * | t, |
int | nVars | ||
) |
Definition at line 118 of file giaMf.c.
Vec_Wrd_t* Mf_ManTruthCollect | ( | int | Limit | ) |
Definition at line 148 of file giaMf.c.
int Mf_ManTruthCount | ( | ) |
Definition at line 195 of file giaMf.c.
void Mf_ManTruthQuit | ( | ) |
Definition at line 137 of file giaMf.c.
|
inlinestatic |
Definition at line 1523 of file giaMf.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void Mf_ObjMergeOrder | ( | Mf_Man_t * | p, |
int | iObj | ||
) |
Definition at line 966 of file giaMf.c.
|
inlinestatic |
|
inlinestatic |
Definition at line 932 of file giaMf.c.
|
inlinestatic |
Definition at line 733 of file giaMf.c.
|
inlinestatic |
Definition at line 894 of file giaMf.c.
|
inlinestatic |
Definition at line 886 of file giaMf.c.
|
inlinestatic |
= 1 )
Definition at line 922 of file giaMf.c.
|
static |