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

Go to the source code of this file.

Macros

#define GIA_SAT_SHIFT   12
 DECLARATIONS ///.
 
#define GIA_ROOT_MASK
 
#define GIA_PATH00_MASK
 
#define GIA_PATH10_MASK
 
#define GIA_PATH20_MASK
 
#define GIA_PATH30_MASK
 
#define GIA_PATH00_MASK
 
#define GIA_PATH10_MASK
 
#define GIA_PATH20_MASK
 
#define GIA_PATH30_MASK
 

Functions

int Gia_SatPathCheckCutSat_rec (Gia_Obj_t *p, int fCompl)
 FUNCTION DEFINITIONS ///.
 
int Gia_SatPathCheckCutSat (Gia_Obj_t *p)
 
int Gia_SatPathUnbind_rec (Gia_Obj_t *p)
 
int Gia_SatPathStart_rec (Gia_Obj_t *p, int fDiffs, int fCompl)
 
int Gia_SatPathStart (Gia_Obj_t *p)
 

Macro Definition Documentation

◆ GIA_PATH00_MASK [1/2]

#define GIA_PATH00_MASK

Definition at line 32 of file giaProp.c.

◆ GIA_PATH00_MASK [2/2]

#define GIA_PATH00_MASK

Definition at line 32 of file giaProp.c.

◆ GIA_PATH10_MASK [1/2]

#define GIA_PATH10_MASK

Definition at line 33 of file giaProp.c.

◆ GIA_PATH10_MASK [2/2]

#define GIA_PATH10_MASK

Definition at line 33 of file giaProp.c.

◆ GIA_PATH20_MASK [1/2]

#define GIA_PATH20_MASK

Definition at line 34 of file giaProp.c.

◆ GIA_PATH20_MASK [2/2]

#define GIA_PATH20_MASK

Definition at line 34 of file giaProp.c.

◆ GIA_PATH30_MASK [1/2]

#define GIA_PATH30_MASK

Definition at line 35 of file giaProp.c.

◆ GIA_PATH30_MASK [2/2]

#define GIA_PATH30_MASK

Definition at line 35 of file giaProp.c.

◆ GIA_ROOT_MASK

#define GIA_ROOT_MASK

Definition at line 31 of file giaProp.c.

◆ GIA_SAT_SHIFT

#define GIA_SAT_SHIFT   12

DECLARATIONS ///.

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

FileName [giaProp.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Scalable AIG package.]

Synopsis [Constraint propagation on the AIG.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

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

Revision [

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

]

Definition at line 30 of file giaProp.c.

Function Documentation

◆ Gia_SatPathCheckCutSat()

int Gia_SatPathCheckCutSat ( Gia_Obj_t * p)

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

Synopsis [Checks if the give cut is satisfied.]

Description []

SideEffects []

SeeAlso []

Definition at line 87 of file giaProp.c.

88{
89 int RetValue;
90 assert( Gia_SatObjIsRoot(p) );
91 Gia_SatObjXorRoot(p);
92 RetValue = Gia_SatPathCheckCutSat_rec( p );
93 Gia_SatObjXorRoot(p);
94 return RetValue;
95}
Cube * p
Definition exorList.c:222
int Gia_SatPathCheckCutSat_rec(Gia_Obj_t *p, int fCompl)
FUNCTION DEFINITIONS ///.
Definition giaProp.c:65
#define assert(ex)
Definition util_old.h:213
Here is the call graph for this function:

◆ Gia_SatPathCheckCutSat_rec()

int Gia_SatPathCheckCutSat_rec ( Gia_Obj_t * p,
int fCompl )

FUNCTION DEFINITIONS ///.

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

Synopsis [Checks if the give cut is satisfied.]

Description []

SideEffects []

SeeAlso []

Definition at line 65 of file giaProp.c.

66{
67 if ( Gia_SatObjIsRoot(p) )
68 return Gia_ObjIsAssigned(p) && Gia_SatObjValue(p) == fCompl;
69 if ( Gia_SatObjPath0(p) && !Gia_SatPathCheckCutSat_rec( Gia_ObjFanin0(p), fCompl ^ Gia_ObjFaninC0(p) ) )
70 return 0;
71 if ( Gia_SatObjPath1(p) && !Gia_SatPathCheckCutSat_rec( Gia_ObjFanin1(p), fCompl ^ Gia_ObjFaninC1(p) ) )
72 return 0;
73 return 1;
74}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Gia_SatPathStart()

int Gia_SatPathStart ( Gia_Obj_t * p)

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

Synopsis [Creates a feasible path from the node to a terminal.]

Description []

SideEffects []

SeeAlso []

Definition at line 160 of file giaProp.c.

161{
162 int RetValue;
163 assert( Gia_SatObjIsRoot(p) );
164 Gia_SatObjXorRoot(p);
165 RetValue = Gia_SatPathStart_rec( p, 0, 0 );
166 Gia_SatObjXorRoot(p);
167 return RetValue;
168}
int Gia_SatPathStart_rec(Gia_Obj_t *p, int fDiffs, int fCompl)
Definition giaProp.c:123
Here is the call graph for this function:

◆ Gia_SatPathStart_rec()

int Gia_SatPathStart_rec ( Gia_Obj_t * p,
int fDiffs,
int fCompl )

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

Synopsis [Creates a feasible path from the node to a terminal.]

Description []

SideEffects []

SeeAlso []

Definition at line 123 of file giaProp.c.

124{
125 if ( Gia_SatObjIsRoot(p) )
126 return fDiffs && (!Gia_ObjIsAssigned(p) || Gia_SatObjValue(p) != fCompl);
127 if ( fCompl == 0 )
128 {
129 if ( Gia_SatPathStart_rec( Gia_ObjFanin0(p), fDiffs + !Gia_SatObjPath0(p), fCompl ^ Gia_ObjFaninC0(p) ) &&
130 Gia_SatPathStart_rec( Gia_ObjFanin1(p), fDiffs + !Gia_SatObjPath1(p), fCompl ^ Gia_ObjFaninC1(p) ) )
131 return Gia_ObjSetDraftPath0(p) + Gia_ObjSetDraftPath1(p);
132 }
133 else
134 {
135 if ( Gia_SatPathStart_rec( Gia_ObjFanin0(p), fDiffs + !Gia_SatObjPath0(p), fCompl ^ Gia_ObjFaninC0(p) ) )
136 {
137 Gia_ObjUnsetDraftPath1(p);
138 return Gia_ObjSetDraftPath0(p);
139 }
140 if ( Gia_SatPathStart_rec( Gia_ObjFanin1(p), fDiffs + !Gia_SatObjPath1(p), fCompl ^ Gia_ObjFaninC1(p) ) )
141 {
142 Gia_ObjUnsetDraftPath0(p);
143 return Gia_ObjSetDraftPath1(p);
144 }
145 }
146 return 0;
147}
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Gia_SatPathUnbind_rec()

int Gia_SatPathUnbind_rec ( Gia_Obj_t * p)

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

Synopsis [Unbinds literals on the path.]

Description []

SideEffects []

SeeAlso []

Definition at line 108 of file giaProp.c.

109{
110}