ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
ssc.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Ssc_Pars_t_
 

Typedefs

typedef typedefABC_NAMESPACE_HEADER_START struct Ssc_Pars_t_ Ssc_Pars_t
 INCLUDES ///.
 

Functions

void Ssc_ManSetDefaultParams (Ssc_Pars_t *p)
 MACRO DEFINITIONS ///.
 
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

◆ Ssc_Pars_t

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

◆ Ssc_ManSetDefaultParams()

void Ssc_ManSetDefaultParams ( Ssc_Pars_t * p)
extern

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}
Cube * p
Definition exorList.c:222
typedefABC_NAMESPACE_HEADER_START struct Ssc_Pars_t_ Ssc_Pars_t
INCLUDES ///.
Definition ssc.h:43
char * memset()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ssc_PerformSweeping()

Gia_Man_t * Ssc_PerformSweeping ( Gia_Man_t * pAig,
Gia_Man_t * pCare,
Ssc_Pars_t * pPars )
extern

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}
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
int Ssc_PerformVerification(Gia_Man_t *p0, Gia_Man_t *p1, Gia_Man_t *pC)
Definition sscCore.c:223
Gia_Man_t * Ssc_PerformSweepingInt(Gia_Man_t *pAig, Gia_Man_t *pCare, Ssc_Pars_t *pPars)
Definition sscCore.c:264
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Ssc_PerformSweepingConstr()

Gia_Man_t * Ssc_PerformSweepingConstr ( Gia_Man_t * p,
Ssc_Pars_t * pPars )
extern

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 {
437 Vec_Int_t * vOuts = Vec_IntStartNatural( Gia_ManPoNum(p) );
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}
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
void Gia_ManStop(Gia_Man_t *p)
Definition giaMan.c:82
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
Definition giaDup.c:720
Gia_Man_t * Gia_ManStart(int nObjsMax)
FUNCTION DEFINITIONS ///.
Definition giaMan.c:57
Gia_Man_t * Gia_ManDupCones(Gia_Man_t *p, int *pPos, int nPos, int fTrimPis)
Definition giaDup.c:3880
Gia_Man_t * Gia_ManDupLevelized(Gia_Man_t *p)
Definition giaDup.c:4135
void Gia_ManPrintStats(Gia_Man_t *p, Gps_Par_t *pPars)
Definition giaMan.c:495
void Gia_ManDupAppendShare(Gia_Man_t *p, Gia_Man_t *pTwo)
Definition giaDup.c:1156
Gia_Man_t * Ssc_PerformSweeping(Gia_Man_t *pAig, Gia_Man_t *pCare, Ssc_Pars_t *pPars)
Definition sscCore.c:413
char * pName
Definition gia.h:99
int nConstrs
Definition gia.h:122
Here is the call graph for this function:
Here is the caller graph for this function: