Go to the source code of this file.
|
ABC_NAMESPACE_IMPL_START
Pdr_Set_t * | Pdr_SetAlloc (int nSize) |
| DECLARATIONS ///. More...
|
|
Pdr_Set_t * | Pdr_SetCreate (Vec_Int_t *vLits, Vec_Int_t *vPiLits) |
|
Pdr_Set_t * | Pdr_SetCreateFrom (Pdr_Set_t *pSet, int iRemove) |
|
Pdr_Set_t * | Pdr_SetCreateSubset (Pdr_Set_t *pSet, int *pLits, int nLits) |
|
Pdr_Set_t * | Pdr_SetDup (Pdr_Set_t *pSet) |
|
Pdr_Set_t * | Pdr_SetRef (Pdr_Set_t *p) |
|
void | Pdr_SetDeref (Pdr_Set_t *p) |
|
void | Pdr_SetPrint (FILE *pFile, Pdr_Set_t *p, int nRegs, Vec_Int_t *vFlopCounts) |
|
int | Pdr_SetContains (Pdr_Set_t *pOld, Pdr_Set_t *pNew) |
|
int | Pdr_SetContainsSimple (Pdr_Set_t *pOld, Pdr_Set_t *pNew) |
|
int | Pdr_SetIsInit (Pdr_Set_t *pCube, int iRemove) |
|
int | Pdr_SetCompare (Pdr_Set_t **pp1, Pdr_Set_t **pp2) |
|
Pdr_Obl_t * | Pdr_OblStart (int k, int prio, Pdr_Set_t *pState, Pdr_Obl_t *pNext) |
|
Pdr_Obl_t * | Pdr_OblRef (Pdr_Obl_t *p) |
|
void | Pdr_OblDeref (Pdr_Obl_t *p) |
|
int | Pdr_QueueIsEmpty (Pdr_Man_t *p) |
|
Pdr_Obl_t * | Pdr_QueueHead (Pdr_Man_t *p) |
|
Pdr_Obl_t * | Pdr_QueuePop (Pdr_Man_t *p) |
|
void | Pdr_QueueClean (Pdr_Man_t *p) |
|
void | Pdr_QueuePush (Pdr_Man_t *p, Pdr_Obl_t *pObl) |
|
void | Pdr_QueuePrint (Pdr_Man_t *p) |
|
void | Pdr_QueueStop (Pdr_Man_t *p) |
|
static int | Pdr_ObjSatValue (Aig_Man_t *pAig, Aig_Obj_t *pNode, int fCompl) |
|
int | Pdr_NtkFindSatAssign_rec (Aig_Man_t *pAig, Aig_Obj_t *pNode, int Value, Pdr_Set_t *pCube, int Heur) |
|
int | Pdr_ManCubeJust (Pdr_Man_t *p, int k, Pdr_Set_t *pCube) |
|
Function*************************************************************
Synopsis [Returns 1 if SAT assignment is found; 0 otherwise.]
Description []
SideEffects []
SeeAlso []
Definition at line 688 of file pdrUtil.c.
693 for ( i = 0; i < 4; i++ )
699 for ( v = 0; v < pCube->nLits; v++ )
701 if ( pCube->Lits[v] == -1 )
708 if ( v < pCube->nLits )
static int lit_var(lit l)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
static void Vec_IntSelectSort(int *pArray, int nSize)
int Pdr_NtkFindSatAssign_rec(Aig_Man_t *pAig, Aig_Obj_t *pNode, int Value, Pdr_Set_t *pCube, int Heur)
static Aig_Obj_t * Saig_ManLi(Aig_Man_t *p, int i)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
int Pdr_ManCheckContainment(Pdr_Man_t *p, int k, Pdr_Set_t *pSet)
static int lit_sign(lit l)
int Pdr_SetContainsSimple(Pdr_Set_t *pOld, Pdr_Set_t *pNew)
Function*************************************************************
Synopsis [Recursively searched for a satisfying assignment.]
Description []
SideEffects []
SeeAlso []
Definition at line 626 of file pdrUtil.c.
632 return ((
int)pNode->
fMarkA == Value);
643 pCube->Sign |= ((
word)1 << (pCube->Lits[pCube->nLits-1] % 63));
static int Saig_ObjIsLo(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Abc_Var2Lit(int Var, int fCompl)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Pdr_ObjSatValue(Aig_Man_t *pAig, Aig_Obj_t *pNode, int fCompl)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
int Pdr_NtkFindSatAssign_rec(Aig_Man_t *pAig, Aig_Obj_t *pNode, int Value, Pdr_Set_t *pCube, int Heur)
unsigned __int64 word
DECLARATIONS ///.
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
static int Saig_ManPiNum(Aig_Man_t *p)
MACRO DEFINITIONS ///.
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
static int Aig_ObjId(Aig_Obj_t *pObj)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
static int Aig_ObjCioId(Aig_Obj_t *pObj)
Function*************************************************************
Synopsis [Returns value (0 or 1) or X if unassigned.]
Description []
SideEffects []
SeeAlso []
Definition at line 608 of file pdrUtil.c.
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 437 of file pdrUtil.c.
439 if ( --p->
nRefs == 0 )
void Pdr_SetDeref(Pdr_Set_t *p)
void Pdr_OblDeref(Pdr_Obl_t *p)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 420 of file pdrUtil.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 396 of file pdrUtil.c.
#define ABC_ALLOC(type, num)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 513 of file pdrUtil.c.
Pdr_Obl_t * Pdr_QueuePop(Pdr_Man_t *p)
void Pdr_OblDeref(Pdr_Obl_t *p)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 475 of file pdrUtil.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 459 of file pdrUtil.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 491 of file pdrUtil.c.
void Pdr_OblDeref(Pdr_Obl_t *p)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 562 of file pdrUtil.c.
static void Abc_Print(int level, const char *format,...)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 532 of file pdrUtil.c.
static int Abc_MaxInt(int a, int b)
Pdr_Obl_t * Pdr_OblRef(Pdr_Obl_t *p)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 580 of file pdrUtil.c.
int Pdr_QueueIsEmpty(Pdr_Man_t *p)
Pdr_Obl_t * Pdr_QueuePop(Pdr_Man_t *p)
void Pdr_OblDeref(Pdr_Obl_t *p)
DECLARATIONS ///.
CFile****************************************************************
FileName [pdrUtil.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Property driven reachability.]
Synopsis [Various utilities.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - November 20, 2010.]
Revision [
- Id:
- pdrUtil.c,v 1.00 2010/11/20 00:00:00 alanmi Exp
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 46 of file pdrUtil.c.
49 assert( nSize >= 0 && nSize < (1<<30) );
typedefABC_NAMESPACE_HEADER_START struct Pdr_Set_t_ Pdr_Set_t
INCLUDES ///.
#define ABC_CALLOC(type, num)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 366 of file pdrUtil.c.
371 for ( i = 0; i < p1->nLits && i < p2->nLits; i++ )
373 if ( p1->Lits[i] > p2->Lits[i] )
375 if ( p1->Lits[i] < p2->Lits[i] )
378 if ( i == p1->nLits && i < p2->nLits )
380 if ( i < p1->nLits && i == p2->nLits )
typedefABC_NAMESPACE_HEADER_START struct Pdr_Set_t_ Pdr_Set_t
INCLUDES ///.
Function*************************************************************
Synopsis [Return 1 if pOld set-theoretically contains pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 263 of file pdrUtil.c.
265 int * pOldInt, * pNewInt;
266 assert( pOld->nLits > 0 );
267 assert( pNew->nLits > 0 );
268 if ( pOld->nLits < pNew->nLits )
270 if ( (pOld->Sign & pNew->Sign) != pNew->Sign )
272 pOldInt = pOld->Lits + pOld->nLits - 1;
273 pNewInt = pNew->Lits + pNew->nLits - 1;
274 while ( pNew->Lits <= pNewInt )
276 if ( pOld->Lits > pOldInt )
280 if ( *pNewInt == *pOldInt )
281 pNewInt--, pOldInt--;
282 else if ( *pNewInt < *pOldInt )
Function*************************************************************
Synopsis [Return 1 if pOld set-theoretically contains pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 301 of file pdrUtil.c.
303 int * pOldInt, * pNewInt;
304 assert( pOld->nLits > 0 );
305 assert( pNew->nLits > 0 );
306 pOldInt = pOld->Lits + pOld->nLits - 1;
307 pNewInt = pNew->Lits + pNew->nLits - 1;
308 while ( pNew->Lits <= pNewInt )
311 if ( *pNewInt == -1 )
316 if ( pOld->Lits > pOldInt )
320 if ( *pNewInt == *pOldInt )
321 pNewInt--, pOldInt--;
322 else if ( *pNewInt < *pOldInt )
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 65 of file pdrUtil.c.
75 for ( i = 0; i < p->nLits; i++ )
78 p->Sign |= ((
word)1 << (p->Lits[i] % 63));
82 for ( i = p->nLits; i < p->
nTotal; i++ )
#define ABC_ALLOC(type, num)
static void Vec_IntSelectSort(int *pArray, int nSize)
static int Vec_IntEntry(Vec_Int_t *p, int i)
unsigned __int64 word
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Pdr_Set_t_ Pdr_Set_t
INCLUDES ///.
static int Vec_IntSize(Vec_Int_t *p)
int nTotal
DECLARATIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 98 of file pdrUtil.c.
102 assert( iRemove >= 0 && iRemove < pSet->nLits );
104 p->nLits = pSet->nLits - 1;
105 p->nTotal = pSet->nTotal - 1;
108 for ( i = 0; i < pSet->nTotal; i++ )
112 p->Lits[k++] = pSet->Lits[i];
113 if ( i >= pSet->nLits )
115 p->Sign |= ((
word)1 << (pSet->Lits[i] % 63));
#define ABC_ALLOC(type, num)
unsigned __int64 word
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Pdr_Set_t_ Pdr_Set_t
INCLUDES ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 132 of file pdrUtil.c.
136 assert( nLits >= 0 && nLits <= pSet->nLits );
139 p->nTotal = nLits + pSet->nTotal - pSet->nLits;
142 for ( i = 0; i < nLits; i++ )
145 p->Lits[k++] = pLits[i];
146 p->Sign |= ((
word)1 << (pLits[i] % 63));
149 for ( i = pSet->nLits; i < pSet->
nTotal; i++ )
150 p->Lits[k++] = pSet->Lits[i];
#define ABC_ALLOC(type, num)
static void Vec_IntSelectSort(int *pArray, int nSize)
unsigned __int64 word
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Pdr_Set_t_ Pdr_Set_t
INCLUDES ///.
int nTotal
DECLARATIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 208 of file pdrUtil.c.
210 if ( --
p->nRefs == 0 )
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 166 of file pdrUtil.c.
171 p->nLits = pSet->nLits;
172 p->nTotal = pSet->nTotal;
174 p->Sign = pSet->Sign;
175 for ( i = 0; i < pSet->nTotal; i++ )
176 p->Lits[i] = pSet->Lits[i];
#define ABC_ALLOC(type, num)
typedefABC_NAMESPACE_HEADER_START struct Pdr_Set_t_ Pdr_Set_t
INCLUDES ///.
int Pdr_SetIsInit |
( |
Pdr_Set_t * |
pCube, |
|
|
int |
iRemove |
|
) |
| |
Function*************************************************************
Synopsis [Return 1 if the state cube contains init state (000...0).]
Description []
SideEffects []
SeeAlso []
Definition at line 341 of file pdrUtil.c.
344 for ( i = 0; i < pCube->nLits; i++ )
346 assert( pCube->Lits[i] != -1 );
349 if (
lit_sign( pCube->Lits[i] ) == 0 )
static int lit_sign(lit l)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 225 of file pdrUtil.c.
230 for ( i = 0; i < nRegs; i++ )
233 for ( i = 0; i <
p->nLits; i++ )
235 if (
p->Lits[i] == -1 )
245 pBuff[k++] = pBuff[i];
248 fprintf( pFile, "%s", pBuff );
static int lit_var(lit l)
#define ABC_ALLOC(type, num)
static int lit_sign(lit l)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 191 of file pdrUtil.c.