Go to the source code of this file.
|
| #define | MIG_NONE 0x7FFFFFFF |
| | INCLUDES ///.
|
| |
| #define | MIG_MASK 0x0000FFF |
| |
| #define | MIG_BASE 12 |
| |
| #define | Mig_ManForEachObj(p, pObj) |
| | MACRO DEFINITIONS ///.
|
| |
| #define | Mig_ManForEachObj1(p, pObj) |
| |
| #define | Mig_ManForEachObjReverse(p, pObj) |
| |
| #define | Mig_ManForEachObjVec(vVec, p, pObj, i) |
| |
| #define | Mig_ManForEachNode(p, pObj) |
| |
| #define | Mig_ManForEachCand(p, pObj) |
| |
| #define | Mig_ManForEachCi(p, pObj, i) |
| |
| #define | Mig_ManForEachCo(p, pObj, i) |
| |
| #define | Mig_ObjForEachFaninId(p, iFanin, i) |
| |
| #define | Mig_ObjForEachFanin(p, pFanin, i) |
| |
◆ MIG_BASE
◆ Mig_ManForEachCand
| #define Mig_ManForEachCand |
( |
| p, |
|
|
| pObj ) |
Value:
#define Mig_ManForEachObj(p, pObj)
MACRO DEFINITIONS ///.
Definition at line 324 of file mpmMig.h.
324#define Mig_ManForEachCand( p, pObj ) \
325 Mig_ManForEachObj( p, pObj ) if ( !Mig_ObjIsCand(pObj) ) {} else
◆ Mig_ManForEachCi
| #define Mig_ManForEachCi |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Vec_IntSize(&
p->vCis)) && ((pObj) = Mig_ManCi(
p, i)); i++ )
Definition at line 327 of file mpmMig.h.
327#define Mig_ManForEachCi( p, pObj, i ) \
328 for ( i = 0; (i < Vec_IntSize(&p->vCis)) && ((pObj) = Mig_ManCi(p, i)); i++ )
◆ Mig_ManForEachCo
| #define Mig_ManForEachCo |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Vec_IntSize(&
p->vCos)) && ((pObj) = Mig_ManCo(
p, i)); i++ )
Definition at line 329 of file mpmMig.h.
329#define Mig_ManForEachCo( p, pObj, i ) \
330 for ( i = 0; (i < Vec_IntSize(&p->vCos)) && ((pObj) = Mig_ManCo(p, i)); i++ )
◆ Mig_ManForEachNode
| #define Mig_ManForEachNode |
( |
| p, |
|
|
| pObj ) |
Value:
Definition at line 322 of file mpmMig.h.
322#define Mig_ManForEachNode( p, pObj ) \
323 Mig_ManForEachObj( p, pObj ) if ( !Mig_ObjIsNode(pObj) ) {} else
◆ Mig_ManForEachObj
| #define Mig_ManForEachObj |
( |
| p, |
|
|
| pObj ) |
Value: for (
p->iPage = 0;
p->iPage < Vec_PtrSize(&
p->vPages) && \
((
p->pPage) = (
Mig_Obj_t *)Vec_PtrEntry(&
p->vPages,
p->iPage));
p->iPage++ ) \
for ( pObj =
p->pPage; !Mig_ObjIsNone(pObj); pObj++ )
struct Mig_Obj_t_ Mig_Obj_t
MACRO DEFINITIONS ///.
Definition at line 304 of file mpmMig.h.
304#define Mig_ManForEachObj( p, pObj ) \
305 for ( p->iPage = 0; p->iPage < Vec_PtrSize(&p->vPages) && \
306 ((p->pPage) = (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, p->iPage)); p->iPage++ ) \
307 for ( pObj = p->pPage; !Mig_ObjIsNone(pObj); pObj++ )
◆ Mig_ManForEachObj1
| #define Mig_ManForEachObj1 |
( |
| p, |
|
|
| pObj ) |
Value: for (
p->iPage = 0;
p->iPage < Vec_PtrSize(&
p->vPages) && \
((
p->pPage) = (
Mig_Obj_t *)Vec_PtrEntry(&
p->vPages,
p->iPage));
p->iPage++ ) \
for ( pObj =
p->pPage + (
p->iPage == 0); !Mig_ObjIsNone(pObj); pObj++ )
Definition at line 308 of file mpmMig.h.
308#define Mig_ManForEachObj1( p, pObj ) \
309 for ( p->iPage = 0; p->iPage < Vec_PtrSize(&p->vPages) && \
310 ((p->pPage) = (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, p->iPage)); p->iPage++ ) \
311 for ( pObj = p->pPage + (p->iPage == 0); !Mig_ObjIsNone(pObj); pObj++ )
◆ Mig_ManForEachObjReverse
| #define Mig_ManForEachObjReverse |
( |
| p, |
|
|
| pObj ) |
Value: for (
p->iPage = Vec_PtrSize(&
p->vPages) - 1;
p->iPage >= 0 && \
((
p->pPage) = (
Mig_Obj_t *)Vec_PtrEntry(&
p->vPages,
p->iPage));
p->iPage-- ) \
for ( pObj = (
p->iPage == Vec_PtrSize(&
p->vPages) - 1) ? \
Mig_ManObj(
p, Mig_ManObjNum(
p)-1) :
p->pPage +
MIG_MASK; \
pObj -
p->pPage >= 0; pObj-- )
Definition at line 312 of file mpmMig.h.
312#define Mig_ManForEachObjReverse( p, pObj ) \
313 for ( p->iPage = Vec_PtrSize(&p->vPages) - 1; p->iPage >= 0 && \
314 ((p->pPage) = (Mig_Obj_t *)Vec_PtrEntry(&p->vPages, p->iPage)); p->iPage-- ) \
315 for ( pObj = (p->iPage == Vec_PtrSize(&p->vPages) - 1) ? \
316 Mig_ManObj(p, Mig_ManObjNum(p)-1) : p->pPage + MIG_MASK; \
317 pObj - p->pPage >= 0; pObj-- )
◆ Mig_ManForEachObjVec
| #define Mig_ManForEachObjVec |
( |
| vVec, |
|
|
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Mig_ManObj(
p, Vec_IntEntry(vVec,i))); i++ )
Definition at line 319 of file mpmMig.h.
319#define Mig_ManForEachObjVec( vVec, p, pObj, i ) \
320 for ( i = 0; (i < Vec_IntSize(vVec)) && ((pObj) = Mig_ManObj(p, Vec_IntEntry(vVec,i))); i++ )
◆ MIG_MASK
| #define MIG_MASK 0x0000FFF |
◆ MIG_NONE
| #define MIG_NONE 0x7FFFFFFF |
INCLUDES ///.
CFile****************************************************************
FileName [mpmMig.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Configurable technology mapper.]
Synopsis [Internal declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 1, 2013.]
Revision [
- Id
- mpmMig.h,v 1.00 2013/06/01 00:00:00 alanmi Exp
] PARAMETERS ///
Definition at line 37 of file mpmMig.h.
◆ Mig_ObjForEachFanin
| #define Mig_ObjForEachFanin |
( |
| p, |
|
|
| pFanin, |
|
|
| i ) |
Value: for ( i = 0; Mig_ObjHasFanin(
p, i) && ((pFanin) = Mig_ObjFanin(
p, i)); i++ )
Definition at line 335 of file mpmMig.h.
335#define Mig_ObjForEachFanin( p, pFanin, i ) \
336 for ( i = 0; Mig_ObjHasFanin(p, i) && ((pFanin) = Mig_ObjFanin(p, i)); i++ )
◆ Mig_ObjForEachFaninId
| #define Mig_ObjForEachFaninId |
( |
| p, |
|
|
| iFanin, |
|
|
| i ) |
Value: for ( i = 0; Mig_ObjHasFanin(
p, i) && ((iFanin) = Mig_ObjFaninId(
p, i)); i++ )
Definition at line 333 of file mpmMig.h.
333#define Mig_ObjForEachFaninId( p, iFanin, i ) \
334 for ( i = 0; Mig_ObjHasFanin(p, i) && ((iFanin) = Mig_ObjFaninId(p, i)); i++ )
◆ Mig_Fan_t
BASIC TYPES ///.
Definition at line 47 of file mpmMig.h.
◆ Mig_Man_t
◆ Mig_Obj_t
◆ Mig_ManAndNum()
Definition at line 98 of file mpmMig.c.
99{
101}
int Mig_ManTypeNum(Mig_Man_t *p, int Type)
◆ Mig_ManMuxNum()
◆ Mig_ManSetRefs()
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 123 of file mpmMig.c.
124{
126 int i, iFanin;
127
128 Vec_IntFill( &
p->vRefs, Mig_ManObjNum(
p), 0 );
130 {
132 Vec_IntAddToEntry( &
p->vRefs, iFanin, 1 );
133 if ( Mig_ObjSiblId(pObj) )
134 Vec_IntAddToEntry( &
p->vRefs, Mig_ObjSiblId(pObj), 1 );
135 }
136}
#define Mig_ObjForEachFaninId(p, iFanin, i)
◆ Mig_ManStart()
FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
CFile****************************************************************
FileName [mpmMig.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Configurable technology mapper.]
Synopsis [Subject graph data structure.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 1, 2013.]
Revision [
- Id
- mpmMig.c,v 1.00 2013/06/01 00:00:00 alanmi Exp
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file mpmMig.c.
46{
51 Vec_IntGrow( &
p->vCis, 1024 );
52 Vec_IntGrow( &
p->vCos, 1024 );
53 Mig_ManAppendObj(
p );
55}
#define ABC_CALLOC(type, num)
struct Mig_Man_t_ Mig_Man_t
◆ Mig_ManStop()
Definition at line 56 of file mpmMig.c.
57{
58 if ( 0 )
59 printf( "Subject graph uses %d pages of %d objects with %d entries. Total memory = %.2f MB.\n",
60 Vec_PtrSize(&
p->vPages),
MIG_MASK + 1,
p->nObjs,
61 1.0 * Vec_PtrSize(&
p->vPages) * (
MIG_MASK + 1) * 16 / (1 << 20) );
62
68
71
77}
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
◆ Mig_ManXorNum()