Commit 01e1b634 by Alan Mishchenko

Bug fix in the bit-blaster.

parent 5a4592ee
...@@ -454,9 +454,9 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p ) ...@@ -454,9 +454,9 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p )
int nRangeMax = Abc_MaxInt( nRange, nRange0 ); int nRangeMax = Abc_MaxInt( nRange, nRange0 );
int * pArg0 = Wlc_VecLoadFanins( vTemp0, pFans0, nRange0, nRangeMax, Wlc_ObjFanin0(p, pObj)->Signed ); int * pArg0 = Wlc_VecLoadFanins( vTemp0, pFans0, nRange0, nRangeMax, Wlc_ObjFanin0(p, pObj)->Signed );
if ( pObj->Type == WLC_OBJ_SHIFT_R || pObj->Type == WLC_OBJ_SHIFT_RA ) if ( pObj->Type == WLC_OBJ_SHIFT_R || pObj->Type == WLC_OBJ_SHIFT_RA )
Wlc_BlastShiftRight( pNew, pArg0, nRangeMax, pFans1, nRange1, pObj->Type == WLC_OBJ_SHIFT_RA, vRes ); Wlc_BlastShiftRight( pNew, pArg0, nRangeMax, pFans1, nRange1, Wlc_ObjFanin0(p, pObj)->Signed && pObj->Type == WLC_OBJ_SHIFT_RA, vRes );
else else
Wlc_BlastShiftLeft( pNew, pArg0, nRangeMax, pFans1, nRange1, pObj->Type == WLC_OBJ_SHIFT_LA, vRes ); Wlc_BlastShiftLeft( pNew, pArg0, nRangeMax, pFans1, nRange1, 0, vRes );
Vec_IntShrink( vRes, nRange ); Vec_IntShrink( vRes, nRange );
} }
else if ( pObj->Type == WLC_OBJ_ROTATE_R ) else if ( pObj->Type == WLC_OBJ_ROTATE_R )
...@@ -622,7 +622,7 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p ) ...@@ -622,7 +622,7 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p )
else else
Wlc_BlastDivider( pNew, pArg0, nRangeMax, pArg1, nRangeMax, pObj->Type == WLC_OBJ_ARI_DIVIDE, vRes ); Wlc_BlastDivider( pNew, pArg0, nRangeMax, pArg1, nRangeMax, pObj->Type == WLC_OBJ_ARI_DIVIDE, vRes );
Vec_IntShrink( vRes, nRange ); Vec_IntShrink( vRes, nRange );
// Wlc_BlastZeroCondition( pNew, pFans1, nRange1, vRes ); Wlc_BlastZeroCondition( pNew, pFans1, nRange1, vRes );
} }
else if ( pObj->Type == WLC_OBJ_ARI_MINUS ) else if ( pObj->Type == WLC_OBJ_ARI_MINUS )
{ {
......
...@@ -1102,7 +1102,7 @@ int Abc_IsopTest( word * pFunc, int nVars, Vec_Int_t * vCover ) ...@@ -1102,7 +1102,7 @@ int Abc_IsopTest( word * pFunc, int nVars, Vec_Int_t * vCover )
TotalCost[4] += Abc_CostCubes(Cost); TotalCost[4] += Abc_CostCubes(Cost);
TotalTime[4] += Abc_Clock() - clk; TotalTime[4] += Abc_Clock() - clk;
*/ */
/*
// try old computation // try old computation
clk = Abc_Clock(); clk = Abc_Clock();
Cost = Kit_TruthIsop( (unsigned *)pFunc, nVars, vCover, 1 ); Cost = Kit_TruthIsop( (unsigned *)pFunc, nVars, vCover, 1 );
...@@ -1112,7 +1112,7 @@ int Abc_IsopTest( word * pFunc, int nVars, Vec_Int_t * vCover ) ...@@ -1112,7 +1112,7 @@ int Abc_IsopTest( word * pFunc, int nVars, Vec_Int_t * vCover )
printf( "%5d %7d ", Vec_IntSize(vCover), Abc_IsopCountLits(vCover, nVars) ); printf( "%5d %7d ", Vec_IntSize(vCover), Abc_IsopCountLits(vCover, nVars) );
TotalCost[4] += Vec_IntSize(vCover); TotalCost[4] += Vec_IntSize(vCover);
TotalTime[4] += Abc_Clock() - clk; TotalTime[4] += Abc_Clock() - clk;
*/
clk = Abc_Clock(); clk = Abc_Clock();
Cost = Abc_Isop( pFunc, nVars, ABC_ISOP_MAX_CUBE, vCover, 1 ); Cost = Abc_Isop( pFunc, nVars, ABC_ISOP_MAX_CUBE, vCover, 1 );
......
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