diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2007-09-30 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2007-09-30 08:01:00 -0700 |
commit | e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7 (patch) | |
tree | de3ffe87c3e17950351e3b7d97fa18318bd5ea9a /src/map/mapper/mapperLib.c | |
parent | 7d7e60f2dc84393cd4c5db22d2eaf7b1fb1a79b2 (diff) | |
download | abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.gz abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.tar.bz2 abc-e54d9691616b9a0326e2fdb3156bb4eeb8abfcd7.zip |
Version abc70930
Diffstat (limited to 'src/map/mapper/mapperLib.c')
-rw-r--r-- | src/map/mapper/mapperLib.c | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/src/map/mapper/mapperLib.c b/src/map/mapper/mapperLib.c deleted file mode 100644 index d916487e..00000000 --- a/src/map/mapper/mapperLib.c +++ /dev/null @@ -1,231 +0,0 @@ -/**CFile**************************************************************** - - FileName [mapperLib.c] - - PackageName [MVSIS 1.3: Multi-valued logic synthesis system.] - - Synopsis [Generic technology mapping engine.] - - Author [MVSIS Group] - - Affiliation [UC Berkeley] - - Date [Ver. 2.0. Started - June 1, 2004.] - - Revision [$Id: mapperLib.c,v 1.6 2005/01/23 06:59:44 alanmi Exp $] - -***********************************************************************/ - -#include "mapperInt.h" - -//////////////////////////////////////////////////////////////////////// -/// DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFINITIONS /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [Reads in the supergate library and prepares it for use.] - - Description [The supergates library comes in a .super file. This file - contains descriptions of supergates along with some relevant information. - This procedure reads the supergate file, canonicizes the supergates, - and constructs an additional lookup table, which can be used to map - truth tables of the cuts into the pair (phase, supergate). The phase - indicates how the current truth table should be phase assigned to - match the canonical form of the supergate. The resulting phase is the - bitwise EXOR of the phase needed to canonicize the supergate and the - phase needed to transform the truth table into its canonical form.] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Map_SuperLib_t * Map_SuperLibCreate( char * pFileName, char * pExcludeFile, bool fAlgorithm, bool fVerbose ) -{ - Map_SuperLib_t * p; - int clk; - - // start the supergate library - p = ALLOC( Map_SuperLib_t, 1 ); - memset( p, 0, sizeof(Map_SuperLib_t) ); - p->pName = pFileName; - p->fVerbose = fVerbose; - p->mmSupers = Extra_MmFixedStart( sizeof(Map_Super_t) ); - p->mmEntries = Extra_MmFixedStart( sizeof(Map_HashEntry_t) ); - p->mmForms = Extra_MmFlexStart(); - Map_MappingSetupTruthTables( p->uTruths ); - - // start the hash table - p->tTableC = Map_SuperTableCreate( p ); - p->tTable = Map_SuperTableCreate( p ); - - // read the supergate library from file -clk = clock(); - if ( fAlgorithm ) - { - if ( !Map_LibraryReadTree( p, pFileName, pExcludeFile ) ) - { - Map_SuperLibFree( p ); - return NULL; - } - } - else - { - if ( pExcludeFile != 0 ) - { - printf ("Error: Exclude file support not present for old format. Stop.\n"); - return NULL; - } - if ( !Map_LibraryRead( p, pFileName ) ) - { - Map_SuperLibFree( p ); - return NULL; - } - } - assert( p->nVarsMax > 0 ); - - // report the stats -if ( fVerbose ) { - printf( "Loaded %d unique %d-input supergates from \"%s\". ", - p->nSupersReal, p->nVarsMax, pFileName ); - PRT( "Time", clock() - clk ); -} - - // assign the interver parameters - p->pGateInv = Mio_LibraryReadInv( p->pGenlib ); - p->tDelayInv.Rise = Mio_LibraryReadDelayInvRise( p->pGenlib ); - p->tDelayInv.Fall = Mio_LibraryReadDelayInvFall( p->pGenlib ); - p->tDelayInv.Worst = MAP_MAX( p->tDelayInv.Rise, p->tDelayInv.Fall ); - p->AreaInv = Mio_LibraryReadAreaInv( p->pGenlib ); - p->AreaBuf = Mio_LibraryReadAreaBuf( p->pGenlib ); - - // assign the interver supergate - p->pSuperInv = (Map_Super_t *)Extra_MmFixedEntryFetch( p->mmSupers ); - memset( p->pSuperInv, 0, sizeof(Map_Super_t) ); - p->pSuperInv->Num = -1; - p->pSuperInv->nGates = 1; - p->pSuperInv->nFanins = 1; - p->pSuperInv->nFanLimit = 10; - p->pSuperInv->pFanins[0] = p->ppSupers[0]; - p->pSuperInv->pRoot = p->pGateInv; - p->pSuperInv->Area = p->AreaInv; - p->pSuperInv->tDelayMax = p->tDelayInv; - p->pSuperInv->tDelaysR[0].Rise = MAP_NO_VAR; - p->pSuperInv->tDelaysR[0].Fall = p->tDelayInv.Rise; - p->pSuperInv->tDelaysF[0].Rise = p->tDelayInv.Fall; - p->pSuperInv->tDelaysF[0].Fall = MAP_NO_VAR; - return p; -} - - -/**Function************************************************************* - - Synopsis [Deallocates the supergate library.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -void Map_SuperLibFree( Map_SuperLib_t * p ) -{ - if ( p == NULL ) return; - if ( p->pGenlib ) - { - assert( p->pGenlib == Abc_FrameReadLibGen() ); - Mio_LibraryDelete( p->pGenlib ); - Abc_FrameSetLibGen( NULL ); - } - if ( p->tTableC ) - Map_SuperTableFree( p->tTableC ); - if ( p->tTable ) - Map_SuperTableFree( p->tTable ); - Extra_MmFixedStop( p->mmSupers ); - Extra_MmFixedStop( p->mmEntries ); - Extra_MmFlexStop( p->mmForms ); - FREE( p->ppSupers ); - FREE( p ); -} - -/**Function************************************************************* - - Synopsis [Derives the library from the genlib library.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -int Map_SuperLibDeriveFromGenlib( Mio_Library_t * pLib ) -{ - Abc_Frame_t * pAbc = Abc_FrameGetGlobalFrame(); - char * pNameGeneric; - char FileNameGenlib[100]; - char FileNameSuper[100]; - char CommandSuper[500]; - char CommandRead[500]; - FILE * pFile; - - if ( pLib == NULL ) - return 0; - - // write the current library into the file - sprintf( FileNameGenlib, "%s_temp", Mio_LibraryReadName(pLib) ); - pFile = fopen( FileNameGenlib, "w" ); - Mio_WriteLibrary( pFile, pLib, 0 ); - fclose( pFile ); - - // get the file name with the library - pNameGeneric = Extra_FileNameGeneric( Mio_LibraryReadName(pLib) ); - sprintf( FileNameSuper, "%s.super", pNameGeneric ); - free( pNameGeneric ); - - sprintf( CommandSuper, "super -l 1 -i 5 -d 10000000 -a 10000000 -t 100 %s", FileNameGenlib ); - if ( Cmd_CommandExecute( pAbc, CommandSuper ) ) - { - fprintf( stdout, "Cannot execute command \"%s\".\n", CommandSuper ); - return 0; - } -//#ifdef WIN32 -// _unlink( FileNameGenlib ); -//#else -// unlink( FileNameGenlib ); -//#endif - - sprintf( CommandRead, "read_super %s", FileNameSuper ); - if ( Cmd_CommandExecute( pAbc, CommandRead ) ) - { -#ifdef WIN32 - _unlink( FileNameSuper ); -#else - unlink( FileNameSuper ); -#endif - fprintf( stdout, "Cannot execute command \"%s\".\n", CommandRead ); - return 0; - } - -/* // don't remove the intermediate file -#ifdef WIN32 - _unlink( FileNameSuper ); -#else - unlink( FileNameSuper ); -#endif -*/ - return 1; -} - - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - - |