Go to the source code of this file.
|
| #define | Gli_ManForEachObj(p, pObj, i) |
| |
| #define | Gli_ManForEachNode(p, pObj, i) |
| |
| #define | Gli_ManForEachEntry(vVec, p, pObj, i) |
| |
| #define | Gli_ManForEachCi(p, pObj, i) |
| |
| #define | Gli_ManForEachCo(p, pObj, i) |
| |
| #define | Gli_ManForEachPi(p, pObj, i) |
| |
| #define | Gli_ManForEachPo(p, pObj, i) |
| |
| #define | Gli_ManForEachRo(p, pObj, i) |
| |
| #define | Gli_ManForEachRi(p, pObj, i) |
| |
| #define | Gli_ManForEachRiRo(p, pObjRi, pObjRo, i) |
| |
| #define | Gli_ObjForEachFanin(pObj, pNext, i) |
| |
| #define | Gli_ObjForEachFanout(pObj, pNext, i) |
| |
|
| Gli_Man_t * | Gli_ManAlloc (int nObjs, int nRegs, int nFanioPairs) |
| | FUNCTION DEFINITIONS ///.
|
| |
| void | Gli_ManStop (Gli_Man_t *p) |
| |
| void | Gli_ManPrintObjects (Gli_Man_t *p) |
| |
| void | Gli_ManFinalize (Gli_Man_t *p) |
| |
| void | Gli_ObjAddFanin (Gli_Obj_t *pObj, Gli_Obj_t *pFanin) |
| |
| Gli_Obj_t * | Gli_ObjAlloc (Gli_Man_t *p, int nFanins, int nFanouts) |
| |
| int | Gli_ManCreateCi (Gli_Man_t *p, int nFanouts) |
| |
| int | Gli_ManCreateCo (Gli_Man_t *p, int iFanin) |
| |
| int | Gli_ManCreateNode (Gli_Man_t *p, Vec_Int_t *vFanins, int nFanouts, word *pGateTruth) |
| |
| int | Gli_ObjNumSwitches (Gli_Man_t *p, int iNode) |
| |
| int | Gli_ObjNumGlitches (Gli_Man_t *p, int iNode) |
| |
| void | Gli_ManSetPiRandom (Gli_Man_t *p, float PiTransProb) |
| |
| void | Gli_ManSetPiFromSaved (Gli_Man_t *p, int iBit) |
| |
| void | Gli_ManSwitching (Gli_Man_t *p) |
| |
| void | Gli_ManGlitching (Gli_Man_t *p) |
| |
| void | Gli_ManVerify (Gli_Man_t *p) |
| |
| unsigned | Gli_ManSimulateSeqNode (Gli_Man_t *p, Gli_Obj_t *pNode) |
| |
| void | Gli_ManSimulateSeqPref (Gli_Man_t *p, int nPref) |
| |
| void | Gli_ManSetDataSaved (Gli_Man_t *p, int iBit) |
| |
| void | Gli_ManSetPiRandomSeq (Gli_Man_t *p, float PiTransProb) |
| |
| void | Gli_ManSwitchesAndGlitches (Gli_Man_t *p, int nPatterns, float PiTransProb, int fVerbose) |
| |
◆ Gli_ManForEachCi
| #define Gli_ManForEachCi |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Vec_IntSize(
p->vCis)) && (pObj = Gli_ManObj(
p,Vec_IntEntry(
p->vCis,i))); i++ )
Definition at line 108 of file giaGlitch.c.
108#define Gli_ManForEachCi( p, pObj, i ) \
109 for ( i = 0; (i < Vec_IntSize(p->vCis)) && (pObj = Gli_ManObj(p,Vec_IntEntry(p->vCis,i))); i++ )
◆ Gli_ManForEachCo
| #define Gli_ManForEachCo |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Vec_IntSize(
p->vCos)) && (pObj = Gli_ManObj(
p,Vec_IntEntry(
p->vCos,i))); i++ )
Definition at line 110 of file giaGlitch.c.
110#define Gli_ManForEachCo( p, pObj, i ) \
111 for ( i = 0; (i < Vec_IntSize(p->vCos)) && (pObj = Gli_ManObj(p,Vec_IntEntry(p->vCos,i))); i++ )
◆ Gli_ManForEachEntry
| #define Gli_ManForEachEntry |
( |
| vVec, |
|
|
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Vec_IntSize(vVec)) && (pObj = Gli_ManObj(
p,Vec_IntEntry(vVec,i))); i++ )
Definition at line 106 of file giaGlitch.c.
106#define Gli_ManForEachEntry( vVec, p, pObj, i ) \
107 for ( i = 0; (i < Vec_IntSize(vVec)) && (pObj = Gli_ManObj(p,Vec_IntEntry(vVec,i))); i++ )
◆ Gli_ManForEachNode
| #define Gli_ManForEachNode |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i <
p->nObjData) && (pObj = Gli_ManObj(
p,i)); i += Gli_ObjSize(pObj) )
if ( Gli_ObjIsTerm(pObj) ) {}
else
Definition at line 103 of file giaGlitch.c.
103#define Gli_ManForEachNode( p, pObj, i ) \
104 for ( i = 0; (i < p->nObjData) && (pObj = Gli_ManObj(p,i)); i += Gli_ObjSize(pObj) ) if ( Gli_ObjIsTerm(pObj) ) {} else
◆ Gli_ManForEachObj
| #define Gli_ManForEachObj |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i <
p->nObjData) && (pObj = Gli_ManObj(
p,i)); i += Gli_ObjSize(pObj) )
Definition at line 101 of file giaGlitch.c.
101#define Gli_ManForEachObj( p, pObj, i ) \
102 for ( i = 0; (i < p->nObjData) && (pObj = Gli_ManObj(p,i)); i += Gli_ObjSize(pObj) )
◆ Gli_ManForEachPi
| #define Gli_ManForEachPi |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Gli_ManPiNum(
p)) && ((pObj) = Gli_ManCi(
p, i)); i++ )
Definition at line 113 of file giaGlitch.c.
113#define Gli_ManForEachPi( p, pObj, i ) \
114 for ( i = 0; (i < Gli_ManPiNum(p)) && ((pObj) = Gli_ManCi(p, i)); i++ )
◆ Gli_ManForEachPo
| #define Gli_ManForEachPo |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Gli_ManPoNum(
p)) && ((pObj) = Gli_ManCo(
p, i)); i++ )
Definition at line 115 of file giaGlitch.c.
115#define Gli_ManForEachPo( p, pObj, i ) \
116 for ( i = 0; (i < Gli_ManPoNum(p)) && ((pObj) = Gli_ManCo(p, i)); i++ )
◆ Gli_ManForEachRi
| #define Gli_ManForEachRi |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Gli_ManRegNum(
p)) && ((pObj) = Gli_ManCo(
p, Gli_ManPoNum(
p)+i)); i++ )
Definition at line 119 of file giaGlitch.c.
119#define Gli_ManForEachRi( p, pObj, i ) \
120 for ( i = 0; (i < Gli_ManRegNum(p)) && ((pObj) = Gli_ManCo(p, Gli_ManPoNum(p)+i)); i++ )
◆ Gli_ManForEachRiRo
| #define Gli_ManForEachRiRo |
( |
| p, |
|
|
| pObjRi, |
|
|
| pObjRo, |
|
|
| i ) |
Value: for ( i = 0; (i < Gli_ManRegNum(
p)) && ((pObjRi) = Gli_ManCo(
p, Gli_ManPoNum(
p)+i)) && ((pObjRo) = Gli_ManCi(
p, Gli_ManPiNum(
p)+i)); i++ )
Definition at line 121 of file giaGlitch.c.
121#define Gli_ManForEachRiRo( p, pObjRi, pObjRo, i ) \
122 for ( i = 0; (i < Gli_ManRegNum(p)) && ((pObjRi) = Gli_ManCo(p, Gli_ManPoNum(p)+i)) && ((pObjRo) = Gli_ManCi(p, Gli_ManPiNum(p)+i)); i++ )
◆ Gli_ManForEachRo
| #define Gli_ManForEachRo |
( |
| p, |
|
|
| pObj, |
|
|
| i ) |
Value: for ( i = 0; (i < Gli_ManRegNum(
p)) && ((pObj) = Gli_ManCi(
p, Gli_ManPiNum(
p)+i)); i++ )
Definition at line 117 of file giaGlitch.c.
117#define Gli_ManForEachRo( p, pObj, i ) \
118 for ( i = 0; (i < Gli_ManRegNum(p)) && ((pObj) = Gli_ManCi(p, Gli_ManPiNum(p)+i)); i++ )
◆ Gli_ObjForEachFanin
| #define Gli_ObjForEachFanin |
( |
| pObj, |
|
|
| pNext, |
|
|
| i ) |
Value: for ( i = 0; (i < (int)pObj->nFanins) && (pNext = Gli_ObjFanin(pObj,i)); i++ )
Definition at line 124 of file giaGlitch.c.
124#define Gli_ObjForEachFanin( pObj, pNext, i ) \
125 for ( i = 0; (i < (int)pObj->nFanins) && (pNext = Gli_ObjFanin(pObj,i)); i++ )
◆ Gli_ObjForEachFanout
| #define Gli_ObjForEachFanout |
( |
| pObj, |
|
|
| pNext, |
|
|
| i ) |
Value: for ( i = 0; (i < (int)pObj->nFanouts) && (pNext = Gli_ObjFanout(pObj,i)); i++ )
Definition at line 126 of file giaGlitch.c.
126#define Gli_ObjForEachFanout( pObj, pNext, i ) \
127 for ( i = 0; (i < (int)pObj->nFanouts) && (pNext = Gli_ObjFanout(pObj,i)); i++ )
◆ Gli_Man_t
◆ Gli_Obj_t
DECLARATIONS ///.
CFile****************************************************************
FileName [giaGlitch.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis [Glitch simulation.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
- Id
- giaGlitch.c,v 1.00 2005/06/20 00:00:00 alanmi Exp
]
Definition at line 30 of file giaGlitch.c.
◆ Gli_ManAlloc()
| Gli_Man_t * Gli_ManAlloc |
( |
int | nObjs, |
|
|
int | nRegs, |
|
|
int | nFanioPairs ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Creates logic network.]
Description []
SideEffects []
SeeAlso []
Definition at line 144 of file giaGlitch.c.
145{
149 p->vCis = Vec_IntAlloc( 1000 );
150 p->vCos = Vec_IntAlloc( 1000 );
151 p->vCisChanged = Vec_IntAlloc( 1000 );
152 p->vAffected = Vec_IntAlloc( 1000 );
153 p->vFrontier = Vec_IntAlloc( 1000 );
154 p->nObjData = (
sizeof(
Gli_Obj_t) / 4) * nObjs + 2 * nFanioPairs;
155 p->pObjData = (
int *)(
p + 1);
157}
#define ABC_CALLOC(type, num)
struct Gli_Man_t_ Gli_Man_t
typedefABC_NAMESPACE_IMPL_START struct Gli_Obj_t_ Gli_Obj_t
DECLARATIONS ///.
◆ Gli_ManCreateCi()
| int Gli_ManCreateCi |
( |
Gli_Man_t * | p, |
|
|
int | nFanouts ) |
Function*************************************************************
Synopsis [Creates CI.]
Description []
SideEffects []
SeeAlso []
Definition at line 288 of file giaGlitch.c.
289{
292 pObj->fTerm = 1;
293 Vec_IntPush(
p->vCis, pObj->Handle );
294 return pObj->Handle;
295}
Gli_Obj_t * Gli_ObjAlloc(Gli_Man_t *p, int nFanins, int nFanouts)
◆ Gli_ManCreateCo()
| int Gli_ManCreateCo |
( |
Gli_Man_t * | p, |
|
|
int | iFanin ) |
Function*************************************************************
Synopsis [Creates CO.]
Description []
SideEffects []
SeeAlso []
Definition at line 308 of file giaGlitch.c.
309{
312 pObj->fTerm = 1;
313 pFanin = Gli_ManObj(
p, iFanin );
315 pObj->fPhase = pObj->fPhase2 = pFanin->fPhase;
316 Vec_IntPush(
p->vCos, pObj->Handle );
317 return pObj->Handle;
318}
void Gli_ObjAddFanin(Gli_Obj_t *pObj, Gli_Obj_t *pFanin)
◆ Gli_ManCreateNode()
Function*************************************************************
Synopsis [Creates node.]
Description []
SideEffects []
SeeAlso []
Definition at line 369 of file giaGlitch.c.
370{
372 int i;
373 assert( Vec_IntSize(vFanins) <= 16 );
377 pObj->pTruth = pGateTruth;
378 pObj->fPhase = pObj->fPhase2 = Gli_NodeComputeValue( pObj );
379 return pObj->Handle;
380}
#define Gli_ManForEachEntry(vVec, p, pObj, i)
◆ Gli_ManFinalize()
Function*************************************************************
Synopsis [Checks logic network.]
Description []
SideEffects []
SeeAlso []
Definition at line 221 of file giaGlitch.c.
222{
224 int i;
225 assert(
p->iObjData ==
p->nObjData );
227 {
228 assert( pObj->iFanin == (
int)pObj->nFanins );
229 assert( pObj->iFanout == (
int)pObj->nFanouts );
230 pObj->iFanin = 0;
231 pObj->iFanout = 0;
232 }
233}
#define Gli_ManForEachObj(p, pObj, i)
◆ Gli_ManGlitching()
Function*************************************************************
Synopsis [Computes glitching activity of each node.]
Description []
SideEffects []
SeeAlso []
Definition at line 506 of file giaGlitch.c.
507{
509 int i, k, Handle;
510
511
512
513 Vec_IntClear(
p->vAffected );
515 Vec_IntPush(
p->vAffected, Handle );
516
517 while ( Vec_IntSize(
p->vAffected) > 0 )
518 {
519
520 Vec_IntClear(
p->vFrontier );
522 {
524 {
525 if ( Gli_ObjIsCo(pFanout) )
526 continue;
527 if ( pFanout->fMark )
528 continue;
529 pFanout->fMark = 1;
530 Vec_IntPush(
p->vFrontier, pFanout->Handle );
531 }
532 }
533
534 Vec_IntClear(
p->vAffected );
536 {
537 pThis->fMark = 0;
538 if ( ((int)pThis->fPhase2) == Gli_NodeComputeValue2(pThis) )
539 continue;
540 pThis->fPhase2 ^= 1;
541 pThis->nGlitches++;
542 Vec_IntPush(
p->vAffected, pThis->Handle );
543 }
544 }
545}
#define Gli_ObjForEachFanout(pObj, pNext, i)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
◆ Gli_ManPrintObjects()
Function*************************************************************
Synopsis [Checks logic network.]
Description []
SideEffects []
SeeAlso []
Definition at line 192 of file giaGlitch.c.
193{
195 int i, k;
197 {
198 printf( "Node %d \n", pObj->Handle );
199 printf( "Fanins: " );
201 printf( "%d ", pNext->Handle );
202 printf( "\n" );
203 printf( "Fanouts: " );
205 printf( "%d ", pNext->Handle );
206 printf( "\n" );
207 }
208}
#define Gli_ObjForEachFanin(pObj, pNext, i)
◆ Gli_ManSetDataSaved()
| void Gli_ManSetDataSaved |
( |
Gli_Man_t * | p, |
|
|
int | iBit ) |
Function*************************************************************
Synopsis [Initialized object values to be one pattern in the saved data.]
Description []
SideEffects []
SeeAlso []
Definition at line 675 of file giaGlitch.c.
676{
678 int i;
680 pObj->fPhase = pObj->fPhase2 = ((
p->pSimInfoPrev[i] >> iBit) & 1);
682 pObj->fPhase = pObj->fPhase2 = Gli_NodeComputeValue( pObj );
683}
#define Gli_ManForEachCi(p, pObj, i)
#define Gli_ManForEachNode(p, pObj, i)
◆ Gli_ManSetPiFromSaved()
| void Gli_ManSetPiFromSaved |
( |
Gli_Man_t * | p, |
|
|
int | iBit ) |
Function*************************************************************
Synopsis [Sets random info at the PIs and collects changed PIs.]
Description []
SideEffects []
SeeAlso []
Definition at line 455 of file giaGlitch.c.
456{
458 int i;
459 Vec_IntClear(
p->vCisChanged );
461 if ( (
p->pSimInfoPrev[i] ^ pObj->uSimInfo) & (1 << iBit) )
462 {
463 Vec_IntPush(
p->vCisChanged, pObj->Handle );
464 pObj->fPhase ^= 1;
465 pObj->fPhase2 ^= 1;
466 pObj->nSwitches++;
467 pObj->nGlitches++;
468 }
469}
◆ Gli_ManSetPiRandom()
| void Gli_ManSetPiRandom |
( |
Gli_Man_t * | p, |
|
|
float | PiTransProb ) |
Function*************************************************************
Synopsis [Sets random info at the PIs and collects changed PIs.]
Description []
SideEffects []
SeeAlso []
Definition at line 426 of file giaGlitch.c.
427{
429 float Multi = 1.0 / (1 << 16);
430 int i;
431 assert( 0.0 < PiTransProb && PiTransProb < 1.0 );
432 Vec_IntClear(
p->vCisChanged );
435 {
436 Vec_IntPush(
p->vCisChanged, pObj->Handle );
437 pObj->fPhase ^= 1;
438 pObj->fPhase2 ^= 1;
439 pObj->nSwitches++;
440 pObj->nGlitches++;
441 }
442}
unsigned Gia_ManRandom(int fReset)
FUNCTION DEFINITIONS ///.
◆ Gli_ManSetPiRandomSeq()
| void Gli_ManSetPiRandomSeq |
( |
Gli_Man_t * | p, |
|
|
float | PiTransProb ) |
Function*************************************************************
Synopsis [Sets random info at the PIs and collects changed PIs.]
Description []
SideEffects []
SeeAlso []
Definition at line 696 of file giaGlitch.c.
697{
699 float Multi = 1.0 / (1 << 16);
700 int i;
701 assert( 0.0 < PiTransProb && PiTransProb < 1.0 );
702
704 pObj->fPhase = pObj->fPhase2 = Gli_ObjFanin(pObj, 0)->fPhase;
705
706 Vec_IntClear(
p->vCisChanged );
709 {
710 Vec_IntPush(
p->vCisChanged, pObj->Handle );
711 pObj->fPhase ^= 1;
712 pObj->fPhase2 ^= 1;
713 pObj->nSwitches++;
714 pObj->nGlitches++;
715 }
716
718 if ( pObjRi->fPhase != pObj->fPhase )
719 {
720 Vec_IntPush(
p->vCisChanged, pObj->Handle );
721 pObj->fPhase ^= 1;
722 pObj->fPhase2 ^= 1;
723 pObj->nSwitches++;
724 pObj->nGlitches++;
725 }
726
727}
#define Gli_ManForEachPi(p, pObj, i)
#define Gli_ManForEachCo(p, pObj, i)
#define Gli_ManForEachRiRo(p, pObjRi, pObjRo, i)
◆ Gli_ManSimulateSeqNode()
Function*************************************************************
Synopsis [Simulates one node.]
Description []
SideEffects []
SeeAlso []
Definition at line 580 of file giaGlitch.c.
581{
582 unsigned pSimInfos[6], Result = 0;
583 int nFanins = Gli_ObjFaninNum(pNode);
584 int i, k, Phase;
588 pSimInfos[i] = pFanin->uSimInfo;
589 for ( i = 0; i < 32; i++ )
590 {
591 Phase = 0;
592 for ( k = 0; k < nFanins; k++ )
593 if ( (pSimInfos[k] >> i) & 1 )
594 Phase |= (1 << k);
595 if ( Abc_InfoHasBit( (unsigned *)pNode->pTruth, Phase ) )
596 Result |= (1 << i);
597 }
598 return Result;
599}
◆ Gli_ManSimulateSeqPref()
| void Gli_ManSimulateSeqPref |
( |
Gli_Man_t * | p, |
|
|
int | nPref ) |
Function*************************************************************
Synopsis [Simulates sequential network randomly for the given number of frames.]
Description []
SideEffects []
SeeAlso []
Definition at line 635 of file giaGlitch.c.
636{
638 int i, f;
639
641 pObj->uSimInfo = Gli_ManUpdateRandomInput( pObj->uSimInfo, 0.5 );
643 pObj->uSimInfo = 0;
644 for ( f = 0; f < nPref; f++ )
645 {
646
650 pObj->uSimInfo = Gli_ObjFanin(pObj, 0)->uSimInfo;
651
653 pObj->uSimInfo = Gli_ManUpdateRandomInput( pObj->uSimInfo, 0.5 );
655 pObjRo->uSimInfo = pObjRi->uSimInfo;
656 }
657
658 if (
p->pSimInfoPrev == NULL )
659 p->pSimInfoPrev =
ABC_ALLOC(
unsigned, Gli_ManCiNum(
p) );
661 p->pSimInfoPrev[i] = pObj->uSimInfo;
662}
#define ABC_ALLOC(type, num)
#define Gli_ManForEachRo(p, pObj, i)
unsigned Gli_ManSimulateSeqNode(Gli_Man_t *p, Gli_Obj_t *pNode)
#define Gli_ManForEachRi(p, pObj, i)
◆ Gli_ManStop()
Function*************************************************************
Synopsis [Deletes logic network.]
Description []
SideEffects []
SeeAlso []
Definition at line 170 of file giaGlitch.c.
171{
172 Vec_IntFree(
p->vCis );
173 Vec_IntFree(
p->vCos );
174 Vec_IntFree(
p->vCisChanged );
175 Vec_IntFree(
p->vAffected );
176 Vec_IntFree(
p->vFrontier );
179}
◆ Gli_ManSwitchesAndGlitches()
| void Gli_ManSwitchesAndGlitches |
( |
Gli_Man_t * | p, |
|
|
int | nPatterns, |
|
|
float | PiTransProb, |
|
|
int | fVerbose ) |
Function*************************************************************
Synopsis [Computes glitching activity of each node.]
Description []
SideEffects []
SeeAlso []
Definition at line 740 of file giaGlitch.c.
741{
742 int i, k;
747 {
748 for ( i = 0; i < nPatterns; i++ )
749 {
753
754 }
755 }
756 else
757 {
758 int nIters = Abc_BitWordNum(nPatterns);
760 for ( i = 0; i < 32; i++ )
761 {
763 for ( k = 0; k < nIters; k++ )
764 {
768
769 }
770 }
771 }
772 if ( fVerbose )
773 {
774 printf( "Simulated %d patterns. Input transition probability %.2f. ", nPatterns, PiTransProb );
776 ABC_PRT(
"Time", Abc_Clock() - clk );
777 }
778}
void Gli_ManSetPiRandom(Gli_Man_t *p, float PiTransProb)
void Gli_ManGlitching(Gli_Man_t *p)
void Gli_ManSetPiRandomSeq(Gli_Man_t *p, float PiTransProb)
void Gli_ManSetDataSaved(Gli_Man_t *p, int iBit)
void Gli_ManFinalize(Gli_Man_t *p)
void Gli_ManSimulateSeqPref(Gli_Man_t *p, int nPref)
void Gli_ManSwitching(Gli_Man_t *p)
◆ Gli_ManSwitching()
Function*************************************************************
Synopsis [Computes switching activity of each node.]
Description []
SideEffects []
SeeAlso []
Definition at line 482 of file giaGlitch.c.
483{
485 int i;
487 {
488 if ( ((int)pThis->fPhase) == Gli_NodeComputeValue(pThis) )
489 continue;
490 pThis->fPhase ^= 1;
491 pThis->nSwitches++;
492 }
493}
◆ Gli_ManVerify()
Function*************************************************************
Synopsis [Checks that the resulting values are the same.]
Description []
SideEffects []
SeeAlso []
Definition at line 558 of file giaGlitch.c.
559{
561 int i;
563 {
564 assert( pObj->fPhase == pObj->fPhase2 );
565 assert( pObj->nGlitches >= pObj->nSwitches );
566 }
567}
◆ Gli_ObjAddFanin()
Function*************************************************************
Synopsis [Creates fanin/fanout pair.]
Description []
SideEffects []
SeeAlso []
Definition at line 246 of file giaGlitch.c.
247{
248 assert( pObj->iFanin < (
int)pObj->nFanins );
249 assert( pFanin->iFanout < (
int)pFanin->nFanouts );
250 pFanin->Fanios[pFanin->nFanins + pFanin->iFanout++] =
251 pObj->Fanios[pObj->iFanin++] = pObj->Handle - pFanin->Handle;
252}
◆ Gli_ObjAlloc()
Function*************************************************************
Synopsis [Allocates object.]
Description []
SideEffects []
SeeAlso []
Definition at line 265 of file giaGlitch.c.
266{
268 pObj = Gli_ManObj(
p,
p->iObjData );
269 pObj->Handle =
p->iObjData;
270 pObj->nFanins = nFanins;
271 pObj->nFanouts = nFanouts;
272 p->iObjData += Gli_ObjSize( pObj );
274 return pObj;
275}
◆ Gli_ObjNumGlitches()
| int Gli_ObjNumGlitches |
( |
Gli_Man_t * | p, |
|
|
int | iNode ) |
Function*************************************************************
Synopsis [Returns the number of glitches of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 409 of file giaGlitch.c.
410{
411 return Gli_ManObj(
p, iNode )->nGlitches;
412}
◆ Gli_ObjNumSwitches()
| int Gli_ObjNumSwitches |
( |
Gli_Man_t * | p, |
|
|
int | iNode ) |
Function*************************************************************
Synopsis [Returns the number of switches of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 393 of file giaGlitch.c.
394{
395 return Gli_ManObj(
p, iNode )->nSwitches;
396}