1 /**CFile****************************************************************
2
3 FileName [amapMan.c]
4
5 SystemName [ABC: Logic synthesis and verification system.]
6
7 PackageName [Technology mapper for standard cells.]
8
9 Synopsis [Mapping manager.]
10
11 Author [Alan Mishchenko]
12
13 Affiliation [UC Berkeley]
14
15 Date [Ver. 1.0. Started - June 20, 2005.]
16
17 Revision [$Id: amapMan.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
18
19 ***********************************************************************/
20
21 #include "amapInt.h"
22
23 ABC_NAMESPACE_IMPL_START
24
25
26 ////////////////////////////////////////////////////////////////////////
27 /// DECLARATIONS ///
28 ////////////////////////////////////////////////////////////////////////
29
30 ////////////////////////////////////////////////////////////////////////
31 /// FUNCTION DEFINITIONS ///
32 ////////////////////////////////////////////////////////////////////////
33
34 /**Function*************************************************************
35
36 Synopsis [Starts the AIG manager.]
37
38 Description []
39
40 SideEffects []
41
42 SeeAlso []
43
44 ***********************************************************************/
Amap_ManStart(int nNodes)45 Amap_Man_t * Amap_ManStart( int nNodes )
46 {
47 Amap_Man_t * p;
48 // start the manager
49 p = ABC_ALLOC( Amap_Man_t, 1 );
50 memset( p, 0, sizeof(Amap_Man_t) );
51 p->fEpsilonInternal = (float)0.01;
52 // allocate arrays for nodes
53 p->vPis = Vec_PtrAlloc( 100 );
54 p->vPos = Vec_PtrAlloc( 100 );
55 p->vObjs = Vec_PtrAlloc( 100 );
56 p->vTemp = Vec_IntAlloc( 100 );
57 p->vCuts0 = Vec_PtrAlloc( 100 );
58 p->vCuts1 = Vec_PtrAlloc( 100 );
59 p->vCuts2 = Vec_PtrAlloc( 100 );
60 p->vTempP = Vec_PtrAlloc( 100 );
61 // prepare the memory manager
62 p->pMemObj = Aig_MmFixedStart( sizeof(Amap_Obj_t), nNodes );
63 p->pMemCuts = Aig_MmFlexStart();
64 p->pMemCutBest = Aig_MmFlexStart();
65 p->pMemTemp = Aig_MmFlexStart();
66 return p;
67 }
68
69 /**Function*************************************************************
70
71 Synopsis []
72
73 Description []
74
75 SideEffects []
76
77 SeeAlso []
78
79 ***********************************************************************/
Amap_ManStop(Amap_Man_t * p)80 void Amap_ManStop( Amap_Man_t * p )
81 {
82 Vec_PtrFree( p->vPis );
83 Vec_PtrFree( p->vPos );
84 Vec_PtrFree( p->vObjs );
85 Vec_PtrFree( p->vCuts0 );
86 Vec_PtrFree( p->vCuts1 );
87 Vec_PtrFree( p->vCuts2 );
88 Vec_PtrFree( p->vTempP );
89 Vec_IntFree( p->vTemp );
90 Aig_MmFixedStop( p->pMemObj, 0 );
91 Aig_MmFlexStop( p->pMemCuts, 0 );
92 Aig_MmFlexStop( p->pMemCutBest, 0 );
93 Aig_MmFlexStop( p->pMemTemp, 0 );
94 ABC_FREE( p->pMatsTemp );
95 ABC_FREE( p->ppCutsTemp );
96 ABC_FREE( p->pCutsPi );
97 ABC_FREE( p );
98 }
99
100 ////////////////////////////////////////////////////////////////////////
101 /// END OF FILE ///
102 ////////////////////////////////////////////////////////////////////////
103
104
105 ABC_NAMESPACE_IMPL_END
106
107