summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-09-20 12:41:59 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-09-20 12:41:59 -0700
commitbc44087bacba80b775ac7956ed9032c517308e03 (patch)
tree31c8508d8bf2c2da05120dd90a607a63faf3fc05 /src/base
parentfdfb083c5c4f789c74aa573144b0aec45d1aaa76 (diff)
downloadabc-bc44087bacba80b775ac7956ed9032c517308e03.tar.gz
abc-bc44087bacba80b775ac7956ed9032c517308e03.tar.bz2
abc-bc44087bacba80b775ac7956ed9032c517308e03.zip
Modified 'read' to read all types of libraries (genlib, liberty, scl).
Diffstat (limited to 'src/base')
-rw-r--r--src/base/io/io.c18
-rw-r--r--src/base/io/ioAbc.h1
2 files changed, 17 insertions, 2 deletions
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 );