mirror of https://github.com/YosysHQ/abc.git
Adding names to GIA inputs/outputs (addressing x-valued flops).
This commit is contained in:
parent
617055f5a2
commit
68bc46be0e
|
|
@ -551,7 +551,7 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Vec_Int_t * vBoxIds )
|
||||||
int nRange, nRange0, nRange1, nRange2;
|
int nRange, nRange0, nRange1, nRange2;
|
||||||
int i, k, b, iFanin, iLit, nAndPrev, * pFans0, * pFans1, * pFans2;
|
int i, k, b, iFanin, iLit, nAndPrev, * pFans0, * pFans1, * pFans2;
|
||||||
int nFFins = 0, nFFouts = 0, curPi = 0, curPo = 0;
|
int nFFins = 0, nFFouts = 0, curPi = 0, curPo = 0;
|
||||||
int nBitCis = 0, nBitCos = 0;
|
int nBitCis = 0, nBitCos = 0, fAdded = 0;
|
||||||
Vec_IntClear( vBits );
|
Vec_IntClear( vBits );
|
||||||
Vec_IntGrow( vBits, nBits );
|
Vec_IntGrow( vBits, nBits );
|
||||||
vTemp0 = Vec_IntAlloc( 1000 );
|
vTemp0 = Vec_IntAlloc( 1000 );
|
||||||
|
|
@ -1027,6 +1027,36 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Vec_Int_t * vBoxIds )
|
||||||
// create input names
|
// create input names
|
||||||
pNew->vNamesIn = Vec_PtrAlloc( Gia_ManCiNum(pNew) );
|
pNew->vNamesIn = Vec_PtrAlloc( Gia_ManCiNum(pNew) );
|
||||||
Wlc_NtkForEachCi( p, pObj, i )
|
Wlc_NtkForEachCi( p, pObj, i )
|
||||||
|
if ( Wlc_ObjIsPi(pObj) )
|
||||||
|
{
|
||||||
|
char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
|
||||||
|
nRange = Wlc_ObjRange( pObj );
|
||||||
|
if ( nRange == 1 )
|
||||||
|
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav(pName) );
|
||||||
|
else
|
||||||
|
for ( k = 0; k < nRange; k++ )
|
||||||
|
{
|
||||||
|
char Buffer[1000];
|
||||||
|
sprintf( Buffer, "%s[%d]", pName, k );
|
||||||
|
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav(Buffer) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( p->pInits )
|
||||||
|
{
|
||||||
|
int Length = strlen(p->pInits);
|
||||||
|
for ( i = 0; i < Length; i++ )
|
||||||
|
if ( p->pInits[i] == 'x' || p->pInits[i] == 'X' )
|
||||||
|
{
|
||||||
|
char Buffer[100];
|
||||||
|
sprintf( Buffer, "%s%d", "init", i );
|
||||||
|
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav(Buffer) );
|
||||||
|
fAdded = 1;
|
||||||
|
}
|
||||||
|
if ( fAdded )
|
||||||
|
Vec_PtrPush( pNew->vNamesIn, Abc_UtilStrsav("abc_reset_flop") );
|
||||||
|
}
|
||||||
|
Wlc_NtkForEachCi( p, pObj, i )
|
||||||
|
if ( !Wlc_ObjIsPi(pObj) )
|
||||||
{
|
{
|
||||||
char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
|
char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
|
||||||
nRange = Wlc_ObjRange( pObj );
|
nRange = Wlc_ObjRange( pObj );
|
||||||
|
|
@ -1042,8 +1072,27 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Vec_Int_t * vBoxIds )
|
||||||
}
|
}
|
||||||
assert( Vec_PtrSize(pNew->vNamesIn) == Gia_ManCiNum(pNew) );
|
assert( Vec_PtrSize(pNew->vNamesIn) == Gia_ManCiNum(pNew) );
|
||||||
// create output names
|
// create output names
|
||||||
|
/*
|
||||||
pNew->vNamesOut = Vec_PtrAlloc( Gia_ManCoNum(pNew) );
|
pNew->vNamesOut = Vec_PtrAlloc( Gia_ManCoNum(pNew) );
|
||||||
Wlc_NtkForEachCo( p, pObj, i )
|
Wlc_NtkForEachCo( p, pObj, i )
|
||||||
|
if ( Wlc_ObjIsPo(pObj) )
|
||||||
|
{
|
||||||
|
char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
|
||||||
|
nRange = Wlc_ObjRange( pObj );
|
||||||
|
if ( 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 ( fAdded )
|
||||||
|
Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav("abc_reset_flop_in") );
|
||||||
|
Wlc_NtkForEachCo( p, pObj, i )
|
||||||
|
if ( !Wlc_ObjIsPo(pObj) )
|
||||||
{
|
{
|
||||||
char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
|
char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
|
||||||
nRange = Wlc_ObjRange( pObj );
|
nRange = Wlc_ObjRange( pObj );
|
||||||
|
|
@ -1058,6 +1107,7 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Vec_Int_t * vBoxIds )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert( Vec_PtrSize(pNew->vNamesOut) == Gia_ManCoNum(pNew) );
|
assert( Vec_PtrSize(pNew->vNamesOut) == Gia_ManCoNum(pNew) );
|
||||||
|
*/
|
||||||
return pNew;
|
return pNew;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue