summaryrefslogtreecommitdiffstats
path: root/src/base/wlc/wlcBlast.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/wlc/wlcBlast.c')
-rw-r--r--src/base/wlc/wlcBlast.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/base/wlc/wlcBlast.c b/src/base/wlc/wlcBlast.c
index 01b6e64c..9b55c008 100644
--- a/src/base/wlc/wlcBlast.c
+++ b/src/base/wlc/wlcBlast.c
@@ -2055,7 +2055,7 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn )
}
else
{
- pNew = Gia_ManDupZeroUndc( pTemp = pNew, p->pInits, pPar->fGiaSimple, 0 );
+ pNew = Gia_ManDupZeroUndc( pTemp = pNew, p->pInits, pPar->fSaveFfNames ? 1+Gia_ManRegNum(pNew) : 0, pPar->fGiaSimple, 0 );
Gia_ManDupRemapLiterals( vBits, pTemp );
Gia_ManStop( pTemp );
}
@@ -2121,10 +2121,13 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn )
if ( p->pInits[i] == 'x' || p->pInits[i] == 'X' )
{
char Buffer[100];
- sprintf( Buffer, "%s%d", "init", i );
+ sprintf( Buffer, "_%s_abc_%d_", "init", i );
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav(Buffer) );
fAdded = 1;
}
+ if ( pPar->fSaveFfNames )
+ for ( i = 0; i < 1+Length; i++ )
+ Vec_PtrPush( pNew->vNamesIn, NULL );
}
Wlc_NtkForEachCi( p, pObj, i )
if ( !Wlc_ObjIsPi(pObj) )
@@ -2173,6 +2176,25 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn )
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav(Buffer) );
}
}
+ if ( p->pInits && pPar->fSaveFfNames )
+ {
+ char * pName;
+ int Length = (int)strlen(p->pInits);
+ int NameStart = Vec_PtrSize(pNew->vNamesIn)-Length;
+ int NullStart = Vec_PtrSize(pNew->vNamesIn)-2*Length;
+ int SepStart = Vec_PtrSize(pNew->vNamesIn)-2*Length-1;
+ assert( Vec_PtrEntry(pNew->vNamesIn, SepStart) == NULL );
+ Vec_PtrWriteEntry( pNew->vNamesIn, SepStart, Abc_UtilStrsav("_abc_190121_abc_") );
+ for ( i = 0; i < Length; i++ )
+ {
+ char Buffer[100];
+ sprintf( Buffer, "%c%s", p->pInits[i], Vec_PtrEntry(pNew->vNamesIn, NameStart+i) );
+ assert( Vec_PtrEntry(pNew->vNamesIn, NullStart+i) == NULL );
+ Vec_PtrWriteEntry( pNew->vNamesIn, NullStart+i, Abc_UtilStrsav(Buffer) );
+ }
+ Vec_PtrForEachEntry( char *, pNew->vNamesIn, pName, i )
+ assert( pName != NULL );
+ }
if ( p->pInits && fAdded )
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav("abc_reset_flop") );
if ( pPar->vBoxIds )