mirror of https://github.com/YosysHQ/abc.git
Added switch -p in "read_lib" to skip writing cell prefix.
This commit is contained in:
parent
682480e5e9
commit
99e0e37da6
|
|
@ -184,13 +184,14 @@ int Scl_CommandReadLib( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
int fVerbose = 1;
|
||||
int fVeryVerbose = 0;
|
||||
int fMerge = 0;
|
||||
int fUsePrefix = 0;
|
||||
|
||||
SC_DontUse dont_use = {0};
|
||||
dont_use.dont_use_list = ABC_ALLOC(char *, argc);
|
||||
dont_use.size = 0;
|
||||
|
||||
Extra_UtilGetoptReset();
|
||||
while ( ( c = Extra_UtilGetopt( argc, argv, "SGMXdnuvwmh" ) ) != EOF )
|
||||
while ( ( c = Extra_UtilGetopt( argc, argv, "SGMXdnuvwmph" ) ) != EOF )
|
||||
{
|
||||
switch ( c )
|
||||
{
|
||||
|
|
@ -255,6 +256,9 @@ int Scl_CommandReadLib( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
case 'm':
|
||||
fMerge ^= 1;
|
||||
break;
|
||||
case 'p':
|
||||
fUsePrefix ^= 1;
|
||||
break;
|
||||
case 'h':
|
||||
goto usage;
|
||||
default:
|
||||
|
|
@ -270,7 +274,7 @@ int Scl_CommandReadLib( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
if (pLib2) Abc_SclLibFree(pLib2);
|
||||
return 1;
|
||||
}
|
||||
pLib = Abc_SclMergeLibraries( pLib1, pLib2 );
|
||||
pLib = Abc_SclMergeLibraries( pLib1, pLib2, fUsePrefix );
|
||||
Abc_SclLibFree(pLib1);
|
||||
Abc_SclLibFree(pLib2);
|
||||
}
|
||||
|
|
@ -279,7 +283,7 @@ int Scl_CommandReadLib( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
|
||||
SC_Lib * pLib_ext = (SC_Lib *)pAbc->pLibScl;
|
||||
if ( fMerge && pLib_ext != NULL && pLib1 != NULL ) {
|
||||
pLib = Abc_SclMergeLibraries( pLib_ext, pLib1 );
|
||||
pLib = Abc_SclMergeLibraries( pLib_ext, pLib1, fUsePrefix );
|
||||
if (pLib1) Abc_SclLibFree(pLib1);
|
||||
} else {
|
||||
pLib = pLib1;
|
||||
|
|
@ -320,7 +324,7 @@ int Scl_CommandReadLib( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
return 0;
|
||||
|
||||
usage:
|
||||
fprintf( pAbc->Err, "usage: read_lib [-SG float] [-M num] [-dnuvwmh] [-X cell_name] <file> <file2>\n" );
|
||||
fprintf( pAbc->Err, "usage: read_lib [-SG float] [-M num] [-dnuvwmph] [-X cell_name] <file> <file2>\n" );
|
||||
fprintf( pAbc->Err, "\t reads Liberty library from file\n" );
|
||||
fprintf( pAbc->Err, "\t-S float : the slew parameter used to generate the library [default = %.2f]\n", Slew );
|
||||
fprintf( pAbc->Err, "\t-G float : the gain parameter used to generate the library [default = %.2f]\n", Gain );
|
||||
|
|
@ -332,6 +336,7 @@ usage:
|
|||
fprintf( pAbc->Err, "\t-v : toggle writing verbose information [default = %s]\n", fVerbose? "yes": "no" );
|
||||
fprintf( pAbc->Err, "\t-w : toggle writing information about skipped gates [default = %s]\n", fVeryVerbose? "yes": "no" );
|
||||
fprintf( pAbc->Err, "\t-m : toggle merging library with exisiting library [default = %s]\n", fMerge? "yes": "no" );
|
||||
fprintf( pAbc->Err, "\t-p : toggle using prefix for the cell names [default = %s]\n", fUsePrefix? "yes": "no" );
|
||||
fprintf( pAbc->Err, "\t-h : prints the command summary\n" );
|
||||
fprintf( pAbc->Err, "\t<file> : the name of a file to read\n" );
|
||||
fprintf( pAbc->Err, "\t<file2> : the name of a file to read (optional)\n" );
|
||||
|
|
|
|||
|
|
@ -748,7 +748,7 @@ extern SC_Lib * Abc_SclReadFromStr( Vec_Str_t * vOut );
|
|||
extern SC_Lib * Abc_SclReadFromFile( char * pFileName );
|
||||
extern void Abc_SclWriteScl( char * pFileName, SC_Lib * p );
|
||||
extern void Abc_SclWriteLiberty( char * pFileName, SC_Lib * p );
|
||||
extern SC_Lib * Abc_SclMergeLibraries( SC_Lib * pLib1, SC_Lib * pLib2 );
|
||||
extern SC_Lib * Abc_SclMergeLibraries( SC_Lib * pLib1, SC_Lib * pLib2, int fUsePrefix );
|
||||
/*=== sclLibUtil.c ===============================================================*/
|
||||
extern void Abc_SclHashCells( SC_Lib * p );
|
||||
extern int Abc_SclCellFind( SC_Lib * p, char * pName );
|
||||
|
|
|
|||
|
|
@ -866,12 +866,12 @@ void Abc_SclWriteLiberty( char * pFileName, SC_Lib * p )
|
|||
SeeAlso []
|
||||
|
||||
***********************************************************************/
|
||||
SC_Lib * Abc_SclMergeLibraries( SC_Lib * pLib1, SC_Lib * pLib2 )
|
||||
SC_Lib * Abc_SclMergeLibraries( SC_Lib * pLib1, SC_Lib * pLib2, int fUsePrefix )
|
||||
{
|
||||
Vec_Str_t * vOut = Vec_StrAlloc( 10000 );
|
||||
int n_valid_cells2 = Abc_SclCountValidCells( pLib2 );
|
||||
Abc_SclWriteLibrary( vOut, pLib1, n_valid_cells2 );
|
||||
Abc_SclWriteLibraryCellsOnly( vOut, pLib2, 2 );
|
||||
Abc_SclWriteLibraryCellsOnly( vOut, pLib2, fUsePrefix ? 2 : 0 );
|
||||
SC_Lib * p = Abc_SclReadFromStr( vOut );
|
||||
p->pFileName = Abc_UtilStrsav( pLib1->pFileName );
|
||||
p->pName = ABC_ALLOC( char, strlen(pLib1->pName) + strlen(pLib2->pName) + 10 );
|
||||
|
|
|
|||
Loading…
Reference in New Issue