From bc44087bacba80b775ac7956ed9032c517308e03 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Thu, 20 Sep 2012 12:41:59 -0700 Subject: Modified 'read' to read all types of libraries (genlib, liberty, scl). --- src/base/io/io.c | 18 ++++++++++++++++-- src/base/io/ioAbc.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/base') diff --git a/src/base/io/io.c b/src/base/io/io.c index 37774a8c..7894caa1 100644 --- a/src/base/io/io.c +++ b/src/base/io/io.c @@ -165,10 +165,10 @@ void Io_End( Abc_Frame_t * pAbc ) ***********************************************************************/ int IoCommandRead( Abc_Frame_t * pAbc, int argc, char ** argv ) { + char Command[1000]; Abc_Ntk_t * pNtk; char * pFileName, * pTemp; - int fCheck; - int c; + int c, fCheck; fCheck = 1; glo_fMapped = 0; @@ -197,6 +197,20 @@ int IoCommandRead( Abc_Frame_t * pAbc, int argc, char ** argv ) for ( pTemp = pFileName; *pTemp; pTemp++ ) if ( *pTemp == '>' ) *pTemp = '\\'; + // read libraries + Command[0] = 0; + assert( strlen(pFileName) < 900 ); + if ( !strcmp( Extra_FileNameExtension(pFileName), "genlib" ) ) + sprintf( Command, "read_library %s", pFileName ); + else if ( !strcmp( Extra_FileNameExtension(pFileName), "lib" ) ) + sprintf( Command, "read_liberty %s", pFileName ); + else if ( !strcmp( Extra_FileNameExtension(pFileName), "scl" ) ) + sprintf( Command, "read_scl %s", pFileName ); + if ( Command[0] ) + { + Cmd_CommandExecute( pAbc, Command ); + return 0; + } // check if the library is available if ( glo_fMapped && Abc_FrameReadLibGen() == NULL ) { diff --git a/src/base/io/ioAbc.h b/src/base/io/ioAbc.h index a5f56bfb..039f53c0 100644 --- a/src/base/io/ioAbc.h +++ b/src/base/io/ioAbc.h @@ -134,6 +134,7 @@ extern int Io_WriteSmv( Abc_Ntk_t * pNtk, char * FileName ); extern void Io_WriteVerilog( Abc_Ntk_t * pNtk, char * FileName ); /*=== abcUtil.c ===============================================================*/ extern Io_FileType_t Io_ReadFileType( char * pFileName ); +extern Io_FileType_t Io_ReadLibType( char * pFileName ); extern Abc_Ntk_t * Io_ReadNetlist( char * pFileName, Io_FileType_t FileType, int fCheck ); extern Abc_Ntk_t * Io_Read( char * pFileName, Io_FileType_t FileType, int fCheck ); extern void Io_Write( Abc_Ntk_t * pNtk, char * pFileName, Io_FileType_t FileType ); -- cgit v1.2.3