abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cov.h File Reference
#include "base/abc/abc.h"
#include "covInt.h"

Go to the source code of this file.

Data Structures

struct  Cov_Obj_t_
 
struct  Cov_Man_t_
 

Typedefs

typedef
typedefABC_NAMESPACE_HEADER_START
struct Cov_Man_t_ 
Cov_Man_t
 DECLARATIONS ///. More...
 
typedef struct Cov_Obj_t_ Cov_Obj_t
 

Functions

static Cov_Obj_tAbc_ObjGetStr (Abc_Obj_t *pObj)
 
static void Abc_ObjSetSupp (Abc_Obj_t *pObj, Vec_Int_t *vVec)
 
static Vec_Int_tAbc_ObjGetSupp (Abc_Obj_t *pObj)
 
static void Abc_ObjSetCover2 (Abc_Obj_t *pObj, Min_Cube_t *pCov)
 
static Min_Cube_tAbc_ObjGetCover2 (Abc_Obj_t *pObj)
 
static void Abc_ObjSetCover (Abc_Obj_t *pObj, Min_Cube_t *pCov, int Pol)
 
static Min_Cube_tAbc_ObjGetCover (Abc_Obj_t *pObj, int Pol)
 
Abc_Ntk_tAbc_NtkCovDerive (Cov_Man_t *p, Abc_Ntk_t *pNtk)
 FUNCTION DEFINITIONS ///. More...
 
Abc_Ntk_tAbc_NtkCovDeriveClean (Cov_Man_t *p, Abc_Ntk_t *pNtk)
 
Abc_Ntk_tAbc_NtkCovDeriveRegular (Cov_Man_t *p, Abc_Ntk_t *pNtk)
 
Abc_Ntk_tAbc_NtkSopEsopCover (Abc_Ntk_t *pNtk, int nFaninMax, int fUseEsop, int fUseSop, int fUseInvs, int fVerbose)
 FUNCTION DEFINITIONS ///. More...
 
Cov_Man_tCov_ManAlloc (Abc_Ntk_t *pNtk, int nFaninMax)
 DECLARATIONS ///. More...
 
void Cov_ManFree (Cov_Man_t *p)
 
void Abc_NodeCovDropData (Cov_Man_t *p, Abc_Obj_t *pObj)
 
Abc_Ntk_tAbc_NtkCovTestSop (Abc_Ntk_t *pNtk)
 

Typedef Documentation

typedef typedefABC_NAMESPACE_HEADER_START struct Cov_Man_t_ Cov_Man_t

DECLARATIONS ///.

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

FileName [cov.h]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Mapping into network of SOPs/ESOPs.]

Synopsis [External declarations.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

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

Revision [

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

]

Definition at line 34 of file cov.h.

typedef struct Cov_Obj_t_ Cov_Obj_t

Definition at line 35 of file cov.h.

Function Documentation

void Abc_NodeCovDropData ( Cov_Man_t p,
Abc_Obj_t pObj 
)

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

Synopsis [Drop the covers at the node.]

Description []

SideEffects []

SeeAlso []

Definition at line 126 of file covMan.c.

127 {
128  int nFanouts;
129  assert( p->vFanCounts );
130  nFanouts = Vec_IntEntry( p->vFanCounts, pObj->Id );
131  assert( nFanouts > 0 );
132  if ( --nFanouts == 0 )
133  {
134  Vec_IntFree( Abc_ObjGetSupp(pObj) );
135  Abc_ObjSetSupp( pObj, NULL );
136  Min_CoverRecycle( p->pManMin, Abc_ObjGetCover2(pObj) );
137  Abc_ObjSetCover2( pObj, NULL );
138  p->nSupps--;
139  }
140  Vec_IntWriteEntry( p->vFanCounts, pObj->Id, nFanouts );
141 }
static Vec_Int_t * Abc_ObjGetSupp(Abc_Obj_t *pObj)
Definition: cov.h:74
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static Min_Cube_t * Abc_ObjGetCover2(Abc_Obj_t *pObj)
Definition: cov.h:77
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:285
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
static void Abc_ObjSetCover2(Abc_Obj_t *pObj, Min_Cube_t *pCov)
Definition: cov.h:76
int Id
Definition: abc.h:132
#define assert(ex)
Definition: util_old.h:213
static void Min_CoverRecycle(Min_Man_t *p, Min_Cube_t *pCover)
Definition: covInt.h:205
static void Vec_IntFree(Vec_Int_t *p)
Definition: bblif.c:235
static void Abc_ObjSetSupp(Abc_Obj_t *pObj, Vec_Int_t *vVec)
Definition: cov.h:73
Abc_Ntk_t* Abc_NtkCovDerive ( Cov_Man_t p,
Abc_Ntk_t pNtk 
)

FUNCTION DEFINITIONS ///.

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

Synopsis [Derives the decomposed network.]

Description []

SideEffects []

SeeAlso []

Definition at line 183 of file covBuild.c.

184 {
185  Abc_Ntk_t * pNtkNew;
186  Abc_Obj_t * pObj;
187  int i;
188  assert( Abc_NtkIsStrash(pNtk) );
189  // perform strashing
190  pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP );
191  // reconstruct the network
192  Abc_NtkForEachCo( pNtk, pObj, i )
193  {
194  Abc_NtkCovDeriveNode_rec( p, pNtkNew, Abc_ObjFanin0(pObj), 0 );
195 // printf( "*** CO %s : %d -> %d \n", Abc_ObjName(pObj), pObj->pCopy->Id, Abc_ObjFanin0(pObj)->pCopy->Id );
196  }
197  // add the COs
198  Abc_NtkFinalize( pNtk, pNtkNew );
199  Abc_NtkLogicMakeSimpleCos( pNtkNew, 1 );
200  // make sure everything is okay
201  if ( !Abc_NtkCheck( pNtkNew ) )
202  {
203  printf( "Abc_NtkCovDerive: The network check has failed.\n" );
204  Abc_NtkDelete( pNtkNew );
205  return NULL;
206  }
207  return pNtkNew;
208 }
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
Definition: abc.h:251
static Llb_Mgr_t * p
Definition: llb3Image.c:950
#define Abc_NtkForEachCo(pNtk, pCo, i)
Definition: abc.h:519
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcCheck.c:61
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
Definition: abc.h:373
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:1233
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition: abcNtk.c:106
ABC_DLL void Abc_NtkFinalize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition: abcNtk.c:302
Abc_Obj_t * Abc_NtkCovDeriveNode_rec(Cov_Man_t *p, Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int Level)
Definition: covBuild.c:103
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
Definition: abcUtil.c:1047
#define assert(ex)
Definition: util_old.h:213
Abc_Ntk_t* Abc_NtkCovDeriveClean ( Cov_Man_t p,
Abc_Ntk_t pNtk 
)

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

Synopsis [Derives the decomposed network.]

Description [The resulting network contains only pure AND/OR/EXOR gates and inverters. This procedure is usedful to generate Verilog.]

SideEffects []

SeeAlso []

Definition at line 357 of file covBuild.c.

358 {
359  Abc_Ntk_t * pNtkNew;
360  Abc_Obj_t * pObj, * pNodeNew;
361  int i;
362  assert( Abc_NtkIsStrash(pNtk) );
363  // perform strashing
364  pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP );
365  // reconstruct the network
366  Abc_NtkForEachCo( pNtk, pObj, i )
367  {
368  pNodeNew = Abc_NtkCovDeriveNodeInv_rec( p, pNtkNew, Abc_ObjFanin0(pObj), Abc_ObjFaninC0(pObj) );
369  Abc_ObjAddFanin( pObj->pCopy, pNodeNew );
370  }
371  // add the COs
372  Abc_NtkLogicMakeSimpleCos( pNtkNew, 0 );
373  // make sure everything is okay
374  if ( !Abc_NtkCheck( pNtkNew ) )
375  {
376  printf( "Abc_NtkCovDeriveInv: The network check has failed.\n" );
377  Abc_NtkDelete( pNtkNew );
378  return NULL;
379  }
380  return pNtkNew;
381 }
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
Definition: abc.h:251
Abc_Obj_t * Abc_NtkCovDeriveNodeInv_rec(Cov_Man_t *p, Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCompl)
Definition: covBuild.c:300
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
Definition: abc.h:377
#define Abc_NtkForEachCo(pNtk, pCo, i)
Definition: abc.h:519
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcCheck.c:61
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
Definition: abc.h:373
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:1233
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Definition: abcFanio.c:84
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition: abcNtk.c:106
Abc_Obj_t * pCopy
Definition: abc.h:148
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
Definition: abcUtil.c:1047
#define assert(ex)
Definition: util_old.h:213
Abc_Ntk_t* Abc_NtkCovDeriveRegular ( Cov_Man_t p,
Abc_Ntk_t pNtk 
)

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

Synopsis [Derives the decomposed network.]

Description []

SideEffects []

SeeAlso []

Definition at line 503 of file covBuild.c.

504 {
505  Abc_Ntk_t * pNtkNew;
506  Abc_Obj_t * pObj, * pNodeNew;
507  int i;
508  assert( Abc_NtkIsStrash(pNtk) );
509  // perform strashing
510  pNtkNew = Abc_NtkStartFrom( pNtk, ABC_NTK_LOGIC, ABC_FUNC_SOP );
511  // reconstruct the network
512  if ( Abc_ObjFanoutNum(Abc_AigConst1(pNtk)) > 0 )
513  Abc_AigConst1(pNtk)->pCopy = Abc_NtkCreateNodeConst1(pNtkNew);
514  Abc_NtkForEachCo( pNtk, pObj, i )
515  {
516  pNodeNew = Abc_NtkCovDerive_rec( p, pNtkNew, Abc_ObjFanin0(pObj) );
517  if ( Abc_ObjFaninC0(pObj) )
518  {
519  if ( pNodeNew->pData && Abc_ObjFanoutNum(Abc_ObjFanin0(pObj)) == 1 )
520  Abc_SopComplement( (char *)pNodeNew->pData );
521  else
522  pNodeNew = Abc_NtkCreateNodeInv( pNtkNew, pNodeNew );
523  }
524  Abc_ObjAddFanin( pObj->pCopy, pNodeNew );
525  }
526  // add the COs
527  Abc_NtkLogicMakeSimpleCos( pNtkNew, 0 );
528  // make sure everything is okay
529  if ( !Abc_NtkCheck( pNtkNew ) )
530  {
531  printf( "Abc_NtkCovDerive: The network check has failed.\n" );
532  Abc_NtkDelete( pNtkNew );
533  return NULL;
534  }
535  return pNtkNew;
536 }
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
Definition: abc.h:251
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
Definition: abcAig.c:683
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
Definition: abc.h:365
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
Definition: abcObj.c:633
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
Definition: abc.h:377
#define Abc_NtkForEachCo(pNtk, pCo, i)
Definition: abc.h:519
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcCheck.c:61
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
Definition: abc.h:373
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:1233
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Definition: abcFanio.c:84
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition: abcNtk.c:106
Abc_Obj_t * pCopy
Definition: abc.h:148
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
Definition: abcObj.c:662
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
Definition: abcUtil.c:1047
ABC_DLL void Abc_SopComplement(char *pSop)
Definition: abcSop.c:600
#define assert(ex)
Definition: util_old.h:213
void * pData
Definition: abc.h:145
Abc_Obj_t * Abc_NtkCovDerive_rec(Cov_Man_t *p, Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj)
Definition: covBuild.c:396
Abc_Ntk_t* Abc_NtkCovTestSop ( Abc_Ntk_t pNtk)
Abc_Ntk_t* Abc_NtkSopEsopCover ( Abc_Ntk_t pNtk,
int  nFaninMax,
int  fUseEsop,
int  fUseSop,
int  fUseInvs,
int  fVerbose 
)

FUNCTION DEFINITIONS ///.

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

Synopsis [Performs decomposition.]

Description []

SideEffects []

SeeAlso []

Definition at line 60 of file covCore.c.

61 {
62  Abc_Ntk_t * pNtkNew;
63  Cov_Man_t * p;
64 
65  assert( Abc_NtkIsStrash(pNtk) );
66 
67  // create the manager
68  p = Cov_ManAlloc( pNtk, nFaninMax );
69  p->fUseEsop = fUseEsop;
70  p->fUseSop = fUseSop;
71  pNtk->pManCut = p;
72 
73  // perform mapping
74  Abc_NtkCovCovers( p, pNtk, fVerbose );
75 
76  // derive the final network
77 // if ( fUseInvs )
78 // pNtkNew = Abc_NtkCovDeriveClean( p, pNtk );
79 // else
80 // pNtkNew = Abc_NtkCovDerive( p, pNtk );
81 // pNtkNew = NULL;
82  pNtkNew = Abc_NtkCovDeriveRegular( p, pNtk );
83 
84  Cov_ManFree( p );
85  pNtk->pManCut = NULL;
86 
87  // make sure that everything is okay
88  if ( pNtkNew && !Abc_NtkCheck( pNtkNew ) )
89  {
90  printf( "Abc_NtkCov: The network check has failed.\n" );
91  Abc_NtkDelete( pNtkNew );
92  return NULL;
93  }
94  return pNtkNew;
95 }
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
Definition: abc.h:251
static Llb_Mgr_t * p
Definition: llb3Image.c:950
static ABC_NAMESPACE_IMPL_START void Abc_NtkCovCovers(Cov_Man_t *p, Abc_Ntk_t *pNtk, int fVerbose)
DECLARATIONS ///.
Definition: covCore.c:108
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcCheck.c:61
Cov_Man_t * Cov_ManAlloc(Abc_Ntk_t *pNtk, int nFaninMax)
DECLARATIONS ///.
Definition: covMan.c:45
Abc_Ntk_t * Abc_NtkCovDeriveRegular(Cov_Man_t *p, Abc_Ntk_t *pNtk)
Definition: covBuild.c:503
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:1233
void Cov_ManFree(Cov_Man_t *p)
Definition: covMan.c:92
void * pManCut
Definition: abc.h:193
typedefABC_NAMESPACE_HEADER_START struct Cov_Man_t_ Cov_Man_t
DECLARATIONS ///.
Definition: cov.h:34
#define assert(ex)
Definition: util_old.h:213
static Min_Cube_t* Abc_ObjGetCover ( Abc_Obj_t pObj,
int  Pol 
)
inlinestatic

Definition at line 80 of file cov.h.

80 { return Abc_ObjGetStr(pObj)->pCover[Pol]; }
Min_Cube_t * pCover[3]
Definition: cov.h:40
static Cov_Obj_t * Abc_ObjGetStr(Abc_Obj_t *pObj)
Definition: cov.h:71
static Min_Cube_t* Abc_ObjGetCover2 ( Abc_Obj_t pObj)
inlinestatic

Definition at line 77 of file cov.h.

77 { return Abc_ObjGetStr(pObj)->pCover[2]; }
Min_Cube_t * pCover[3]
Definition: cov.h:40
static Cov_Obj_t * Abc_ObjGetStr(Abc_Obj_t *pObj)
Definition: cov.h:71
static Cov_Obj_t* Abc_ObjGetStr ( Abc_Obj_t pObj)
inlinestatic

Definition at line 71 of file cov.h.

71 { return (Cov_Obj_t *)Vec_PtrEntry(((Cov_Man_t *)pObj->pNtk->pManCut)->vObjStrs, pObj->Id); }
void * pManCut
Definition: abc.h:193
Definition: cov.h:38
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Definition: vecPtr.h:362
Abc_Ntk_t * pNtk
Definition: abc.h:130
int Id
Definition: abc.h:132
typedefABC_NAMESPACE_HEADER_START struct Cov_Man_t_ Cov_Man_t
DECLARATIONS ///.
Definition: cov.h:34
static Vec_Int_t* Abc_ObjGetSupp ( Abc_Obj_t pObj)
inlinestatic

Definition at line 74 of file cov.h.

74 { return Abc_ObjGetStr(pObj)->vSupp; }
Vec_Int_t * vSupp
Definition: cov.h:41
static Cov_Obj_t * Abc_ObjGetStr(Abc_Obj_t *pObj)
Definition: cov.h:71
static void Abc_ObjSetCover ( Abc_Obj_t pObj,
Min_Cube_t pCov,
int  Pol 
)
inlinestatic

Definition at line 79 of file cov.h.

79 { Abc_ObjGetStr(pObj)->pCover[Pol] = pCov; }
Min_Cube_t * pCover[3]
Definition: cov.h:40
static Cov_Obj_t * Abc_ObjGetStr(Abc_Obj_t *pObj)
Definition: cov.h:71
static void Abc_ObjSetCover2 ( Abc_Obj_t pObj,
Min_Cube_t pCov 
)
inlinestatic

Definition at line 76 of file cov.h.

76 { Abc_ObjGetStr(pObj)->pCover[2] = pCov; }
Min_Cube_t * pCover[3]
Definition: cov.h:40
static Cov_Obj_t * Abc_ObjGetStr(Abc_Obj_t *pObj)
Definition: cov.h:71
static void Abc_ObjSetSupp ( Abc_Obj_t pObj,
Vec_Int_t vVec 
)
inlinestatic

Definition at line 73 of file cov.h.

73 { Abc_ObjGetStr(pObj)->vSupp = vVec; }
Vec_Int_t * vSupp
Definition: cov.h:41
static Cov_Obj_t * Abc_ObjGetStr(Abc_Obj_t *pObj)
Definition: cov.h:71
Cov_Man_t* Cov_ManAlloc ( Abc_Ntk_t pNtk,
int  nFaninMax 
)

DECLARATIONS ///.

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

FileName [covMan.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Mapping into network of SOPs/ESOPs.]

Synopsis [Decomposition manager.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

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

Revision [

Id:
covMan.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 covMan.c.

46 {
47  Cov_Man_t * pMan;
48  Cov_Obj_t * pMem;
49  Abc_Obj_t * pObj;
50  int i;
51  assert( pNtk->pManCut == NULL );
52 
53  // start the manager
54  pMan = ABC_ALLOC( Cov_Man_t, 1 );
55  memset( pMan, 0, sizeof(Cov_Man_t) );
56  pMan->nFaninMax = nFaninMax;
57  pMan->nCubesMax = 2 * pMan->nFaninMax;
58  pMan->nWords = Abc_BitWordNum( nFaninMax * 2 );
59 
60  // get the cubes
61  pMan->vComTo0 = Vec_IntAlloc( 2*nFaninMax );
62  pMan->vComTo1 = Vec_IntAlloc( 2*nFaninMax );
63  pMan->vPairs0 = Vec_IntAlloc( nFaninMax );
64  pMan->vPairs1 = Vec_IntAlloc( nFaninMax );
65  pMan->vTriv0 = Vec_IntAlloc( 1 ); Vec_IntPush( pMan->vTriv0, -1 );
66  pMan->vTriv1 = Vec_IntAlloc( 1 ); Vec_IntPush( pMan->vTriv1, -1 );
67 
68  // allocate memory for object structures
69  pMan->pMemory = pMem = ABC_ALLOC( Cov_Obj_t, sizeof(Cov_Obj_t) * Abc_NtkObjNumMax(pNtk) );
70  memset( pMem, 0, sizeof(Cov_Obj_t) * Abc_NtkObjNumMax(pNtk) );
71  // allocate storage for the pointers to the memory
72  pMan->vObjStrs = Vec_PtrAlloc( Abc_NtkObjNumMax(pNtk) );
73  Vec_PtrFill( pMan->vObjStrs, Abc_NtkObjNumMax(pNtk), NULL );
74  Abc_NtkForEachObj( pNtk, pObj, i )
75  Vec_PtrWriteEntry( pMan->vObjStrs, i, pMem + i );
76  // create the cube manager
77  pMan->pManMin = Min_ManAlloc( nFaninMax );
78  return pMan;
79 }
char * memset()
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
Definition: abc.h:284
static void Vec_PtrFill(Vec_Ptr_t *p, int nSize, void *Entry)
Definition: vecPtr.h:449
#define ABC_ALLOC(type, num)
Definition: abc_global.h:229
Min_Man_t * Min_ManAlloc(int nVars)
DECLARATIONS ///.
Definition: covMinMan.c:45
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Definition: bblif.c:149
void * pManCut
Definition: abc.h:193
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Definition: bblif.c:468
static void Vec_PtrWriteEntry(Vec_Ptr_t *p, int i, void *Entry)
Definition: vecPtr.h:396
Definition: cov.h:38
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Definition: vecPtr.h:83
typedefABC_NAMESPACE_HEADER_START struct Cov_Man_t_ Cov_Man_t
DECLARATIONS ///.
Definition: cov.h:34
static int Abc_BitWordNum(int nBits)
Definition: abc_global.h:255
#define assert(ex)
Definition: util_old.h:213
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
Definition: abc.h:446
void Cov_ManFree ( Cov_Man_t p)

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

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 92 of file covMan.c.

93 {
94  Vec_Int_t * vSupp;
95  int i;
96  for ( i = 0; i < p->vObjStrs->nSize; i++ )
97  {
98  vSupp = ((Cov_Obj_t *)p->vObjStrs->pArray[i])->vSupp;
99  if ( vSupp ) Vec_IntFree( vSupp );
100  }
101 
102  Min_ManFree( p->pManMin );
103  Vec_PtrFree( p->vObjStrs );
104  Vec_IntFree( p->vFanCounts );
105  Vec_IntFree( p->vTriv0 );
106  Vec_IntFree( p->vTriv1 );
107  Vec_IntFree( p->vComTo0 );
108  Vec_IntFree( p->vComTo1 );
109  Vec_IntFree( p->vPairs0 );
110  Vec_IntFree( p->vPairs1 );
111  ABC_FREE( p->pMemory );
112  ABC_FREE( p );
113 }
static Llb_Mgr_t * p
Definition: llb3Image.c:950
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
Definition: cov.h:38
#define ABC_FREE(obj)
Definition: abc_global.h:232
static void Vec_IntFree(Vec_Int_t *p)
Definition: bblif.c:235
static void Vec_PtrFree(Vec_Ptr_t *p)
Definition: vecPtr.h:223
void Min_ManFree(Min_Man_t *p)
Definition: covMinMan.c:104