100 lines
2.6 KiB
C
100 lines
2.6 KiB
C
/**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 $]
|
|
|
|
***********************************************************************/
|
|
|
|
#include "rsbInt.h"
|
|
|
|
ABC_NAMESPACE_IMPL_START
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// DECLARATIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// FUNCTION DEFINITIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
/**Function*************************************************************
|
|
|
|
Synopsis []
|
|
|
|
Description []
|
|
|
|
SideEffects []
|
|
|
|
SeeAlso []
|
|
|
|
***********************************************************************/
|
|
Rsb_Man_t * Rsb_ManAlloc( int nLeafMax, int nDivMax, int nDecMax, int fVerbose )
|
|
{
|
|
Rsb_Man_t * p;
|
|
assert( nLeafMax <= 20 );
|
|
assert( nDivMax <= 200 );
|
|
p = ABC_CALLOC( Rsb_Man_t, 1 );
|
|
p->nLeafMax = nLeafMax;
|
|
p->nDivMax = nDivMax;
|
|
p->nDecMax = nDecMax;
|
|
p->fVerbose = fVerbose;
|
|
// decomposition
|
|
p->vCexes = Vec_WrdAlloc( nDivMax + 150 );
|
|
p->vDecPats = Vec_IntAlloc( Abc_TtWordNum(nLeafMax) );
|
|
p->vFanins = Vec_IntAlloc( 10 );
|
|
p->vFaninsOld = Vec_IntAlloc( 10 );
|
|
p->vTries = Vec_IntAlloc( 10 );
|
|
return p;
|
|
}
|
|
void Rsb_ManFree( Rsb_Man_t * p )
|
|
{
|
|
Vec_WrdFree( p->vCexes );
|
|
Vec_IntFree( p->vDecPats );
|
|
Vec_IntFree( p->vFanins );
|
|
Vec_IntFree( p->vFaninsOld );
|
|
Vec_IntFree( p->vTries );
|
|
ABC_FREE( p );
|
|
}
|
|
|
|
/**Function*************************************************************
|
|
|
|
Synopsis []
|
|
|
|
Description []
|
|
|
|
SideEffects []
|
|
|
|
SeeAlso []
|
|
|
|
***********************************************************************/
|
|
Vec_Int_t * Rsb_ManGetFanins( Rsb_Man_t * p )
|
|
{
|
|
return p->vFanins;
|
|
}
|
|
Vec_Int_t * Rsb_ManGetFaninsOld( Rsb_Man_t * p )
|
|
{
|
|
return p->vFaninsOld;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// END OF FILE ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
ABC_NAMESPACE_IMPL_END
|
|
|