diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/base/wlc/wlcBlast.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/base/wlc/wlcBlast.c b/src/base/wlc/wlcBlast.c index 9246264e..af11fcd4 100644 --- a/src/base/wlc/wlcBlast.c +++ b/src/base/wlc/wlcBlast.c @@ -1701,15 +1701,33 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn ) { char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj)); nRange = Wlc_ObjRange( pObj ); - if ( fSkipBitRange && nRange == 1 ) - Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(pName) ); - else + if ( pPar->fCreateMiter && nRange > 1 ) + { + Wlc_Obj_t * pObj2 = Wlc_NtkCo( p, ++i ); + char * pName2 = Wlc_ObjName(p, Wlc_ObjId(p, pObj2)); + int nRange1 = Wlc_ObjRange( pObj ); + assert( nRange == nRange1 ); for ( k = 0; k < nRange; k++ ) { char Buffer[1000]; sprintf( Buffer, "%s[%d]", pName, k ); Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) ); + sprintf( Buffer, "%s[%d]", pName2, k ); + Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) ); } + } + else + { + if ( fSkipBitRange && nRange == 1 ) + Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(pName) ); + else + for ( k = 0; k < nRange; k++ ) + { + char Buffer[1000]; + sprintf( Buffer, "%s[%d]", pName, k ); + Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) ); + } + } } if ( vAddObjs ) { |