Commit 3880623c by Alan Mishchenko

Extending cube representation to handle SOPs with many cubes.

parent 9d219eee
...@@ -605,12 +605,16 @@ int Abc_CountZddCubes( DdManager * dd, DdNode * zCover ) ...@@ -605,12 +605,16 @@ int Abc_CountZddCubes( DdManager * dd, DdNode * zCover )
***********************************************************************/ ***********************************************************************/
int Abc_NtkSopToAig( Abc_Ntk_t * pNtk ) int Abc_NtkSopToAig( Abc_Ntk_t * pNtk )
{ {
extern int Abc_NtkMakeLegit( Abc_Ntk_t * pNtk );
Abc_Obj_t * pNode; Abc_Obj_t * pNode;
Hop_Man_t * pMan; Hop_Man_t * pMan;
int i; int i;
assert( Abc_NtkHasSop(pNtk) ); assert( Abc_NtkHasSop(pNtk) );
// make dist1-free and SCC-free
// Abc_NtkMakeLegit( pNtk );
// start the functionality manager // start the functionality manager
pMan = Hop_ManStart(); pMan = Hop_ManStart();
......
...@@ -63,11 +63,11 @@ typedef struct MvcManagerStruct Mvc_Manager_t; ...@@ -63,11 +63,11 @@ typedef struct MvcManagerStruct Mvc_Manager_t;
struct MvcCubeStruct struct MvcCubeStruct
{ {
Mvc_Cube_t * pNext; // the next cube in the linked list Mvc_Cube_t * pNext; // the next cube in the linked list
unsigned iLast : 8; // the index of the last word unsigned iLast : 24; // the index of the last word
unsigned nUnused : 6; // the number of unused bits in the last word unsigned nUnused : 6; // the number of unused bits in the last word
unsigned fPrime : 1; // marks the prime cube unsigned fPrime : 1; // marks the prime cube
unsigned fEssen : 1; // marks the essential cube unsigned fEssen : 1; // marks the essential cube
unsigned nOnes : 16; // the number of 1's in the bit data unsigned nOnes; // the number of 1's in the bit data
Mvc_CubeWord_t pData[1]; // the first Mvc_CubeWord_t filled with bit data Mvc_CubeWord_t pData[1]; // the first Mvc_CubeWord_t filled with bit data
}; };
...@@ -82,9 +82,9 @@ struct MvcListStruct ...@@ -82,9 +82,9 @@ struct MvcListStruct
// the cover data structure // the cover data structure
struct MvcCoverStruct struct MvcCoverStruct
{ {
char nWords; // the number of machine words int nWords; // the number of machine words
char nUnused; // the number of unused bits in the last word int nUnused; // the number of unused bits in the last word
short nBits; // the number of used data bits in the cube int nBits; // the number of used data bits in the cube
Mvc_List_t lCubes; // the single-linked list of cubes Mvc_List_t lCubes; // the single-linked list of cubes
Mvc_Cube_t ** pCubes; // the array of cubes (for sorting) Mvc_Cube_t ** pCubes; // the array of cubes (for sorting)
int nCubesAlloc; // the size of allocated storage int nCubesAlloc; // the size of allocated storage
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment