ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
covMan.c File Reference
#include "cov.h"
Include dependency graph for covMan.c:

Go to the source code of this file.

Functions

ABC_NAMESPACE_IMPL_START Cov_Man_tCov_ManAlloc (Abc_Ntk_t *pNtk, int nFaninMax, int nCubesMax)
 DECLARATIONS ///.
 
void Cov_ManFree (Cov_Man_t *p)
 
void Abc_NodeCovDropData (Cov_Man_t *p, Abc_Obj_t *pObj)
 

Function Documentation

◆ Abc_NodeCovDropData()

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}
Cube * p
Definition exorList.c:222
int Id
Definition abc.h:132
#define assert(ex)
Definition util_old.h:213

◆ Cov_ManAlloc()

ABC_NAMESPACE_IMPL_START Cov_Man_t * Cov_ManAlloc ( Abc_Ntk_t * pNtk,
int nFaninMax,
int nCubesMax )

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 = nCubesMax;
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}
struct Abc_Obj_t_ Abc_Obj_t
Definition abc.h:116
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
Definition abc.h:449
#define ABC_ALLOC(type, num)
Definition abc_global.h:264
Min_Man_t * Min_ManAlloc(int nVars)
DECLARATIONS ///.
Definition covMinMan.c:45
typedefABC_NAMESPACE_HEADER_START struct Cov_Man_t_ Cov_Man_t
DECLARATIONS ///.
Definition cov.h:34
struct Cov_Obj_t_ Cov_Obj_t
Definition cov.h:35
void * pManCut
Definition abc.h:193
char * memset()
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Cov_ManFree()

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}
#define ABC_FREE(obj)
Definition abc_global.h:267
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
void Min_ManFree(Min_Man_t *p)
Definition covMinMan.c:104
Here is the call graph for this function:
Here is the caller graph for this function: