From 3880623c9b23b65659db581ade13b5996a08dba0 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sun, 12 May 2013 23:23:18 -0700 Subject: Extending cube representation to handle SOPs with many cubes. --- src/base/abc/abcFunc.c | 4 ++++ src/misc/mvc/mvc.h | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/base/abc/abcFunc.c b/src/base/abc/abcFunc.c index da096741..f43186ee 100644 --- a/src/base/abc/abcFunc.c +++ b/src/base/abc/abcFunc.c @@ -605,12 +605,16 @@ int Abc_CountZddCubes( DdManager * dd, DdNode * zCover ) ***********************************************************************/ int Abc_NtkSopToAig( Abc_Ntk_t * pNtk ) { + extern int Abc_NtkMakeLegit( Abc_Ntk_t * pNtk ); Abc_Obj_t * pNode; Hop_Man_t * pMan; int i; assert( Abc_NtkHasSop(pNtk) ); + // make dist1-free and SCC-free +// Abc_NtkMakeLegit( pNtk ); + // start the functionality manager pMan = Hop_ManStart(); diff --git a/src/misc/mvc/mvc.h b/src/misc/mvc/mvc.h index 0106ce8f..5b9a574f 100644 --- a/src/misc/mvc/mvc.h +++ b/src/misc/mvc/mvc.h @@ -63,11 +63,11 @@ typedef struct MvcManagerStruct Mvc_Manager_t; struct MvcCubeStruct { 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 fPrime : 1; // marks the prime 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 }; @@ -82,9 +82,9 @@ struct MvcListStruct // the cover data structure struct MvcCoverStruct { - char nWords; // the number of machine words - char nUnused; // the number of unused bits in the last word - short nBits; // the number of used data bits in the cube + int nWords; // the number of machine words + int nUnused; // the number of unused bits in the last word + int nBits; // the number of used data bits in the cube Mvc_List_t lCubes; // the single-linked list of cubes Mvc_Cube_t ** pCubes; // the array of cubes (for sorting) int nCubesAlloc; // the size of allocated storage -- cgit v1.2.3