Go to the source code of this file.
Function*************************************************************
Synopsis [Performs combinational cleanup.]
Description []
SideEffects []
SeeAlso []
Definition at line 84 of file giaScl.c.
Gia_Man_t * Gia_ManDupMarked(Gia_Man_t *p)
int Gia_ManCombMarkUsed(Gia_Man_t *p)
Function*************************************************************
Synopsis [Skip the first outputs during cleanup.]
Description []
SideEffects []
SeeAlso []
Definition at line 101 of file giaScl.c.
Gia_Man_t * Gia_ManDupMarked(Gia_Man_t *p)
#define Gia_ManForEachCo(p, pObj, i)
int Gia_ManCombMarkUsed(Gia_Man_t *p)
static int Gia_ManCoNum(Gia_Man_t *p)
static int Gia_ManRegNum(Gia_Man_t *p)
Definition at line 60 of file giaScl.c.
#define Gia_ManForEachCo(p, pObj, i)
static int Gia_ObjIsBuf(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///.
ABC_NAMESPACE_IMPL_START int Gia_ManCombMarkUsed_rec(Gia_Man_t *p, Gia_Obj_t *pObj)
DECLARATIONS ///.
#define Gia_ManForEachBuf(p, pObj, i)
DECLARATIONS ///.
CFile****************************************************************
FileName [giaScl.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis [Sequential cleanup.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
- Id:
- giaScl.c,v 1.00 2005/06/20 00:00:00 alanmi Exp
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Marks unreachable internal nodes and returns their number.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file giaScl.c.
static Gia_Obj_t * Gia_ObjSiblObj(Gia_Man_t *p, int Id)
static int Gia_ObjIsBuf(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjNextObj(Gia_Man_t *p, int Id)
static Gia_Obj_t * Gia_ObjFanin2(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START int Gia_ManCombMarkUsed_rec(Gia_Man_t *p, Gia_Obj_t *pObj)
DECLARATIONS ///.
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
Function*************************************************************
Synopsis [Find representatives due to identical fanins.]
Description [Returns the old manager if there is no changes.]
SideEffects []
SeeAlso []
Definition at line 200 of file giaScl.c.
204 unsigned * pCi2Lit, * pMaps;
205 int i, iLit, nFanins = 1, Counter0 = 0,
Counter = 0;
218 else if ( ~pMaps[iLit] )
239 if ( Counter0 || Counter )
static int Abc_Var2Lit(int Var, int fCompl)
#define Gia_ManForEachRiRo(p, pObjRi, pObjRo, i)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupDfsCiMap(Gia_Man_t *p, int *pCi2Lit, Vec_Int_t *vLits)
static int Gia_ManCiNum(Gia_Man_t *p)
static int Gia_ObjFaninId0p(Gia_Man_t *p, Gia_Obj_t *pObj)
#define Gia_ManForEachRi(p, pObj, i)
static int Gia_ObjFaninC0(Gia_Obj_t *pObj)
static int Gia_ManPiNum(Gia_Man_t *p)
#define ABC_FALLOC(type, num)
Function*************************************************************
Synopsis [Performs sequential cleanup.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file giaScl.c.
Gia_Man_t * Gia_ManDupMarked(Gia_Man_t *p)
int Gia_ManSeqMarkUsed(Gia_Man_t *p)
Function*************************************************************
Synopsis [Marks CIs/COs/ANDs unreachable from POs.]
Description []
SideEffects []
SeeAlso []
Definition at line 156 of file giaScl.c.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Gia_ManSeqMarkUsed_rec(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vRoots)
void Gia_ManSetMark0(Gia_Man_t *p)
#define Gia_ManForEachPi(p, pObj, i)
#define Gia_ManForEachObjVec(vVec, p, pObj, i)
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
Vec_Int_t * Gia_ManCollectPoIds(Gia_Man_t *p)
static void Vec_IntFree(Vec_Int_t *p)
Function*************************************************************
Synopsis [Marks CIs/COs/ANDs unreachable from POs.]
Description []
SideEffects []
SeeAlso []
Definition at line 128 of file giaScl.c.
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
int Gia_ManSeqMarkUsed_rec(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vRoots)
static int Gia_ObjIsRo(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjRoToRi(Gia_Man_t *p, Gia_Obj_t *pObj)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
Function*************************************************************
Synopsis [Performs sequential cleanup.]
Description []
SideEffects []
SeeAlso []
Definition at line 258 of file giaScl.c.
264 printf(
"Performing sequential cleanup.\n" );
275 if ( fVerbose && fEquiv )
276 printf(
"Merging combinationally equivalent flops.\n" );
void Gia_ManStop(Gia_Man_t *p)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
Gia_Man_t * Gia_ManReduceConst(Gia_Man_t *pAig, int fVerbose)
Gia_Man_t * Gia_ManSeqCleanup(Gia_Man_t *p)
void Gia_ManReportImprovement(Gia_Man_t *p, Gia_Man_t *pNew)
Gia_Man_t * Gia_ManReduceEquiv(Gia_Man_t *p, int fVerbose)
static int Gia_ManRegNum(Gia_Man_t *p)