summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/base/wlc/wlcBlast.c24
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 )
{