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

Go to the source code of this file.

Typedefs

typedef
typedefABC_NAMESPACE_HEADER_START
struct Rsb_Man_t_ 
Rsb_Man_t
 INCLUDES ///. More...
 

Functions

Rsb_Man_tRsb_ManAlloc (int nLeafMax, int nDivMax, int nDecMax, int fVerbose)
 MACRO DEFINITIONS ///. More...
 
void Rsb_ManFree (Rsb_Man_t *p)
 
Vec_Int_tRsb_ManGetFanins (Rsb_Man_t *p)
 
Vec_Int_tRsb_ManGetFaninsOld (Rsb_Man_t *p)
 
int Rsb_ManPerformResub6 (Rsb_Man_t *p, int nVars, word uTruth, Vec_Wrd_t *vDivTruths, word *puTruth0, word *puTruth1, int fVerbose)
 

Typedef Documentation

typedef typedefABC_NAMESPACE_HEADER_START struct Rsb_Man_t_ Rsb_Man_t

INCLUDES ///.

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

FileName [rsb.h]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Truth-table based resubstitution.]

Synopsis [External declarations.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

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

Revision [

Id:
rsb.h,v 1.00 2005/06/20 00:00:00 alanmi Exp

]PARAMETERS ///BASIC TYPES ///

Definition at line 39 of file rsb.h.

Function Documentation

Rsb_Man_t* Rsb_ManAlloc ( int  nLeafMax,
int  nDivMax,
int  nDecMax,
int  fVerbose 
)

MACRO DEFINITIONS ///.

FUNCTION DECLARATIONS ///

MACRO DEFINITIONS ///.

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

FileName [rsbMan.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Truth-table based resubstitution.]

Synopsis [Manager maintenance.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

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

Revision [

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

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

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 45 of file rsbMan.c.

46 {
47  Rsb_Man_t * p;
48  assert( nLeafMax <= 20 );
49  assert( nDivMax <= 200 );
50  p = ABC_CALLOC( Rsb_Man_t, 1 );
51  p->nLeafMax = nLeafMax;
52  p->nDivMax = nDivMax;
53  p->nDecMax = nDecMax;
54  p->fVerbose = fVerbose;
55  // decomposition
56  p->vCexes = Vec_WrdAlloc( nDivMax + 150 );
57  p->vDecPats = Vec_IntAlloc( Abc_TtWordNum(nLeafMax) );
58  p->vFanins = Vec_IntAlloc( 10 );
59  p->vFaninsOld = Vec_IntAlloc( 10 );
60  p->vTries = Vec_IntAlloc( 10 );
61  return p;
62 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
typedefABC_NAMESPACE_HEADER_START struct Rsb_Man_t_ Rsb_Man_t
INCLUDES ///.
Definition: rsb.h:39
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Definition: bblif.c:149
static Vec_Wrd_t * Vec_WrdAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Definition: vecWrd.h:80
static int Abc_TtWordNum(int nVars)
Definition: utilTruth.h:169
#define ABC_CALLOC(type, num)
Definition: abc_global.h:230
#define assert(ex)
Definition: util_old.h:213
void Rsb_ManFree ( Rsb_Man_t p)

Definition at line 63 of file rsbMan.c.

64 {
65  Vec_WrdFree( p->vCexes );
66  Vec_IntFree( p->vDecPats );
67  Vec_IntFree( p->vFanins );
68  Vec_IntFree( p->vFaninsOld );
69  Vec_IntFree( p->vTries );
70  ABC_FREE( p );
71 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static void Vec_WrdFree(Vec_Wrd_t *p)
Definition: vecWrd.h:260
#define ABC_FREE(obj)
Definition: abc_global.h:232
static void Vec_IntFree(Vec_Int_t *p)
Definition: bblif.c:235
Vec_Int_t* Rsb_ManGetFanins ( Rsb_Man_t p)

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

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 84 of file rsbMan.c.

85 {
86  return p->vFanins;
87 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
Vec_Int_t* Rsb_ManGetFaninsOld ( Rsb_Man_t p)

Definition at line 88 of file rsbMan.c.

89 {
90  return p->vFaninsOld;
91 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
int Rsb_ManPerformResub6 ( Rsb_Man_t p,
int  nVarsAll,
word  uTruth,
Vec_Wrd_t vDivTruths,
word puTruth0,
word puTruth1,
int  fVerbose 
)

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

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 694 of file rsbDec6.c.

695 {
696  word * pGs[200];
697  unsigned uTruthRes;
698  int i, nVars, nGs = Vec_WrdSize(vDivTruths);
699  assert( nGs < 200 );
700  for ( i = 0; i < nGs; i++ )
701  pGs[i] = Vec_WrdEntryP(vDivTruths,i);
702  uTruthRes = Rsb_DecPerformInt( p, nVarsAll, &uTruth, pGs, nGs, nGs, 0 );
703  if ( uTruthRes == 0 )
704  return 0;
705 
706  if ( fVerbose )
707  Rsb_DecPrintFunc( p, uTruthRes, &uTruth, pGs, nGs, nVarsAll );
708  if ( fVerbose )
709  Rsb_DecPrintTable( Vec_WrdArray(p->vCexes), nGs, nGs, p->vTries );
710 
711  nVars = Vec_IntSize(p->vFanins);
712  *puTruth0 = Abc_Tt6Stretch( uTruthRes, nVars );
713  *puTruth1 = Abc_Tt6Stretch( uTruthRes >> (1 << nVars), nVars );
714  return 1;
715 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
unsigned Rsb_DecPerformInt(Rsb_Man_t *p, int nVars, word *f, word **g, int nGs, int nGsAll, int fFindAll)
Definition: rsbDec6.c:337
static int Vec_WrdSize(Vec_Wrd_t *p)
Definition: vecWrd.h:336
unsigned __int64 word
DECLARATIONS ///.
Definition: kitPerm.c:36
void Rsb_DecPrintFunc(Rsb_Man_t *p, unsigned Truth4, word *f, word **ppGs, int nGs, int nVarsAll)
Definition: rsbDec6.c:516
static word Abc_Tt6Stretch(word t, int nVars)
Definition: utilTruth.h:708
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
static word * Vec_WrdArray(Vec_Wrd_t *p)
Definition: vecWrd.h:316
void Rsb_DecPrintTable(word *pCexes, int nGs, int nGsAll, Vec_Int_t *vTries)
Definition: rsbDec6.c:196
#define assert(ex)
Definition: util_old.h:213
static word * Vec_WrdEntryP(Vec_Wrd_t *p, int i)
Definition: vecWrd.h:401