diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/base/abci/abc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index ec9bc97d..54348c31 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -29668,12 +29668,20 @@ int Abc_CommandAbc9Put( Abc_Frame_t * pAbc, int argc, char ** argv ) // transfer PO names to pNtk if ( pAbc->pGia->vNamesOut ) { + char pSuffix[100]; Abc_Obj_t * pObj; - int i; + int i, nDigits = Abc_Base10Log( Abc_NtkLatchNum(pNtk) ); Abc_NtkForEachCo( pNtk, pObj, i ) { if (i < Vec_PtrSize(pAbc->pGia->vNamesOut)) { Nm_ManDeleteIdName(pNtk->pManName, pObj->Id); - Abc_ObjAssignName( pObj, (char *)Vec_PtrEntry(pAbc->pGia->vNamesOut, i), NULL ); + if ( Abc_ObjIsPo(pObj) ) + Abc_ObjAssignName( pObj, (char *)Vec_PtrEntry(pAbc->pGia->vNamesOut, i), NULL ); + else + { + assert( i >= Abc_NtkPoNum(pNtk) ); + sprintf( pSuffix, "_li%0*d", nDigits, i-Abc_NtkPoNum(pNtk) ); + Abc_ObjAssignName( pObj, (char *)Vec_PtrEntry(pAbc->pGia->vNamesOut, i), pSuffix ); + } } } } |