abc-master
|
Go to the source code of this file.
Data Structures | |
struct | Lpk_Cut_t_ |
struct | Lpk_Man_t_ |
struct | Lpk_Fun_t_ |
struct | Lpk_Res_t_ |
Macros | |
#define | LPK_SIZE_MAX 24 |
INCLUDES ///. More... | |
#define | LPK_CUTS_MAX 512 |
#define | Lpk_CutForEachLeaf(pNtk, pCut, pObj, i) for ( i = 0; (i < (int)(pCut)->nLeaves) && (((pObj) = Abc_NtkObj(pNtk, (pCut)->pLeaves[i])), 1); i++ ) |
MACRO DEFINITIONS ///. More... | |
#define | Lpk_CutForEachNode(pNtk, pCut, pObj, i) for ( i = 0; (i < (int)(pCut)->nNodes) && (((pObj) = Abc_NtkObj(pNtk, (pCut)->pNodes[i])), 1); i++ ) |
#define | Lpk_CutForEachNodeReverse(pNtk, pCut, pObj, i) for ( i = (int)(pCut)->nNodes - 1; (i >= 0) && (((pObj) = Abc_NtkObj(pNtk, (pCut)->pNodes[i])), 1); i-- ) |
#define | Lpk_SuppForEachVar(Supp, Var) |
Typedefs | |
typedef struct Lpk_Man_t_ | Lpk_Man_t |
typedef struct Lpk_Cut_t_ | Lpk_Cut_t |
typedef struct Lpk_Fun_t_ | Lpk_Fun_t |
typedef struct Lpk_Res_t_ | Lpk_Res_t |
Functions | |
static int | Lpk_LutNumVars (int nLutsLim, int nLutK) |
static int | Lpk_LutNumLuts (int nVarsMax, int nLutK) |
static unsigned * | Lpk_FunTruth (Lpk_Fun_t *p, int Num) |
Abc_Obj_t * | Lpk_Decompose (Lpk_Man_t *pMan, Abc_Ntk_t *pNtk, Vec_Ptr_t *vLeaves, unsigned *pTruth, unsigned *puSupps, int nLutK, int AreaLim, int DelayLim) |
FUNCTION DECLARATIONS ///. More... | |
Lpk_Res_t * | Lpk_DsdAnalize (Lpk_Man_t *pMan, Lpk_Fun_t *p, int nShared) |
Lpk_Fun_t * | Lpk_DsdSplit (Lpk_Man_t *pMan, Lpk_Fun_t *p, char *pCofVars, int nCofVars, unsigned uBoundSet) |
Lpk_Res_t * | Lpk_MuxAnalize (Lpk_Man_t *pMan, Lpk_Fun_t *p) |
DECLARATIONS ///. More... | |
Lpk_Fun_t * | Lpk_MuxSplit (Lpk_Man_t *pMan, Lpk_Fun_t *p, int Var, int Pol) |
Lpk_Fun_t * | Lpk_FunAlloc (int nVars) |
DECLARATIONS ///. More... | |
void | Lpk_FunFree (Lpk_Fun_t *p) |
Lpk_Fun_t * | Lpk_FunCreate (Abc_Ntk_t *pNtk, Vec_Ptr_t *vLeaves, unsigned *pTruth, int nLutK, int AreaLim, int DelayLim) |
Lpk_Fun_t * | Lpk_FunDup (Lpk_Fun_t *p, unsigned *pTruth) |
int | Lpk_FunSuppMinimize (Lpk_Fun_t *p) |
void | Lpk_FunComputeCofSupps (Lpk_Fun_t *p) |
int | Lpk_SuppDelay (unsigned uSupp, char *pDelays) |
int | Lpk_SuppToVars (unsigned uBoundSet, char *pVars) |
unsigned * | Lpk_CutTruth (Lpk_Man_t *p, Lpk_Cut_t *pCut, int fInv) |
int | Lpk_NodeCuts (Lpk_Man_t *p) |
Lpk_Man_t * | Lpk_ManStart (Lpk_Par_t *pPars) |
DECLARATIONS ///. More... | |
void | Lpk_ManStop (Lpk_Man_t *p) |
If_Obj_t * | Lpk_MapPrime (Lpk_Man_t *p, unsigned *pTruth, int nVars, If_Obj_t **ppLeaves) |
If_Obj_t * | Lpk_MapTree_rec (Lpk_Man_t *p, Kit_DsdNtk_t *pNtk, If_Obj_t **ppLeaves, int iLit, If_Obj_t *pResult) |
If_Obj_t * | Lpk_MapTreeMulti (Lpk_Man_t *p, unsigned *pTruth, int nLeaves, If_Obj_t **ppLeaves) |
If_Obj_t * | Lpk_MapTreeMux_rec (Lpk_Man_t *p, unsigned *pTruth, int nVars, If_Obj_t **ppLeaves) |
If_Obj_t * | Lpk_MapSuppRedDec_rec (Lpk_Man_t *p, unsigned *pTruth, int nVars, If_Obj_t **ppLeaves) |
unsigned | Lpk_MapSuppRedDecSelect (Lpk_Man_t *p, unsigned *pTruth, int nVars, int *piVar, int *piVarReused) |
#define Lpk_CutForEachLeaf | ( | pNtk, | |
pCut, | |||
pObj, | |||
i | |||
) | for ( i = 0; (i < (int)(pCut)->nLeaves) && (((pObj) = Abc_NtkObj(pNtk, (pCut)->pLeaves[i])), 1); i++ ) |
#define Lpk_CutForEachNode | ( | pNtk, | |
pCut, | |||
pObj, | |||
i | |||
) | for ( i = 0; (i < (int)(pCut)->nNodes) && (((pObj) = Abc_NtkObj(pNtk, (pCut)->pNodes[i])), 1); i++ ) |
#define Lpk_CutForEachNodeReverse | ( | pNtk, | |
pCut, | |||
pObj, | |||
i | |||
) | for ( i = (int)(pCut)->nNodes - 1; (i >= 0) && (((pObj) = Abc_NtkObj(pNtk, (pCut)->pNodes[i])), 1); i-- ) |
#define LPK_SIZE_MAX 24 |
INCLUDES ///.
CFile****************************************************************
FileName [lpkInt.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Fast Boolean matching for LUT structures.]
Synopsis [Internal declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
]PARAMETERS ///BASIC TYPES ///
#define Lpk_SuppForEachVar | ( | Supp, | |
Var | |||
) |
typedef struct Lpk_Cut_t_ Lpk_Cut_t |
typedef struct Lpk_Fun_t_ Lpk_Fun_t |
typedef struct Lpk_Man_t_ Lpk_Man_t |
typedef struct Lpk_Res_t_ Lpk_Res_t |
Function*************************************************************
Synopsis [Computes the truth able of one cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 175 of file lpkCut.c.
Abc_Obj_t* Lpk_Decompose | ( | Lpk_Man_t * | p, |
Abc_Ntk_t * | pNtk, | ||
Vec_Ptr_t * | vLeaves, | ||
unsigned * | pTruth, | ||
unsigned * | puSupps, | ||
int | nLutK, | ||
int | AreaLim, | ||
int | DelayLim | ||
) |
FUNCTION DECLARATIONS ///.
Function*************************************************************
Synopsis [Decomposes the function using recursive MUX decomposition.]
Description []
SideEffects []
SeeAlso []
Definition at line 258 of file lpkAbcDec.c.
Function*************************************************************
Synopsis [Performs DSD-based decomposition of the function.]
Description []
SideEffects []
SeeAlso []
Definition at line 452 of file lpkAbcDsd.c.
Lpk_Fun_t* Lpk_DsdSplit | ( | Lpk_Man_t * | pMan, |
Lpk_Fun_t * | p, | ||
char * | pCofVars, | ||
int | nCofVars, | ||
unsigned | uBoundSet | ||
) |
Function*************************************************************
Synopsis [Splits the function into two subfunctions using DSD.]
Description []
SideEffects []
SeeAlso []
Definition at line 564 of file lpkAbcDsd.c.
Lpk_Fun_t* Lpk_FunAlloc | ( | int | nVars | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [lpkAbcUtil.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Fast Boolean matching for LUT structures.]
Synopsis [Procedures working on decomposed functions.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Allocates the function.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file lpkAbcUtil.c.
void Lpk_FunComputeCofSupps | ( | Lpk_Fun_t * | p | ) |
Function*************************************************************
Synopsis [Computes cofactors w.r.t. each variable.]
Description []
SideEffects []
SeeAlso []
Definition at line 186 of file lpkAbcUtil.c.
Lpk_Fun_t* Lpk_FunCreate | ( | Abc_Ntk_t * | pNtk, |
Vec_Ptr_t * | vLeaves, | ||
unsigned * | pTruth, | ||
int | nLutK, | ||
int | AreaLim, | ||
int | DelayLim | ||
) |
Function*************************************************************
Synopsis [Creates the starting function.]
Description []
SideEffects []
SeeAlso []
Definition at line 80 of file lpkAbcUtil.c.
Function*************************************************************
Synopsis [Creates the new function with the given truth table.]
Description []
SideEffects []
SeeAlso []
Definition at line 114 of file lpkAbcUtil.c.
void Lpk_FunFree | ( | Lpk_Fun_t * | p | ) |
Function*************************************************************
Synopsis [Deletes the function]
Description []
SideEffects []
SeeAlso []
Definition at line 64 of file lpkAbcUtil.c.
int Lpk_FunSuppMinimize | ( | Lpk_Fun_t * | p | ) |
Function*************************************************************
Synopsis [Minimizes support of the function.]
Description []
SideEffects []
SeeAlso []
Definition at line 143 of file lpkAbcUtil.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
DECLARATIONS ///.
CFile****************************************************************
FileName [lpkMan.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Fast Boolean matching for LUT structures.]
Synopsis []
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file lpkMan.c.
void Lpk_ManStop | ( | Lpk_Man_t * | p | ) |
Function*************************************************************
Synopsis [Strashes one logic node using its SOP.]
Description []
SideEffects []
SeeAlso []
Definition at line 79 of file lpkMap.c.
If_Obj_t* Lpk_MapSuppRedDec_rec | ( | Lpk_Man_t * | p, |
unsigned * | pTruth, | ||
int | nVars, | ||
If_Obj_t ** | ppLeaves | ||
) |
Function*************************************************************
Synopsis [Implements support-reducing decomposition.]
Description []
SideEffects []
SeeAlso []
Definition at line 133 of file lpkMux.c.
unsigned Lpk_MapSuppRedDecSelect | ( | Lpk_Man_t * | p, |
unsigned * | pTruth, | ||
int | nVars, | ||
int * | piVar, | ||
int * | piVarReused | ||
) |
Function*************************************************************
Synopsis [Evaluates the cofactors.]
Description []
SideEffects []
SeeAlso []
Definition at line 323 of file lpkSets.c.
If_Obj_t* Lpk_MapTree_rec | ( | Lpk_Man_t * | p, |
Kit_DsdNtk_t * | pNtk, | ||
If_Obj_t ** | ppLeaves, | ||
int | iLit, | ||
If_Obj_t * | pResult | ||
) |
Function*************************************************************
Synopsis [Prepares the mapping manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 110 of file lpkMap.c.
Function*************************************************************
Synopsis [Prepares the mapping manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 347 of file lpkMulti.c.
Function*************************************************************
Synopsis [Maps the function by the best cofactoring.]
Description []
SideEffects []
SeeAlso []
Definition at line 89 of file lpkMux.c.
DECLARATIONS ///.
CFile****************************************************************
FileName [lpkAbcMux.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Fast Boolean matching for LUT structures.]
Synopsis [LUT-decomposition based on recursive MUX decomposition.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Checks the possibility of MUX decomposition.]
Description [Returns the best variable to use for MUX decomposition.]
SideEffects []
SeeAlso []
Definition at line 45 of file lpkAbcMux.c.
Function*************************************************************
Synopsis [Transforms the function decomposed by the MUX decomposition.]
Description [Returns the best variable to use for MUX decomposition.]
SideEffects []
SeeAlso []
Definition at line 164 of file lpkAbcMux.c.
int Lpk_NodeCuts | ( | Lpk_Man_t * | p | ) |
Function*************************************************************
Synopsis [Computes the set of all cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 588 of file lpkCut.c.
int Lpk_SuppDelay | ( | unsigned | uSupp, |
char * | pDelays | ||
) |
Function*************************************************************
Synopsis [Get the delay of the bound set.]
Description []
SideEffects []
SeeAlso []
Definition at line 215 of file lpkAbcUtil.c.
int Lpk_SuppToVars | ( | unsigned | uBoundSet, |
char * | pVars | ||
) |
Function*************************************************************
Synopsis [Converts support into variables.]
Description []
SideEffects []
SeeAlso []
Definition at line 235 of file lpkAbcUtil.c.