abc-master
|
#include "gia.h"
#include "misc/vec/vecHash.h"
#include "misc/vec/vecQue.h"
#include "opt/dau/dau.h"
Go to the source code of this file.
Data Structures | |
struct | Bal_Cut_t_ |
struct | Bal_Man_t_ |
Macros | |
#define | BAL_LEAF_MAX 6 |
DECLARATIONS ///. More... | |
#define | BAL_CUT_MAX 8 |
#define | BAL_SUPER 50 |
#define | BAL_NO_LEAF 31 |
#define | BAL_NO_FUNC 134217727 |
Typedefs | |
typedef struct Bal_Cut_t_ | Bal_Cut_t |
typedef struct Bal_Man_t_ | Bal_Man_t |
Functions | |
static Bal_Man_t * | Bal_GiaMan (Gia_Man_t *p) |
static int | Bal_ObjCost (Bal_Man_t *p, int i) |
static int | Bal_LitCost (Bal_Man_t *p, int i) |
static int | Bal_ObjDelay (Bal_Man_t *p, int i) |
static int | Bal_LitDelay (Bal_Man_t *p, int i) |
Bal_Man_t * | Bal_ManAlloc (Gia_Man_t *pGia, Gia_Man_t *pNew, int nLutSize, int nCutNum, int fVerbose) |
FUNCTION DEFINITIONS ///. More... | |
void | Bal_ManFree (Bal_Man_t *p) |
static int | Bal_CutCountBits (word i) |
static word | Bal_CutGetSign (int *pLeaves, int nLeaves) |
static int | Bal_CutCreateUnit (Bal_Cut_t *p, int i, int Delay) |
static int | Bal_ManPrepareSet (Bal_Man_t *p, int iObj, int Index, int fUnit, Bal_Cut_t **ppCutSet) |
static int | Bal_CutCheck (Bal_Cut_t *pBase, Bal_Cut_t *pCut) |
static int | Bal_SetCheckArray (Bal_Cut_t **ppCuts, int nCuts) |
static int | Bal_CutMergeOrder (Bal_Cut_t *pCut0, Bal_Cut_t *pCut1, Bal_Cut_t *pCut, int nLutSize) |
static int | Bal_CutMergeOrderMux (Bal_Cut_t *pCut0, Bal_Cut_t *pCut1, Bal_Cut_t *pCut2, Bal_Cut_t *pCut, int nLutSize) |
static int | Bal_SetCutIsContainedOrder (Bal_Cut_t *pBase, Bal_Cut_t *pCut) |
static int | Bal_SetLastCutIsContained (Bal_Cut_t **pCuts, int nCuts) |
static int | Bal_SetLastCutContains (Bal_Cut_t **pCuts, int nCuts) |
static int | Bal_CutCompareArea (Bal_Cut_t *pCut0, Bal_Cut_t *pCut1) |
static void | Bal_SetSortByDelay (Bal_Cut_t **pCuts, int nCuts) |
static int | Bal_SetAddCut (Bal_Cut_t **pCuts, int nCuts, int nCutNum) |
int | Bal_ManDeriveCuts (Bal_Man_t *p, int iFan0, int iFan1, int iFan2, int fCompl0, int fCompl1, int fCompl2, int fUnit0, int fUnit1, int fUnit2, int fIsXor, int Target, int fSave) |
int | Bal_ManSetGateLevel (Bal_Man_t *p, Gia_Obj_t *pObjOld, int iLitNew) |
int | Bal_ManEvalTwo (Bal_Man_t *p, int iLitNew0, int iLitNew1, int iLitNew2, int fIsXor) |
static void | Vec_IntSelectSortCostLit (Vec_Int_t *vSuper, Vec_Int_t *vCosts) |
static void | Vec_IntPushOrderCost (Vec_Int_t *vSuper, Vec_Int_t *vCosts, int iLit) |
static int | Vec_IntFindFirstSameDelayAsLast (Bal_Man_t *p, Vec_Int_t *vSuper) |
static int | Bal_ManFindBestPair (Bal_Man_t *p, Vec_Int_t *vSuper, Gia_Obj_t *pObj) |
static void | Gia_ManSimplifyXor (Vec_Int_t *vSuper) |
static void | Gia_ManSimplifyAnd (Vec_Int_t *vSuper) |
static void | Gia_ManSuperCollectXor_rec (Gia_Man_t *p, Gia_Obj_t *pObj) |
static void | Gia_ManSuperCollectAnd_rec (Gia_Man_t *p, Gia_Obj_t *pObj) |
static void | Gia_ManSuperCollect (Gia_Man_t *p, Gia_Obj_t *pObj) |
static void | Gia_ManCreateGate (Gia_Man_t *pNew, Gia_Obj_t *pObj, Vec_Int_t *vSuper) |
static int | Gia_ManBalanceGate (Gia_Man_t *pNew, Gia_Obj_t *pObj, Vec_Int_t *vSuper, int *pLits, int nLits) |
static void | Gia_ManBalance_rec (Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj) |
static Gia_Man_t * | Gia_ManBalanceInt (Gia_Man_t *p, int nLutSize, int nCutNum, int fVerbose) |
Gia_Man_t * | Gia_ManBalanceLut (Gia_Man_t *p, int nLutSize, int nCutNum, int fVerbose) |
#define BAL_CUT_MAX 8 |
Definition at line 34 of file giaBalLut.c.
#define BAL_LEAF_MAX 6 |
DECLARATIONS ///.
CFile****************************************************************
FileName [giaBalance.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis [AIG balancing.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
Definition at line 33 of file giaBalLut.c.
#define BAL_NO_FUNC 134217727 |
Definition at line 37 of file giaBalLut.c.
#define BAL_NO_LEAF 31 |
Definition at line 36 of file giaBalLut.c.
#define BAL_SUPER 50 |
Definition at line 35 of file giaBalLut.c.
typedef struct Bal_Cut_t_ Bal_Cut_t |
Definition at line 39 of file giaBalLut.c.
typedef struct Bal_Man_t_ Bal_Man_t |
Definition at line 50 of file giaBalLut.c.
Function*************************************************************
Synopsis [Check correctness of cuts.]
Description []
SideEffects []
SeeAlso []
Definition at line 168 of file giaBalLut.c.
Definition at line 364 of file giaBalLut.c.
|
inlinestatic |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 121 of file giaBalLut.c.
|
inlinestatic |
Definition at line 135 of file giaBalLut.c.
|
inlinestatic |
Definition at line 128 of file giaBalLut.c.
|
inlinestatic |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 223 of file giaBalLut.c.
|
inlinestatic |
Definition at line 287 of file giaBalLut.c.
Definition at line 64 of file giaBalLut.c.
|
inlinestatic |
Definition at line 67 of file giaBalLut.c.
|
inlinestatic |
Definition at line 69 of file giaBalLut.c.
Bal_Man_t* Bal_ManAlloc | ( | Gia_Man_t * | pGia, |
Gia_Man_t * | pNew, | ||
int | nLutSize, | ||
int | nCutNum, | ||
int | fVerbose | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 86 of file giaBalLut.c.
int Bal_ManDeriveCuts | ( | Bal_Man_t * | p, |
int | iFan0, | ||
int | iFan1, | ||
int | iFan2, | ||
int | fCompl0, | ||
int | fCompl1, | ||
int | fCompl2, | ||
int | fUnit0, | ||
int | fUnit1, | ||
int | fUnit2, | ||
int | fIsXor, | ||
int | Target, | ||
int | fSave | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 402 of file giaBalLut.c.
int Bal_ManEvalTwo | ( | Bal_Man_t * | p, |
int | iLitNew0, | ||
int | iLitNew1, | ||
int | iLitNew2, | ||
int | fIsXor | ||
) |
Definition at line 526 of file giaBalLut.c.
Function*************************************************************
Synopsis [Select the best pair to merge.]
Description []
SideEffects []
SeeAlso []
Definition at line 610 of file giaBalLut.c.
void Bal_ManFree | ( | Bal_Man_t * | p | ) |
Definition at line 103 of file giaBalLut.c.
|
inlinestatic |
Definition at line 144 of file giaBalLut.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 486 of file giaBalLut.c.
|
inlinestatic |
Definition at line 66 of file giaBalLut.c.
|
inlinestatic |
Definition at line 68 of file giaBalLut.c.
|
inlinestatic |
Definition at line 382 of file giaBalLut.c.
|
inlinestatic |
Definition at line 184 of file giaBalLut.c.
Definition at line 312 of file giaBalLut.c.
|
inlinestatic |
Definition at line 346 of file giaBalLut.c.
|
inlinestatic |
Definition at line 338 of file giaBalLut.c.
|
inlinestatic |
= 1 )
Definition at line 372 of file giaBalLut.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 875 of file giaBalLut.c.
|
inlinestatic |
Definition at line 825 of file giaBalLut.c.
|
inlinestatic |
Definition at line 912 of file giaBalLut.c.
Definition at line 959 of file giaBalLut.c.
|
inlinestatic |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 800 of file giaBalLut.c.
|
inlinestatic |
Definition at line 694 of file giaBalLut.c.
|
inlinestatic |
Function*************************************************************
Synopsis [Simplify multi-input AND/XOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 674 of file giaBalLut.c.
Definition at line 755 of file giaBalLut.c.
Definition at line 740 of file giaBalLut.c.
Function*************************************************************
Synopsis [Collect multi-input AND/XOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 724 of file giaBalLut.c.
Definition at line 584 of file giaBalLut.c.
Definition at line 571 of file giaBalLut.c.
Function*************************************************************
Synopsis [Sort literals by their cost.]
Description []
SideEffects []
SeeAlso []
Definition at line 557 of file giaBalLut.c.