/**Function************************************************************* Synopsis [Command procedure to read LUT libraries.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ int Mio_CommandPrintGenlib( Abc_Frame_t * pAbc, int argc, char **argv ) { FILE * pOut, * pErr; int fShort = 0; int fSelected = 0; int fVerbose = 0; int c; pOut = Abc_FrameReadOut(pAbc); pErr = Abc_FrameReadErr(pAbc); // set the defaults Extra_UtilGetoptReset(); while ( (c = Extra_UtilGetopt(argc, argv, "savh")) != EOF ) { switch (c) { case 's': fShort ^= 1; break; case 'a': fSelected ^= 1; break; case 'v': fVerbose ^= 1; break; case 'h': goto usage; break; default: goto usage; } } if ( Abc_FrameReadLibGen() == NULL ) { printf( "Library is not available.\n" ); return 1; } Mio_WriteLibrary( stdout, (Mio_Library_t *)Abc_FrameReadLibGen(), 0, fShort, fSelected ); return 0; usage: fprintf( pErr, "\nusage: print_genlib [-savh]\n"); fprintf( pErr, "\t print the current genlib library\n" ); fprintf( pErr, "\t-s : toggles writing short form [default = %s]\n", fShort? "yes" : "no" ); fprintf( pErr, "\t-a : toggles writing min-area gates [default = %s]\n", fSelected? "yes" : "no" ); fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", fVerbose? "yes" : "no" ); fprintf( pErr, "\t-h : print the command usage\n"); return 1; }
/**Function************************************************************* Synopsis [Command procedure to read LUT libraries.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ int Mio_CommandPrintLibrary( Abc_Frame_t * pAbc, int argc, char **argv ) { FILE * pOut, * pErr; Abc_Ntk_t * pNet; int fVerbose; int c; pNet = Abc_FrameReadNtk(pAbc); pOut = Abc_FrameReadOut(pAbc); pErr = Abc_FrameReadErr(pAbc); // set the defaults fVerbose = 1; Extra_UtilGetoptReset(); while ( (c = Extra_UtilGetopt(argc, argv, "vh")) != EOF ) { switch (c) { case 'v': fVerbose ^= 1; break; case 'h': goto usage; break; default: goto usage; } } if ( argc != globalUtilOptind ) { goto usage; } // set the new network Mio_WriteLibrary( stdout, Abc_FrameReadLibGen(), 0 ); return 0; usage: fprintf( pErr, "\nusage: print_library [-vh]\n"); fprintf( pErr, "\t print the current genlib library\n" ); fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", (fVerbose? "yes" : "no") ); fprintf( pErr, "\t-h : print the command usage\n"); return 1; /* error exit */ }
/**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; char * FileNameSuper; char * CommandSuper; char * CommandRead; FILE * pFile; if ( pLib == NULL ) return 0; FileNameGenlib = ABC_ALLOC( char, 10000 ); FileNameSuper = ABC_ALLOC( char, 10000 ); CommandSuper = ABC_ALLOC( char, 10000 ); CommandRead = ABC_ALLOC( char, 10000 ); // 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 ); ABC_FREE( pNameGeneric ); sprintf( CommandSuper, "super -L 1 -I 5 -D 10000000 -A 10000000 -T 100 %s", FileNameGenlib ); if ( Cmd_CommandExecute( pAbc, CommandSuper ) ) { ABC_FREE( FileNameGenlib ); ABC_FREE( FileNameSuper ); ABC_FREE( CommandSuper ); ABC_FREE( CommandRead ); fprintf( stdout, "Cannot execute command \"%s\".\n", CommandSuper ); return 0; } //#ifdef WIN32 // _unlink( FileNameGenlib ); //#else // unlink( FileNameGenlib ); //#endif printf( "A simple supergate library is derived from gate library \"%s\".\n", Mio_LibraryReadName(pLib) ); fflush( stdout ); 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 ); ABC_FREE( FileNameGenlib ); ABC_FREE( FileNameSuper ); ABC_FREE( CommandSuper ); ABC_FREE( CommandRead ); return 0; } //#ifdef WIN32 // _unlink( FileNameSuper ); //#else // unlink( FileNameSuper ); //#endif ABC_FREE( FileNameGenlib ); ABC_FREE( FileNameSuper ); ABC_FREE( CommandSuper ); ABC_FREE( CommandRead ); return 1; }
/**Function************************************************************* Synopsis [Command procedure to read LUT libraries.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ int Mio_CommandWriteGenlib( Abc_Frame_t * pAbc, int argc, char **argv ) { FILE * pOut, * pErr, * pFile; char * pFileName; int fSelected = 0; int fVerbose = 0; int c; pOut = Abc_FrameReadOut(pAbc); pErr = Abc_FrameReadErr(pAbc); Extra_UtilGetoptReset(); while ( (c = Extra_UtilGetopt(argc, argv, "vah")) != EOF ) { switch (c) { case 'v': fVerbose ^= 1; break; case 'a': fSelected ^= 1; break; case 'h': goto usage; break; default: goto usage; } } if ( Abc_FrameReadLibGen() == NULL ) { printf( "Library is not available.\n" ); return 1; } if ( argc != globalUtilOptind + 1 ) { printf( "The file name is not given.\n" ); return 1; } pFileName = argv[globalUtilOptind]; pFile = fopen( pFileName, "w" ); if ( pFile == NULL ) { printf( "Error! Cannot open file \"%s\" for writing the library.\n", pFileName ); return 1; } Mio_WriteLibrary( pFile, (Mio_Library_t *)Abc_FrameReadLibGen(), 0, 0, fSelected ); fclose( pFile ); printf( "The current genlib library is written into file \"%s\".\n", pFileName ); return 0; usage: fprintf( pErr, "\nusage: write_genlib [-vah] <file>\n"); fprintf( pErr, "\t writes the current genlib library into a file\n" ); fprintf( pErr, "\t-v : toggles enabling of verbose output [default = %s]\n", fVerbose? "yes" : "no" ); fprintf( pErr, "\t-a : toggles writing min-area gates [default = %s]\n", fSelected? "yes" : "no" ); fprintf( pErr, "\t-h : print the command usage\n"); fprintf( pErr, "\t<file> : optional file name to write the library\n"); return 1; }