Several recent bug fixes.

This commit is contained in:
Alan Mishchenko 2018-11-04 20:24:33 +08:00
parent 455e0bae3e
commit 4d56acfd5a
4 changed files with 10 additions and 6 deletions

View File

@ -2232,7 +2232,7 @@ Gia_Man_t * Gia_ManPerformMappingInt( Gia_Man_t * p, If_Par_t * pPars )
{
extern void Gia_ManIffTest( Gia_Man_t * pGia, If_LibLut_t * pLib, int fVerbose );
Gia_Man_t * pNew;
If_Man_t * pIfMan; int i, Entry, EntryF;
If_Man_t * pIfMan; int i, Id, Entry, EntryF;
assert( pPars->pTimesArr == NULL );
assert( pPars->pTimesReq == NULL );
if ( p->vCiArrs )
@ -2244,11 +2244,10 @@ Gia_Man_t * Gia_ManPerformMappingInt( Gia_Man_t * p, If_Par_t * pPars )
}
else if ( p->vInArrs )
{
int Id, And2Delay = p->And2Delay ? p->And2Delay : 1;
assert( Vec_FltSize(p->vInArrs) == Gia_ManCiNum(p) );
pPars->pTimesArr = ABC_CALLOC( float, Gia_ManCiNum(p));
Gia_ManForEachCiId( p, Id, i )
pPars->pTimesArr[i] = Vec_FltEntry(p->vInArrs, i)/And2Delay;
pPars->pTimesArr[i] = Vec_FltEntry(p->vInArrs, i);
}
if ( p->vCoReqs )
{

View File

@ -1354,7 +1354,7 @@ int Ivy_FraigCheckOutputSims( Ivy_FraigMan_t * p )
// pObj = Ivy_ManPo( p->pManAig, 0 );
Ivy_ManForEachPo( p->pManAig, pObj, i )
{
assert( Ivy_ObjFanin0(pObj)->fPhase == (unsigned)Ivy_ObjFaninC0(pObj) ); // Ivy_ObjFaninPhase(Ivy_ObjChild0(pObj)) == 0
//assert( Ivy_ObjFanin0(pObj)->fPhase == (unsigned)Ivy_ObjFaninC0(pObj) ); // Ivy_ObjFaninPhase(Ivy_ObjChild0(pObj)) == 0
// complement simulation info
// if ( Ivy_ObjFanin0(pObj)->fPhase ^ Ivy_ObjFaninC0(pObj) ) // Ivy_ObjFaninPhase(Ivy_ObjChild0(pObj))
// Ivy_NodeComplementSim( p, Ivy_ObjFanin0(pObj) );

View File

@ -482,6 +482,7 @@ Abc_Ntk_t * Abc_NtkIvyFraig( Abc_Ntk_t * pNtk, int nConfLimit, int fDoSparse, in
}
else
pNtkAig = Abc_NtkIvyAfter( pNtk, pMan, 0, 0 );
pNtkAig->pModel = (int *)pMan->pData; pMan->pData = NULL;
Ivy_ManStop( pTemp );
Ivy_ManStop( pMan );
return pNtkAig;

View File

@ -2309,12 +2309,16 @@ 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) );
{
char Buffer[1000];
sprintf( Buffer, "%s_fi", pName );
Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) );
}
else
for ( k = 0; k < nRange; k++ )
{
char Buffer[1000];
sprintf( Buffer, "%s[%d]", pName, k );
sprintf( Buffer, "%s_fi[%d]", pName, k );
Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) );
}
}