Commit 4d56acfd by Alan Mishchenko

Several recent bug fixes.

parent 455e0bae
...@@ -2232,7 +2232,7 @@ Gia_Man_t * Gia_ManPerformMappingInt( Gia_Man_t * p, If_Par_t * pPars ) ...@@ -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 ); extern void Gia_ManIffTest( Gia_Man_t * pGia, If_LibLut_t * pLib, int fVerbose );
Gia_Man_t * pNew; 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->pTimesArr == NULL );
assert( pPars->pTimesReq == NULL ); assert( pPars->pTimesReq == NULL );
if ( p->vCiArrs ) if ( p->vCiArrs )
...@@ -2244,11 +2244,10 @@ Gia_Man_t * Gia_ManPerformMappingInt( Gia_Man_t * p, If_Par_t * pPars ) ...@@ -2244,11 +2244,10 @@ Gia_Man_t * Gia_ManPerformMappingInt( Gia_Man_t * p, If_Par_t * pPars )
} }
else if ( p->vInArrs ) else if ( p->vInArrs )
{ {
int Id, And2Delay = p->And2Delay ? p->And2Delay : 1;
assert( Vec_FltSize(p->vInArrs) == Gia_ManCiNum(p) ); assert( Vec_FltSize(p->vInArrs) == Gia_ManCiNum(p) );
pPars->pTimesArr = ABC_CALLOC( float, Gia_ManCiNum(p)); pPars->pTimesArr = ABC_CALLOC( float, Gia_ManCiNum(p));
Gia_ManForEachCiId( p, Id, i ) 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 ) if ( p->vCoReqs )
{ {
......
...@@ -1354,7 +1354,7 @@ int Ivy_FraigCheckOutputSims( Ivy_FraigMan_t * p ) ...@@ -1354,7 +1354,7 @@ int Ivy_FraigCheckOutputSims( Ivy_FraigMan_t * p )
// pObj = Ivy_ManPo( p->pManAig, 0 ); // pObj = Ivy_ManPo( p->pManAig, 0 );
Ivy_ManForEachPo( p->pManAig, pObj, i ) 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 // complement simulation info
// if ( Ivy_ObjFanin0(pObj)->fPhase ^ Ivy_ObjFaninC0(pObj) ) // Ivy_ObjFaninPhase(Ivy_ObjChild0(pObj)) // if ( Ivy_ObjFanin0(pObj)->fPhase ^ Ivy_ObjFaninC0(pObj) ) // Ivy_ObjFaninPhase(Ivy_ObjChild0(pObj))
// Ivy_NodeComplementSim( p, Ivy_ObjFanin0(pObj) ); // Ivy_NodeComplementSim( p, Ivy_ObjFanin0(pObj) );
......
...@@ -482,6 +482,7 @@ Abc_Ntk_t * Abc_NtkIvyFraig( Abc_Ntk_t * pNtk, int nConfLimit, int fDoSparse, in ...@@ -482,6 +482,7 @@ Abc_Ntk_t * Abc_NtkIvyFraig( Abc_Ntk_t * pNtk, int nConfLimit, int fDoSparse, in
} }
else else
pNtkAig = Abc_NtkIvyAfter( pNtk, pMan, 0, 0 ); pNtkAig = Abc_NtkIvyAfter( pNtk, pMan, 0, 0 );
pNtkAig->pModel = (int *)pMan->pData; pMan->pData = NULL;
Ivy_ManStop( pTemp ); Ivy_ManStop( pTemp );
Ivy_ManStop( pMan ); Ivy_ManStop( pMan );
return pNtkAig; return pNtkAig;
......
...@@ -2309,12 +2309,16 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn ) ...@@ -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)); char * pName = Wlc_ObjName(p, Wlc_ObjId(p, pObj));
nRange = Wlc_ObjRange( pObj ); nRange = Wlc_ObjRange( pObj );
if ( fSkipBitRange && nRange == 1 ) 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 else
for ( k = 0; k < nRange; k++ ) for ( k = 0; k < nRange; k++ )
{ {
char Buffer[1000]; char Buffer[1000];
sprintf( Buffer, "%s[%d]", pName, k ); sprintf( Buffer, "%s_fi[%d]", pName, k );
Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) ); Vec_PtrPush( pNew->vNamesOut, Abc_UtilStrsav(Buffer) );
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment