abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ssc.h File Reference

Go to the source code of this file.

Data Structures

struct  Ssc_Pars_t_
 

Typedefs

typedef
typedefABC_NAMESPACE_HEADER_START
struct Ssc_Pars_t_ 
Ssc_Pars_t
 INCLUDES ///. More...
 

Functions

void Ssc_ManSetDefaultParams (Ssc_Pars_t *p)
 MACRO DEFINITIONS ///. More...
 
Gia_Man_tSsc_PerformSweeping (Gia_Man_t *pAig, Gia_Man_t *pCare, Ssc_Pars_t *pPars)
 
Gia_Man_tSsc_PerformSweepingConstr (Gia_Man_t *p, Ssc_Pars_t *pPars)
 

Typedef Documentation

typedef typedefABC_NAMESPACE_HEADER_START struct Ssc_Pars_t_ Ssc_Pars_t

INCLUDES ///.

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

FileName [ssc.h]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [SAT sweeping under constraints.]

Synopsis [External declarations.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - June 29, 2008.]

Revision [

Id:
ssc.h,v 1.00 2008/07/29 00:00:00 alanmi Exp

]PARAMETERS ///BASIC TYPES ///

Definition at line 43 of file ssc.h.

Function Documentation

void Ssc_ManSetDefaultParams ( Ssc_Pars_t p)

MACRO DEFINITIONS ///.

FUNCTION DECLARATIONS ///

MACRO DEFINITIONS ///.

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

FileName [sscCore.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [SAT sweeping under constraints.]

Synopsis [The core procedures.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - June 29, 2008.]

Revision [

Id:
sscCore.c,v 1.00 2008/07/29 00:00:00 alanmi Exp

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

Synopsis [This procedure sets default parameters.]

Description []

SideEffects []

SeeAlso []

Definition at line 46 of file sscCore.c.

47 {
48  memset( p, 0, sizeof(Ssc_Pars_t) );
49  p->nWords = 1; // the number of simulation words
50  p->nBTLimit = 1000; // conflict limit at a node
51  p->nSatVarMax = 5000; // the max number of SAT variables
52  p->nCallsRecycle = 100; // calls to perform before recycling SAT solver
53  p->fVerbose = 0; // verbose stats
54 }
char * memset()
static Llb_Mgr_t * p
Definition: llb3Image.c:950
typedefABC_NAMESPACE_HEADER_START struct Ssc_Pars_t_ Ssc_Pars_t
INCLUDES ///.
Definition: ssc.h:43
Gia_Man_t* Ssc_PerformSweeping ( Gia_Man_t pAig,
Gia_Man_t pCare,
Ssc_Pars_t pPars 
)

Definition at line 413 of file sscCore.c.

414 {
415  Gia_Man_t * pResult = Ssc_PerformSweepingInt( pAig, pCare, pPars );
416  if ( pPars->fVerify )
417  Ssc_PerformVerification( pAig, pResult, pCare );
418  return pResult;
419 }
Gia_Man_t * Ssc_PerformSweepingInt(Gia_Man_t *pAig, Gia_Man_t *pCare, Ssc_Pars_t *pPars)
Definition: sscCore.c:264
int Ssc_PerformVerification(Gia_Man_t *p0, Gia_Man_t *p1, Gia_Man_t *pC)
Definition: sscCore.c:223
Definition: gia.h:95
Gia_Man_t* Ssc_PerformSweepingConstr ( Gia_Man_t p,
Ssc_Pars_t pPars 
)

Definition at line 420 of file sscCore.c.

421 {
422  Gia_Man_t * pAig, * pCare, * pResult;
423  int i;
424  if ( pPars->fVerbose )
425  Abc_Print( 0, "SAT sweeping AIG with %d constraints.\n", p->nConstrs );
426  if ( p->nConstrs == 0 )
427  {
428  pAig = Gia_ManDup( p );
429  pCare = Gia_ManStart( Gia_ManCiNum(p) + 2 );
430  pCare->pName = Abc_UtilStrsav( "care" );
431  for ( i = 0; i < Gia_ManCiNum(p); i++ )
432  Gia_ManAppendCi( pCare );
433  Gia_ManAppendCo( pCare, 0 );
434  }
435  else
436  {
438  pAig = Gia_ManDupCones( p, Vec_IntArray(vOuts), Gia_ManPoNum(p) - p->nConstrs, 0 );
439  pCare = Gia_ManDupCones( p, Vec_IntArray(vOuts) + Gia_ManPoNum(p) - p->nConstrs, p->nConstrs, 0 );
440  Vec_IntFree( vOuts );
441  }
442  if ( pPars->fVerbose )
443  {
444  printf( "User AIG: " );
445  Gia_ManPrintStats( pAig, NULL );
446  printf( "Care AIG: " );
447  Gia_ManPrintStats( pCare, NULL );
448  }
449 
450  pAig = Gia_ManDupLevelized( pResult = pAig );
451  Gia_ManStop( pResult );
452  pResult = Ssc_PerformSweeping( pAig, pCare, pPars );
453  if ( pPars->fAppend )
454  {
455  Gia_ManDupAppendShare( pResult, pCare );
456  pResult->nConstrs = Gia_ManPoNum(pCare);
457  }
458  Gia_ManStop( pAig );
459  Gia_ManStop( pCare );
460  return pResult;
461 }
static int * Vec_IntArray(Vec_Int_t *p)
Definition: vecInt.h:328
Gia_Man_t * Gia_ManDupCones(Gia_Man_t *p, int *pPos, int nPos, int fTrimPis)
Definition: giaDup.c:2691
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
Definition: giaDup.c:552
void Gia_ManStop(Gia_Man_t *p)
Definition: giaMan.c:77
void Gia_ManPrintStats(Gia_Man_t *p, Gps_Par_t *pPars)
Definition: giaMan.c:389
static int Gia_ManPoNum(Gia_Man_t *p)
Definition: gia.h:386
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
Definition: gia.h:703
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
static int Gia_ManAppendCi(Gia_Man_t *p)
Definition: gia.h:583
static Vec_Int_t * Vec_IntStartNatural(int nSize)
Definition: bblif.c:192
int nConstrs
Definition: gia.h:117
char * pName
Definition: gia.h:97
Gia_Man_t * Ssc_PerformSweeping(Gia_Man_t *pAig, Gia_Man_t *pCare, Ssc_Pars_t *pPars)
Definition: sscCore.c:413
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
Definition: giaMan.c:52
static void Abc_Print(int level, const char *format,...)
Definition: abc_global.h:313
void Gia_ManDupAppendShare(Gia_Man_t *p, Gia_Man_t *pTwo)
Definition: giaDup.c:765
static int Gia_ManCiNum(Gia_Man_t *p)
Definition: gia.h:383
Definition: gia.h:95
Gia_Man_t * Gia_ManDupLevelized(Gia_Man_t *p)
Definition: giaDup.c:2812
static void Vec_IntFree(Vec_Int_t *p)
Definition: bblif.c:235
char * Abc_UtilStrsav(char *s)
Definition: starter.c:47