ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
acecUtil.c File Reference
#include "acecInt.h"
Include dependency graph for acecUtil.c:

Go to the source code of this file.

Functions

ABC_NAMESPACE_IMPL_START void Gia_PolynCollectXors_rec (Gia_Man_t *pGia, int iObj, Vec_Int_t *vXors)
 DECLARATIONS ///.
 
Vec_Int_tGia_PolynCollectLastXor (Gia_Man_t *pGia, int fVerbose)
 
void Gia_PolynAnalyzeXors (Gia_Man_t *pGia, int fVerbose)
 
Gia_Man_tGia_ManDupTopMostRange (Gia_Man_t *p)
 

Function Documentation

◆ Gia_ManDupTopMostRange()

Gia_Man_t * Gia_ManDupTopMostRange ( Gia_Man_t * p)

Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 104 of file acecUtil.c.

105{
106 Gia_Man_t * pNew;
107 Vec_Int_t * vTops = Vec_IntAlloc( 10 );
108 int i;
109 for ( i = 45; i < 52; i++ )
110 Vec_IntPush( vTops, Gia_ObjId( p, Gia_ObjFanin0(Gia_ManCo(p, i)) ) );
111 pNew = Gia_ManDupAndConesLimit( p, Vec_IntArray(vTops), Vec_IntSize(vTops), 100 );
112 Vec_IntFree( vTops );
113 return pNew;
114}
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
Cube * p
Definition exorList.c:222
Gia_Man_t * Gia_ManDupAndConesLimit(Gia_Man_t *p, int *pAnds, int nAnds, int Level)
Definition giaDup.c:4021
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
Here is the call graph for this function:

◆ Gia_PolynAnalyzeXors()

void Gia_PolynAnalyzeXors ( Gia_Man_t * pGia,
int fVerbose )

Definition at line 69 of file acecUtil.c.

70{
71 int i, iDriver, Count = 0;
72 Vec_Int_t * vXors = Vec_IntAlloc( 100 );
73 if ( pGia->pMuxes == NULL )
74 {
75 printf( "AIG does not have XORs extracted.\n" );
76 return;
77 }
78 assert( pGia->pMuxes );
79 Gia_ManForEachCoDriverId( pGia, iDriver, i )
80 {
81 Vec_IntClear( vXors );
83 Gia_PolynCollectXors_rec( pGia, iDriver, vXors );
84 //printf( "%3d : ", i );
85 //Vec_IntPrint( vXors );
86 printf( "%d=%d ", i, Vec_IntSize(vXors) );
87 Count += Vec_IntSize(vXors);
88 }
89 printf( "Total = %d.\n", Count );
90 Vec_IntFree( vXors );
91}
ABC_NAMESPACE_IMPL_START void Gia_PolynCollectXors_rec(Gia_Man_t *pGia, int iObj, Vec_Int_t *vXors)
DECLARATIONS ///.
Definition acecUtil.c:45
#define Gia_ManForEachCoDriverId(p, DriverId, i)
Definition gia.h:1246
void Gia_ManIncrementTravId(Gia_Man_t *p)
Definition giaUtil.c:190
unsigned * pMuxes
Definition gia.h:106
#define assert(ex)
Definition util_old.h:213
Here is the call graph for this function:

◆ Gia_PolynCollectLastXor()

Vec_Int_t * Gia_PolynCollectLastXor ( Gia_Man_t * pGia,
int fVerbose )

Definition at line 57 of file acecUtil.c.

58{
59 Vec_Int_t * vXors = Vec_IntAlloc( 100 );
60 Gia_Obj_t * pObj = Gia_ManCo( pGia, Gia_ManCoNum(pGia)-1 );
61 ABC_FREE( pGia->pRefs );
62 Gia_ManCreateRefs( pGia );
64 Gia_PolynCollectXors_rec( pGia, Gia_ObjFaninId0p(pGia, pObj), vXors );
65 Vec_IntReverseOrder( vXors );
66 ABC_FREE( pGia->pRefs );
67 return vXors;
68}
#define ABC_FREE(obj)
Definition abc_global.h:267
struct Gia_Obj_t_ Gia_Obj_t
Definition gia.h:76
void Gia_ManCreateRefs(Gia_Man_t *p)
Definition giaUtil.c:779
int * pRefs
Definition gia.h:118
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Gia_PolynCollectXors_rec()

ABC_NAMESPACE_IMPL_START void Gia_PolynCollectXors_rec ( Gia_Man_t * pGia,
int iObj,
Vec_Int_t * vXors )

DECLARATIONS ///.

CFile****************************************************************

FileName [acecUtil.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [CEC for arithmetic circuits.]

Synopsis [Various utilities.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - June 20, 2005.]

Revision [

Id
acecUtil.c,v 1.00 2005/06/20 00:00:00 alanmi Exp

] FUNCTION DEFINITIONS /// Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 45 of file acecUtil.c.

46{
47 Gia_Obj_t * pObj = Gia_ManObj( pGia, iObj );
48 if ( Gia_ObjIsTravIdCurrent(pGia, pObj) )
49 return;
50 Gia_ObjSetTravIdCurrent(pGia, pObj);
51 if ( !Gia_ObjIsAnd(pObj) || !Gia_ObjIsXor(pObj) || Gia_ObjRefNum(pGia, pObj) > 1 )
52 return;
53 Gia_PolynCollectXors_rec( pGia, Gia_ObjFaninId0(pObj, iObj), vXors );
54 Gia_PolynCollectXors_rec( pGia, Gia_ObjFaninId1(pObj, iObj), vXors );
55 Vec_IntPushUnique( vXors, iObj );
56}
Here is the call graph for this function:
Here is the caller graph for this function: