63 printf(
"Abc_NtkEspresso(): Converting to SOPs has failed.\n" );
119 int nCubes, nVars, Value, v;
126 assert( cube.size == 2 * nVars );
130 Cover =
sf_new(0, cube.size);
135 Cover =
sf_new(1, cube.size);
142 Cover =
sf_new(nCubes, cube.size);
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 )
228 pDcset =
sf_new( 1, cube.size );
240 pOnset =
espresso( pOnset, pDcset, pOffset );
ABC_DLL char * Abc_SopStart(Mem_Flex_t *pMan, int nCubes, int nVars)
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
static int Abc_NtkHasBdd(Abc_Ntk_t *pNtk)
ABC_NAMESPACE_IMPL_START pcover espresso(pcover F, pcover D1, pcover R)
#define Abc_SopForEachCube(pSop, nFanins, pCube)
ABC_DLL int Abc_SopGetCubeNum(char *pSop)
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
static int Abc_NtkHasMapping(Abc_Ntk_t *pNtk)
pset_family d1merge(INOUT pset_family A, IN int var)
void Abc_NtkEspresso(Abc_Ntk_t *pNtk, int fVerbose)
FUNCTION DEFINITIONS ///.
pcover complement(pcube *T)
#define Abc_CubeForEachVar(pCube, Value, i)
ABC_NAMESPACE_IMPL_START pset_family sf_contain(INOUT pset_family A)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
static pset_family Abc_EspressoMinimize(pset_family pOnset, pset_family pDcset)
ABC_DLL int Abc_NtkMapToSop(Abc_Ntk_t *pNtk)
static char * Abc_SopFromEspresso(Extra_MmFlex_t *pMan, pset_family Cover)
void define_cube_size(int n)
static ABC_NAMESPACE_IMPL_START void Abc_NodeEspresso(Abc_Obj_t *pNode)
DECLARATIONS ///.
pcube * cube2list(pcover A, pcover B)
#define ABC_NAMESPACE_IMPL_END
ABC_DLL int Abc_SopIsConst0(char *pSop)
ABC_DLL int Abc_SopIsConst1(char *pSop)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_NAMESPACE_IMPL_START
#define set_remove(set, e)
ABC_DLL void Abc_SopComplement(char *pSop)
#define GETSET(family, index)
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fDirect)
ABC_DLL int Abc_SopGetVarNum(char *pSop)
static pset_family Abc_SopToEspresso(char *pSop)
ABC_DLL int Abc_SopIsComplement(char *pSop)
pcube * cube1list(pcover A)