Exploring multiplier boundaries.

This commit is contained in:
Alan Mishchenko 2025-09-30 15:49:14 -07:00
parent 613fa4f5eb
commit 4c25599cce
1 changed files with 44 additions and 0 deletions

View File

@ -1336,6 +1336,49 @@ void Wlc_BlastBooth( Gia_Man_t * pNew, int * pArgA, int * pArgB, int nArgA, int
Vec_IntFree( vArgB );
}
void Wlc_NtkDumpMulties( Wlc_Ntk_t * p, Gia_Man_t * pNew )
{
Wlc_Obj_t * pObj; int i;
Gia_ManCreateRefs( pNew );
Wlc_NtkForEachObj( p, pObj, i ) {
if ( pObj->Type != WLC_OBJ_ARI_MULTI )
continue;
int fSigned = Wlc_ObjIsSignedFanin01(p, pObj);
int nRange = Wlc_ObjRange( pObj );
int nRange0 = Wlc_ObjRange( Wlc_ObjFanin0(p, pObj) );
int nRange1 = Wlc_ObjRange( Wlc_ObjFanin1(p, pObj) );
int * pFans = Vec_IntEntryP( &p->vBits, Wlc_ObjCopy(p, i) );
int * pFans0 = Vec_IntEntryP( &p->vBits, Wlc_ObjCopy(p, Wlc_ObjFaninId0(pObj)) );
int * pFans1 = Vec_IntEntryP( &p->vBits, Wlc_ObjCopy(p, Wlc_ObjFaninId1(pObj)) );
printf( "\n%d\n", fSigned );
printf( "%2d :", nRange0 );
for ( int k = 0; k < nRange0; k++ )
if ( pFans0[k] == -1 )
printf( " -" );
else
printf( " %c%d(%d)", Abc_LitIsCompl(pFans0[k])?'-':'+', Abc_Lit2Var(pFans0[k]), Gia_ObjRefNumId(pNew, Abc_Lit2Var(pFans0[k])) );
printf( "\n" );
printf( "%2d :", nRange1 );
for ( int k = 0; k < nRange1; k++ )
if ( pFans1[k] == -1 )
printf( " -" );
else
printf( " %c%d(%d)", Abc_LitIsCompl(pFans1[k])?'-':'+', Abc_Lit2Var(pFans1[k]), Gia_ObjRefNumId(pNew, Abc_Lit2Var(pFans1[k])) );
printf( "\n" );
printf( "%2d :", nRange );
for ( int k = 0; k < nRange; k++ )
if ( pFans[k] == -1 )
printf( " -" );
else
printf( " %c%d(%d)", Abc_LitIsCompl(pFans[k])?'-':'+', Abc_Lit2Var(pFans[k]), Gia_ObjRefNumId(pNew, Abc_Lit2Var(pFans[k])) );
printf( "\n" );
}
}
/**Function*************************************************************
Synopsis []
@ -2696,6 +2739,7 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn )
// Abc_Frame_t * pAbc = Abc_FrameGetGlobalFrame();
// pAbc->vMiniLutObjs = Gia_ManDeriveBoxMapping( pNew );
// }
//Wlc_NtkDumpMulties( p, pNew );
return pNew;
}