31static void Abc_NodeEspresso(
Abc_Obj_t * pNode );
55 assert( Abc_NtkIsLogic(pNtk) );
57 if ( Abc_NtkHasMapping(pNtk) )
59 else if ( Abc_NtkHasBdd(pNtk) )
63 printf(
"Abc_NtkEspresso(): Converting to SOPs has failed.\n" );
69 if ( i ) Abc_NodeEspresso( pNode );
89 assert( Abc_ObjIsNode(pNode) );
94 Cover = Abc_SopToEspresso( pNode->
pData );
96 Cover = Abc_EspressoMinimize( Cover, NULL );
119 int nCubes, nVars, Value, v;
152 else if ( Value ==
'1' )
173 char * pSop, * pCube;
174 int Lit, nVars, nCubes, i, k;
177 nCubes = Cover->
count;
186 for ( k = 0; k < nVars; k++ )
191 else if ( Lit ==
ONE )
219 for ( i = 0; i <
cube.num_vars; i++ )
226 fNewDcset = (pDcset == NULL);
227 if ( pDcset == NULL )
240 pOnset =
espresso( pOnset, pDcset, pOffset );
void Abc_NtkEspresso(Abc_Ntk_t *pNtk, int fVerbose)
FUNCTION DEFINITIONS ///.
struct Abc_Obj_t_ Abc_Obj_t
ABC_DLL char * Abc_SopStart(Mem_Flex_t *pMan, int nCubes, int nVars)
ABC_DLL int Abc_SopIsConst0(char *pSop)
ABC_DLL void Abc_SopComplement(char *pSop)
#define Abc_CubeForEachVar(pCube, Value, i)
ABC_DLL int Abc_NtkMapToSop(Abc_Ntk_t *pNtk)
struct Abc_Ntk_t_ Abc_Ntk_t
#define Abc_SopForEachCube(pSop, nFanins, pCube)
ABC_DLL int Abc_SopGetVarNum(char *pSop)
ABC_DLL int Abc_SopIsComplement(char *pSop)
ABC_DLL int Abc_SopGetCubeNum(char *pSop)
ABC_DLL int Abc_SopIsConst1(char *pSop)
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fMode, int nCubeLimit, int fCubeSort)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_INFINITY
MACRO DEFINITIONS ///.
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
void define_cube_size(int n)
#define GETSET(family, index)
#define set_remove(set, e)
struct set_family * pset_family