/**CFile**************************************************************** FileName [amapMan.c] SystemName [ABC: Logic synthesis and verification system.] PackageName [Technology mapper for standard cells.] Synopsis [Mapping manager.] Author [Alan Mishchenko] Affiliation [UC Berkeley] Date [Ver. 1.0. Started - June 20, 2005.] Revision [$Id: amapMan.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] ***********************************************************************/ #include "amapInt.h" ABC_NAMESPACE_IMPL_START //////////////////////////////////////////////////////////////////////// /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFINITIONS /// //////////////////////////////////////////////////////////////////////// /**Function************************************************************* Synopsis [Starts the AIG manager.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ Amap_Man_t * Amap_ManStart( int nNodes ) { Amap_Man_t * p; // start the manager p = ABC_ALLOC( Amap_Man_t, 1 ); memset( p, 0, sizeof(Amap_Man_t) ); p->fEpsilonInternal = (float)0.01; // allocate arrays for nodes p->vPis = Vec_PtrAlloc( 100 ); p->vPos = Vec_PtrAlloc( 100 ); p->vObjs = Vec_PtrAlloc( 100 ); p->vTemp = Vec_IntAlloc( 100 ); p->vCuts0 = Vec_PtrAlloc( 100 ); p->vCuts1 = Vec_PtrAlloc( 100 ); p->vCuts2 = Vec_PtrAlloc( 100 ); // prepare the memory manager p->pMemObj = Aig_MmFixedStart( sizeof(Amap_Obj_t), nNodes ); p->pMemCuts = Aig_MmFlexStart(); p->pMemCutBest = Aig_MmFlexStart(); p->pMemTemp = Aig_MmFlexStart(); return p; } /**Function************************************************************* Synopsis [] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Amap_ManStop( Amap_Man_t * p ) { Vec_PtrFree( p->vPis ); Vec_PtrFree( p->vPos ); Vec_PtrFree( p->vObjs ); Vec_PtrFree( p->vCuts0 ); Vec_PtrFree( p->vCuts1 ); Vec_PtrFree( p->vCuts2 ); Vec_IntFree( p->vTemp ); Aig_MmFixedStop( p->pMemObj, 0 ); Aig_MmFlexStop( p->pMemCuts, 0 ); Aig_MmFlexStop( p->pMemCutBest, 0 ); Aig_MmFlexStop( p->pMemTemp, 0 ); ABC_FREE( p->pMatsTemp ); ABC_FREE( p->ppCutsTemp ); ABC_FREE( p->pCutsPi ); ABC_FREE( p ); } //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// ABC_NAMESPACE_IMPL_END