summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2020-11-22 23:02:35 -1000
committerAlan Mishchenko <alanmi@berkeley.edu>2020-11-22 23:02:35 -1000
commit22f36299aa6597cb5716bb73e94f56cd8f74ca04 (patch)
treee0e3acef4bfeb97ca093c6f00fcb4d095d4c6f9a
parent2e92256fb7bb64454a9f2c7b0bf8d1020b0ac78f (diff)
downloadabc-22f36299aa6597cb5716bb73e94f56cd8f74ca04.tar.gz
abc-22f36299aa6597cb5716bb73e94f56cd8f74ca04.tar.bz2
abc-22f36299aa6597cb5716bb73e94f56cd8f74ca04.zip
Added an option to keep PI/PO names unchanged in 'short_names'.
-rw-r--r--src/base/abc/abc.h1
-rw-r--r--src/base/abc/abcNames.c11
-rw-r--r--src/base/abci/abc.c15
3 files changed, 23 insertions, 4 deletions
diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h
index c36bde70..65ab604c 100644
--- a/src/base/abc/abc.h
+++ b/src/base/abc/abc.h
@@ -752,6 +752,7 @@ extern ABC_DLL void Abc_NtkAddDummyPiNames( Abc_Ntk_t * pNtk );
extern ABC_DLL void Abc_NtkAddDummyPoNames( Abc_Ntk_t * pNtk );
extern ABC_DLL void Abc_NtkAddDummyBoxNames( Abc_Ntk_t * pNtk );
extern ABC_DLL void Abc_NtkShortNames( Abc_Ntk_t * pNtk );
+extern ABC_DLL void Abc_NtkCleanNames( Abc_Ntk_t * pNtk );
extern ABC_DLL void Abc_NtkStartNameIds( Abc_Ntk_t * p );
extern ABC_DLL void Abc_NtkTransferNameIds( Abc_Ntk_t * p, Abc_Ntk_t * pNew );
extern ABC_DLL void Abc_NtkUpdateNameIds( Abc_Ntk_t * p );
diff --git a/src/base/abc/abcNames.c b/src/base/abc/abcNames.c
index fe9b3dca..dec5f01e 100644
--- a/src/base/abc/abcNames.c
+++ b/src/base/abc/abcNames.c
@@ -606,6 +606,17 @@ void Abc_NtkShortNames( Abc_Ntk_t * pNtk )
Abc_NtkAddDummyPoNames( pNtk );
Abc_NtkAddDummyBoxNames( pNtk );
}
+void Abc_NtkCleanNames( Abc_Ntk_t * pNtk )
+{
+ Abc_Obj_t * pObj; int i;
+ Nm_Man_t * pManName = Nm_ManCreate( Abc_NtkCiNum(pNtk) + Abc_NtkCoNum(pNtk) + Abc_NtkBoxNum(pNtk) );
+ Abc_NtkForEachCi( pNtk, pObj, i )
+ Nm_ManStoreIdName( pManName, pObj->Id, pObj->Type, Abc_ObjName(pObj), NULL );
+ Abc_NtkForEachCo( pNtk, pObj, i )
+ Nm_ManStoreIdName( pManName, pObj->Id, pObj->Type, Abc_ObjName(pObj), NULL );
+ Nm_ManFree( pNtk->pManName );
+ pNtk->pManName = pManName;
+}
/**Function*************************************************************
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index 206e668c..144a6bd0 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -12196,13 +12196,16 @@ usage:
int Abc_CommandShortNames( Abc_Frame_t * pAbc, int argc, char ** argv )
{
Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc);
- int c;
+ int c, fKeepIo = 0;
// set defaults
Extra_UtilGetoptReset();
- while ( ( c = Extra_UtilGetopt( argc, argv, "h" ) ) != EOF )
+ while ( ( c = Extra_UtilGetopt( argc, argv, "kh" ) ) != EOF )
{
switch ( c )
{
+ case 'k':
+ fKeepIo ^= 1;
+ break;
case 'h':
goto usage;
default:
@@ -12215,12 +12218,16 @@ int Abc_CommandShortNames( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "Empty network.\n" );
return 1;
}
- Abc_NtkShortNames( pNtk );
+ if ( fKeepIo )
+ Abc_NtkCleanNames( pNtk );
+ else
+ Abc_NtkShortNames( pNtk );
return 0;
usage:
- Abc_Print( -2, "usage: short_names [-h]\n" );
+ Abc_Print( -2, "usage: short_names [-kh]\n" );
Abc_Print( -2, "\t replaces PI/PO/latch names by short char strings\n" );
+ Abc_Print( -2, "\t-k : toggle keeping PI/PO names unchanged [default = %s]\n", fKeepIo? "yes": "no" );
Abc_Print( -2, "\t-h : print the command usage\n");
return 1;
}