From 8ed83f17b853ea7bd7afa7dd1098d0abb3e98c69 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sun, 9 Oct 2005 08:01:00 -0700 Subject: [PATCH] Version abc51009 --- abc.opt | Bin 51712 -> 52736 bytes abc.plg | 30 +-- src/base/abci/abc.c | 2 +- src/base/abci/module.make | 1 + src/misc/npn/npn.c | 202 ---------------- src/misc/npn/npn.h | 105 --------- src/misc/npn/npnGenStr.c | 473 -------------------------------------- src/misc/npn/npnTruth.c | 137 ----------- src/misc/npn/npnUtil.c | 78 ------- src/opt/sim/module.make | 1 + 10 files changed, 18 insertions(+), 1011 deletions(-) delete mode 100644 src/misc/npn/npn.c delete mode 100644 src/misc/npn/npn.h delete mode 100644 src/misc/npn/npnGenStr.c delete mode 100644 src/misc/npn/npnTruth.c delete mode 100644 src/misc/npn/npnUtil.c diff --git a/abc.opt b/abc.opt index 599d768869e9f5f38c9c020876e6fb51f92035fe..801ad0372f092c28c0ae7b2ca9e130ec979584ec 100644 GIT binary patch literal 52736 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 a7iIsK|E>LBl>2|m{Xb>@_y529zyCKVet!G_ literal 51712 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 Vf&T{ry#IsufAIc~$9Mn7e*w=Jw`l+X diff --git a/abc.plg b/abc.plg index 2c576993f..6b48f938a 100644 --- a/abc.plg +++ b/abc.plg @@ -6,13 +6,13 @@ --------------------Configuration: abc - Win32 Release--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194C.tmp" with contents +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B74.tmp" with contents [ /nologo /ML /W3 /GX /O2 /I "src\base\abc" /I "src\base\abci" /I "src\base\abcs" /I "src\base\cmd" /I "src\base\io" /I "src\base\main" /I "src\bdd\cudd" /I "src\bdd\epd" /I "src\bdd\mtr" /I "src\bdd\parse" /I "src\bdd\dsd" /I "src\bdd\reo" /I "src\sop\ft" /I "src\sat\asat" /I "src\sat\msat" /I "src\sat\fraig" /I "src\opt\cut" /I "src\opt\dec" /I "src\opt\fxu" /I "src\opt\sim" /I "src\opt\rwr" /I "src\map\fpga" /I "src\map\pga" /I "src\map\mapper" /I "src\map\mapp" /I "src\map\mio" /I "src\map\super" /I "src\misc\extra" /I "src\misc\st" /I "src\misc\mvc" /I "src\misc\util" /I "src\misc\npn" /I "src\misc\vec" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "__STDC__" /D "HAVE_ASSERT_H" /FR"Release/" /Fp"Release/abc.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"C:\_projects\abc\src\base\abci\abcVanImp.c" +"C:\_projects\abc\src\opt\sim\simSupp.c" ] -Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194C.tmp" -Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194D.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B74.tmp" +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B75.tmp" with contents [ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"Release/abc.pdb" /machine:I386 /out:"_TEST/abc.exe" .\Release\abcAig.obj @@ -55,6 +55,7 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .\Release\abcTiming.obj .\Release\abcUnreach.obj .\Release\abcVanEijk.obj +.\Release\abcVanImp.obj .\Release\abcVerify.obj .\Release\abcFpgaDelay.obj .\Release\abcFpgaSeq.obj @@ -178,6 +179,7 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .\Release\msatClause.obj .\Release\msatClauseVec.obj .\Release\msatMem.obj +.\Release\msatOrderH.obj .\Release\msatQueue.obj .\Release\msatRead.obj .\Release\msatSolverApi.obj @@ -233,6 +235,7 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .\Release\decUtil.obj .\Release\simMan.obj .\Release\simSat.obj +.\Release\simSeq.obj .\Release\simSupp.obj .\Release\simSwitch.obj .\Release\simSym.obj @@ -320,16 +323,13 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32 .\Release\mvcPrint.obj .\Release\mvcSort.obj .\Release\mvcUtils.obj -.\Release\abcVanImp.obj -.\Release\simSeq.obj -.\Release\msatOrderH.obj ] -Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194D.tmp" +Creating command line "link.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B75.tmp"

Output Window

Compiling... -abcVanImp.c +simSupp.c Linking... -Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194F.tmp" with contents +Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B77.tmp" with contents [ /nologo /o"Release/abc.bsc" .\Release\abcAig.sbr @@ -372,6 +372,7 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194F.tmp" with cont .\Release\abcTiming.sbr .\Release\abcUnreach.sbr .\Release\abcVanEijk.sbr +.\Release\abcVanImp.sbr .\Release\abcVerify.sbr .\Release\abcFpgaDelay.sbr .\Release\abcFpgaSeq.sbr @@ -495,6 +496,7 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194F.tmp" with cont .\Release\msatClause.sbr .\Release\msatClauseVec.sbr .\Release\msatMem.sbr +.\Release\msatOrderH.sbr .\Release\msatQueue.sbr .\Release\msatRead.sbr .\Release\msatSolverApi.sbr @@ -550,6 +552,7 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194F.tmp" with cont .\Release\decUtil.sbr .\Release\simMan.sbr .\Release\simSat.sbr +.\Release\simSeq.sbr .\Release\simSupp.sbr .\Release\simSwitch.sbr .\Release\simSym.sbr @@ -636,11 +639,8 @@ Creating temporary file "C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194F.tmp" with cont .\Release\mvcOpBool.sbr .\Release\mvcPrint.sbr .\Release\mvcSort.sbr -.\Release\mvcUtils.sbr -.\Release\abcVanImp.sbr -.\Release\simSeq.sbr -.\Release\msatOrderH.sbr] -Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP194F.tmp" +.\Release\mvcUtils.sbr] +Creating command line "bscmake.exe @C:\DOCUME~1\alanmi\LOCALS~1\Temp\RSP1B77.tmp" Creating browse info file...

Output Window

diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 24301ac35..aa5dedadb 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -844,7 +844,7 @@ int Abc_CommandPrintSymms( Abc_Frame_t * pAbc, int argc, char ** argv ) usage: fprintf( pErr, "usage: print_symm [-nbvh]\n" ); fprintf( pErr, "\t computes symmetries of the PO functions\n" ); - fprintf( pErr, "\t-b : toggle BDD-based or SAT-based computations [default = %s].\n", fUseBdds? "bdd": "sat" ); + fprintf( pErr, "\t-b : toggle BDD-based or SAT-based computations [default = %s].\n", fUseBdds? "BDD": "SAT" ); fprintf( pErr, "\t-n : enable naive BDD-based computation [default = %s].\n", fNaive? "yes": "no" ); fprintf( pErr, "\t-v : enable verbose output [default = %s].\n", fVerbose? "yes": "no" ); fprintf( pErr, "\t-h : print the command usage\n"); diff --git a/src/base/abci/module.make b/src/base/abci/module.make index 4466cf993..660aee63d 100644 --- a/src/base/abci/module.make +++ b/src/base/abci/module.make @@ -23,4 +23,5 @@ SRC += src/base/abci/abc.c \ src/base/abci/abcTiming.c \ src/base/abci/abcUnreach.c \ src/base/abci/abcVanEijk.c \ + src/base/abci/abcVanImp.c \ src/base/abci/abcVerify.c diff --git a/src/misc/npn/npn.c b/src/misc/npn/npn.c deleted file mode 100644 index ad4b4de64..000000000 --- a/src/misc/npn/npn.c +++ /dev/null @@ -1,202 +0,0 @@ -/**CFile**************************************************************** - - FileName [npn.c] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [] - - Synopsis [] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: npn.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#include "extra.h" -#include "npn.h" -#include "vec.h" - -//////////////////////////////////////////////////////////////////////// -/// DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -static int Npn_CompareVecs( void ** p0, void ** p1 ); -static Vec_Int_t * Npn_GetSignature( unsigned uTruth, int nVars ); -static void Npn_VecPrint( FILE * pFile, Vec_Int_t * vVec ); -static int Npn_VecProperty( Vec_Int_t * vVec ); - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFITIONS /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_Experiment() -{ - Vec_Int_t ** pVecs; - FILE * pFile; - int nFuncs, Num, i; - - pFile = fopen( "npn5.txt", "r" ); - pVecs = ALLOC( Vec_Int_t *, 1000000 ); - for ( i = 0; ; i++ ) - { - if ( fscanf( pFile, "%x", &Num ) != 1 ) - break; - pVecs[i] = Npn_GetSignature( Num, 5 ); - if ( Npn_VecProperty( pVecs[i] ) ) - { - printf( "1s = %2d. ", Extra_CountOnes((unsigned char *)&Num, (1 << 5) / 8) ); - Extra_PrintHex( stdout, Num, 5 ); fprintf( stdout, "\n" ); - } - - } - nFuncs = i; - printf( "Read %d numbers.\n", nFuncs ); - fclose( pFile ); - /* - // sort the vectors - qsort( (void *)pVecs, nFuncs, sizeof(void *), - (int (*)(const void *, const void *)) Npn_CompareVecs ); - pFile = fopen( "npn5ar.txt", "w" ); - for ( i = 0; i < nFuncs; i++ ) - { - Npn_VecPrint( pFile, pVecs[i] ); - Vec_IntFree( pVecs[i] ); - } - fclose( pFile ); - */ - - free( pVecs ); -} - - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Vec_Int_t * Npn_GetSignature( unsigned uTruth, int nVars ) -{ - // elementary truth tables - static unsigned Signs[5] = { - 0xAAAAAAAA, // 1010 1010 1010 1010 1010 1010 1010 1010 - 0xCCCCCCCC, // 1010 1010 1010 1010 1010 1010 1010 1010 - 0xF0F0F0F0, // 1111 0000 1111 0000 1111 0000 1111 0000 - 0xFF00FF00, // 1111 1111 0000 0000 1111 1111 0000 0000 - 0xFFFF0000 // 1111 1111 1111 1111 0000 0000 0000 0000 - }; - Vec_Int_t * vVec; - unsigned uCofactor; - int Count0, Count1, i; - int nBytes = (1 << nVars) / 8; - - // collect the number of 1s in each cofactor - vVec = Vec_IntAlloc( 5 ); - for ( i = 0; i < nVars; i++ ) - { - uCofactor = uTruth & ~Signs[i]; - Count0 = Extra_CountOnes( (unsigned char *)&uCofactor, nBytes ); - uCofactor = uTruth & Signs[i]; - Count1 = Extra_CountOnes( (unsigned char *)&uCofactor, nBytes ); - if ( Count0 < Count1 ) - Vec_IntPush( vVec, Count0 ); - else - Vec_IntPush( vVec, Count1 ); - } - // sort them - Vec_IntSort( vVec, 0 ); - return vVec; - -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Npn_CompareVecs( void ** p0, void ** p1 ) -{ - Vec_Int_t * vVec0 = *p0; - Vec_Int_t * vVec1 = *p1; - int i; - assert( vVec0->nSize == vVec1->nSize ); - for ( i = 0; i < vVec0->nSize; i++ ) - if ( vVec0->pArray[i] < vVec1->pArray[i] ) - return -1; - else if ( vVec0->pArray[i] > vVec1->pArray[i] ) - return 1; - return 0; -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_VecPrint( FILE * pFile, Vec_Int_t * vVec ) -{ - int i; - for ( i = 0; i < vVec->nSize; i++ ) - fprintf( pFile, "%2d ", vVec->pArray[i] ); - fprintf( pFile, "\n" ); -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Npn_VecProperty( Vec_Int_t * vVec ) -{ - int i; - for ( i = 0; i < vVec->nSize; i++ ) - if ( vVec->pArray[i] != i + 1 ) - return 0; - return 1; -} - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - - diff --git a/src/misc/npn/npn.h b/src/misc/npn/npn.h deleted file mode 100644 index 61aa62970..000000000 --- a/src/misc/npn/npn.h +++ /dev/null @@ -1,105 +0,0 @@ -/**CFile**************************************************************** - - FileName [npn.h] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [] - - Synopsis [External declarations.] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: npn.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#ifndef __NPN_H__ -#define __NPN_H__ - -//////////////////////////////////////////////////////////////////////// -/// INCLUDES /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// PARAMETERS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// BASIC TYPES /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// MACRO DEFITIONS /// -//////////////////////////////////////////////////////////////////////// - -#define EXTRA_WORD_VARS 5 - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFINITIONS /// -//////////////////////////////////////////////////////////////////////// - -static inline int Extra_BitCharNum( int nVars ) { if ( nVars <= 3 ) return 1; return 1 << (nVars - 3); } -static inline int Extra_BitWordNum( int nVars ) { if ( nVars <= EXTRA_WORD_VARS ) return 1; return 1 << (nVars - EXTRA_WORD_VARS); } - -static inline int Extra_BitRead( uint8 * pBits, int iBit ) { return ( (pBits[iBit/8] & (1 << (iBit%8))) > 0 ); } -static inline void Extra_BitSet( uint8 * pBits, int iBit ) { pBits[iBit/8] |= (1 << (iBit%8)); } -static inline void Extra_BitXor( uint8 * pBits, int iBit ) { pBits[iBit/8] ^= (1 << (iBit%8)); } - -static inline void Extra_BitClean( int nVars, uint8 * pBits ) -{ - unsigned * pWords = (unsigned *)pBits; - int i; - for ( i = Extra_BitWordNum(nVars) - 1; i >= 0; i-- ) - pWords[i] = 0; -} -static inline void Extra_BitNot( int nVars, uint8 * pBits ) -{ - unsigned * pWords = (unsigned *)pBits; - int i; - for ( i = Extra_BitWordNum(nVars) - 1; i >= 0; i-- ) - pWords[i] = ~pWords[i]; -} -static inline void Extra_BitCopy( int nVars, uint8 * pBits1, uint8 * pBits ) -{ - unsigned * pWords = (unsigned *)pBits; - unsigned * pWords1 = (unsigned *)pBits1; - int i; - for ( i = Extra_BitWordNum(nVars) - 1; i >= 0; i-- ) - pWords[i] = pWords1[i]; -} -static inline void Extra_BitAnd( int nVars, uint8 * pBits1, uint8 * pBits2, uint8 * pBits ) -{ - unsigned * pWords = (unsigned *)pBits; - unsigned * pWords1 = (unsigned *)pBits1; - unsigned * pWords2 = (unsigned *)pBits2; - int i; - for ( i = Extra_BitWordNum(nVars) - 1; i >= 0; i-- ) - pWords[i] = pWords1[i] & pWords2[i]; -} -static inline void Extra_BitSharp( int nVars, uint8 * pBits1, uint8 * pBits2, uint8 * pBits ) -{ - unsigned * pWords = (unsigned *)pBits; - unsigned * pWords1 = (unsigned *)pBits1; - unsigned * pWords2 = (unsigned *)pBits2; - int i; - for ( i = Extra_BitWordNum(nVars) - 1; i >= 0; i-- ) - pWords[i] = pWords1[i] & ~pWords2[i]; -} - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -/*=== zzz.c ==========================================================*/ - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - -#endif - diff --git a/src/misc/npn/npnGenStr.c b/src/misc/npn/npnGenStr.c deleted file mode 100644 index adbfdcdff..000000000 --- a/src/misc/npn/npnGenStr.c +++ /dev/null @@ -1,473 +0,0 @@ -/**CFile**************************************************************** - - FileName [npnUtil.c] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [] - - Synopsis [] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: npnUtil.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#include "extra.h" -#include "npn.h" -#include "vec.h" - -//////////////////////////////////////////////////////////////////////// -/// DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -static Vec_Ptr_t * Npn_Generate_rec( int nVars, int fFold ); -static void Npn_GenerateMerge( Vec_Ptr_t * vVec1, Vec_Ptr_t * vVec2, Vec_Ptr_t * vVec ); -static void Npn_GenerateFree( Vec_Ptr_t * vVec ); -static Vec_Ptr_t * Npn_GenerateFold( Vec_Ptr_t * vVec ); -static void Npn_GenerateEmbed( Vec_Ptr_t * vVec ); -static void Npn_GeneratePrint( Vec_Ptr_t * vVec ); - - -static void Npn_RewritePrint( Vec_Ptr_t * vVec ); -static Vec_Ptr_t * Npn_Rewrite( char * pStruct ); - -static int Npn_RewriteNumEntries( char * pString ); -static int Npn_RewriteLastAnd( char * pBeg, char * pString ); -static int Npn_RewriteLastExor( char * pBeg, char * pString ); - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFITIONS /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_Generate() -{ - Vec_Ptr_t * vVec; - vVec = Npn_Generate_rec( 7, 1 ); - Npn_GenerateEmbed( vVec ); - Npn_GeneratePrint( vVec ); - Npn_GenerateFree( vVec ); -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Vec_Ptr_t * Npn_Generate_rec( int nVars, int fFold ) -{ - char Buffer[20], * pChar; - Vec_Ptr_t * vVec, * vVec1, * vVec2, * pTemp; - int i; - - vVec = Vec_PtrAlloc( 100 ); - - // generate the combination - pChar = Buffer; - for ( i = 0; i < nVars; i++ ) - *pChar++ = '.'; - *pChar++ = 0; - - Vec_PtrPush( vVec, util_strsav(Buffer) ); - if ( nVars == 2 || !fFold ) - return vVec; - - assert( nVars > 2 ); - for ( i = 2; i < nVars; i++ ) - { - vVec1 = Npn_Generate_rec( i, 1 ); - vVec1 = Npn_GenerateFold( pTemp = vVec1 ); - Npn_GenerateFree( pTemp ); - // add folded pairs - if ( nVars - i > 1 ) - { - vVec2 = Npn_Generate_rec( nVars - i, 1 ); - vVec2 = Npn_GenerateFold( pTemp = vVec2 ); - Npn_GenerateFree( pTemp ); - Npn_GenerateMerge( vVec1, vVec2, vVec ); - Npn_GenerateFree( vVec2 ); - } - // add unfolded pairs - vVec2 = Npn_Generate_rec( nVars - i, 0 ); - Npn_GenerateMerge( vVec1, vVec2, vVec ); - Npn_GenerateFree( vVec2 ); - Npn_GenerateFree( vVec1 ); - } - return vVec; -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_GenerateMerge( Vec_Ptr_t * vVec1, Vec_Ptr_t * vVec2, Vec_Ptr_t * vVec ) -{ - char Buffer[100]; - char * pEntry1, * pEntry2, * pEntry; - int i, k, m; - Vec_PtrForEachEntry( vVec1, pEntry1, i ) - Vec_PtrForEachEntry( vVec2, pEntry2, k ) - { - if ( *pEntry1 == '(' && *pEntry2 == '(' ) - if ( strcmp( pEntry1, pEntry2 ) > 0 ) - continue; - - // get the new entry - sprintf( Buffer, "%s%s", pEntry1, pEntry2 ); - // skip duplicates - Vec_PtrForEachEntry( vVec, pEntry, m ) - if ( strcmp( pEntry, Buffer ) == 0 ) - break; - if ( m != Vec_PtrSize(vVec) ) - continue; - // add the new entry - Vec_PtrPush( vVec, util_strsav(Buffer) ); - } -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_GenerateFree( Vec_Ptr_t * vVec ) -{ - char * pEntry; - int i; - Vec_PtrForEachEntry( vVec, pEntry, i ) - free( pEntry ); - Vec_PtrFree( vVec ); -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Vec_Ptr_t * Npn_GenerateFold( Vec_Ptr_t * vVec ) -{ - Vec_Ptr_t * vVecR; - char Buffer[100]; - char * pEntry; - int i; - vVecR = Vec_PtrAlloc( 10 ); - Vec_PtrForEachEntry( vVec, pEntry, i ) - { - // add entry without folding if the second part is folded - if ( pEntry[strlen(pEntry) - 1] == ')' ) - Vec_PtrPush( vVecR, util_strsav(pEntry) ); - // add the entry with folding - sprintf( Buffer, "(%s)", pEntry ); - Vec_PtrPush( vVecR, util_strsav(Buffer) ); - } - return vVecR; -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_GenerateEmbed( Vec_Ptr_t * vVec ) -{ - char Buffer[100]; - char * pEntry; - int i; - Vec_PtrForEachEntry( vVec, pEntry, i ) - { - sprintf( Buffer, "(%s)", pEntry ); - Vec_PtrWriteEntry( vVec, i, util_strsav(Buffer) ); - free( pEntry ); - } -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_GeneratePrint( Vec_Ptr_t * vVec ) -{ - char * pEntry; - int i; - Vec_PtrForEachEntry( vVec, pEntry, i ) - { - printf( "%5d : %s\n", i, pEntry ); - - { - Vec_Ptr_t * vFuncs; - vFuncs = Npn_Rewrite( pEntry ); - Npn_RewritePrint( vFuncs ); - Vec_PtrFree( vFuncs ); - } - } -} - - - - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_RewritePrint( Vec_Ptr_t * vVec ) -{ - char * pEntry; - int i; - Vec_PtrForEachEntry( vVec, pEntry, i ) - printf( " %3d : %s\n", i, pEntry ); -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_Rewrite_rec( char * pStruct, Vec_Ptr_t * vVec, Vec_Str_t * vForm ) -{ - int nSizeOld; - char * pCur; - // find the next opening paranthesis - for ( pCur = pStruct; *pCur; pCur++ ) - { - if ( *pCur == '(' ) - break; - Vec_StrPush( vForm, *pCur ); - } - // the paranthesis is not found quit - if ( *pCur == 0 ) - { - Vec_StrPush( vForm, 0 ); - Vec_PtrPush( vVec, util_strsav( vForm->pArray ) ); - return; - } - assert( *pCur == '(' ); - pCur++; - // remember the current size - nSizeOld = vForm->nSize; - // add different types - if ( Npn_RewriteLastAnd(vForm->pArray, vForm->pArray+vForm->nSize) ) - { - Vec_StrPush( vForm, 'N' ); - Vec_StrPush( vForm, '(' ); - Npn_Rewrite_rec( pCur, vVec, vForm ); - Vec_StrShrink( vForm, nSizeOld ); - } - else - { - Vec_StrPush( vForm, 'A' ); - Vec_StrPush( vForm, '(' ); - Npn_Rewrite_rec( pCur, vVec, vForm ); - Vec_StrShrink( vForm, nSizeOld ); - } - // add different types - if ( Npn_RewriteNumEntries(pCur) == 3 ) - { - Vec_StrPush( vForm, 'P' ); - Vec_StrPush( vForm, '(' ); - Npn_Rewrite_rec( pCur, vVec, vForm ); - Vec_StrShrink( vForm, nSizeOld ); - } - // add different types - if ( !Npn_RewriteLastExor(vForm->pArray, vForm->pArray+vForm->nSize) ) - { - Vec_StrPush( vForm, 'X' ); - Vec_StrPush( vForm, '(' ); - Npn_Rewrite_rec( pCur, vVec, vForm ); - Vec_StrShrink( vForm, nSizeOld ); - } -} - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Vec_Ptr_t * Npn_Rewrite( char * pStruct ) -{ - Vec_Ptr_t * vVec; - Vec_Str_t * vForm; - vVec = Vec_PtrAlloc( 10 ); - vForm = Vec_StrAlloc( 10 ); - Npn_Rewrite_rec( pStruct, vVec, vForm ); - Vec_StrFree( vForm ); - return vVec; -} - - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Npn_RewriteNumEntries( char * pString ) -{ - char * pCur; - int Counter = 0; - int nPars = 0; - for ( pCur = pString; *pCur; pCur++ ) - { - if ( nPars == 0 ) - { - if ( *pCur == '.' ) - Counter++; - else if ( *pCur == '(' ) - { - Counter++; - nPars++; - } - else if ( *pCur == ')' ) - nPars--; - } - else if ( nPars > 0 ) - { - if ( *pCur == '(' ) - nPars++; - else if ( *pCur == ')' ) - nPars--; - } - else - break; - } - return Counter; -} - -/**Function************************************************************* - - Synopsis [Returns 1 if the last was EXOR.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Npn_RewriteLastAnd( char * pBeg, char * pEnd ) -{ - char * pCur; - int nPars = 1; - for ( pCur = pEnd - 1; pCur >= pBeg; pCur-- ) - { - if ( *pCur == ')' ) - nPars++; - else if ( *pCur == '(' ) - nPars--; - - if ( nPars == 0 && *pCur == 'A' ) - return 1; - } - return 0; -} - -/**Function************************************************************* - - Synopsis [Returns 1 if the last was EXOR.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Npn_RewriteLastExor( char * pBeg, char * pEnd ) -{ - char * pCur; - int nPars = 1; - for ( pCur = pEnd - 1; pCur >= pBeg; pCur-- ) - { - if ( *pCur == ')' ) - nPars++; - else if ( *pCur == '(' ) - nPars--; - - if ( nPars == 0 && *pCur == 'X' ) - return 1; - } - return 0; -} - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - - diff --git a/src/misc/npn/npnTruth.c b/src/misc/npn/npnTruth.c deleted file mode 100644 index b6be775bc..000000000 --- a/src/misc/npn/npnTruth.c +++ /dev/null @@ -1,137 +0,0 @@ -/**CFile**************************************************************** - - FileName [npnUtil.c] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [] - - Synopsis [] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: npnUtil.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#include "extra.h" -#include "npn.h" -#include "vec.h" - -//////////////////////////////////////////////////////////////////////// -/// DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFITIONS /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [Checks if the variable belongs to the support.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Extra_TruthCofactors( int nVars, uint8 * puTruth, uint8 * puElem[][32], - uint8 * puTruthCofs0[][32], uint8 * puTruthCofs1[][32] ) -{ - int v; - for ( v = 0; v < nVars; v++ ) - { - Extra_BitSharp( nVars, puTruth, puElem[v], (uint8 *)puTruthCofs0[v] ); - Extra_BitAnd ( nVars, puTruth, puElem[v], (uint8 *)puTruthCofs1[v] ); - } -} - -/**Function************************************************************* - - Synopsis [Checks if the variable belongs to the support.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Extra_TruthCountCofactorOnes( int nVars, uint8 * puTruthCofs[][32], int * pCounts ) -{ - int v, nBytes; - nBytes = Extra_BitCharNum( nVars ); - for ( v = 0; v < nVars; v++ ) - pCounts[v] = Extra_CountOnes( puTruthCofs[v], nBytes ); -} - -/**Function************************************************************* - - Synopsis [Checks if the variable belongs to the support.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Extra_TruthHasVar( int nVars, uint8 * puTruth, int iVar ) -{ - // elementary truth tables - static uint8 Signs[3] = { - 0xAA, // 1010 1010 - 0xCC, // 1100 1100 - 0xF0 // 1111 0000 - }; - int nChars, nShift, i; - assert( iVar < nVars ); - nChars = Extra_BitCharNum( nVars ); - if ( iVar < 3 ) - { - nShift = (1 << iVar); - for ( i = 0; i < nChars; i++ ) - if ( ((puTruth[i] & Signs[iVar]) >> nShift) != (puTruth[i] & ~Signs[iVar]) ) - return 1; - } - else - { - nShift = (1 << (iVar-3)); - for ( i = 0; i < nChars; i++, i = (i % nShift)? i : i + nShift ) - if ( puTruth[i] != puTruth[i+nShift] ) - return 1; - } - return 0; -} - -/**Function************************************************************* - - Synopsis [Checks if the variable belongs to the support.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Npn_VarsTest( int nVars, uint8 * puTruth ) -{ - int v; - int Counter = 0; - for ( v = 0; v < nVars; v++ ) - Counter += Extra_TruthHasVar( nVars, puTruth, v ); - return Counter; -} - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - - diff --git a/src/misc/npn/npnUtil.c b/src/misc/npn/npnUtil.c deleted file mode 100644 index b12ad0926..000000000 --- a/src/misc/npn/npnUtil.c +++ /dev/null @@ -1,78 +0,0 @@ -/**CFile**************************************************************** - - FileName [npnUtil.c] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [] - - Synopsis [] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: npnUtil.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#include "extra.h" -#include "npn.h" -#include "vec.h" - -//////////////////////////////////////////////////////////////////////// -/// DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFITIONS /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Npn_StartTruth8( uint8 uTruths[][32] ) -{ - // elementary truth tables - static uint8 Signs[3] = { - 0xAA, // 1010 1010 - 0xCC, // 1100 1100 - 0xF0 // 1111 0000 - }; - int v, i, nShift; - for ( v = 0; v < 3; v++ ) - for ( i = 0; i < 32; i++ ) - uTruths[v][i] = Signs[v]; - for ( v = 3; v < 8; v++ ) - { - nShift = (1 << (v-3)); - for ( i = 0; i < 32; i++, i = (i % nShift)? i : i + nShift ) - { - uTruths[v][i] = 0; - uTruths[v][i + nShift] = 0xFF; - } - } -/* - for ( v = 0; v < 8; v++ ) - { - Extra_PrintBinary( stdout, (unsigned int*)uTruths[v], 90 ); - printf( "\n" ); - } -*/ -} - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - - diff --git a/src/opt/sim/module.make b/src/opt/sim/module.make index 43d0a1259..540584022 100644 --- a/src/opt/sim/module.make +++ b/src/opt/sim/module.make @@ -1,5 +1,6 @@ SRC += src/opt/sim/simMan.c \ src/opt/sim/simSat.c \ + src/opt/sim/simSeq.c \ src/opt/sim/simSupp.c \ src/opt/sim/simSwitch.c \ src/opt/sim/simSym.c \