Commit f6b9cc01 by Alan Mishchenko

Adding parameters and improvements to %blast.

parent 7e9f3f02
......@@ -92,6 +92,7 @@ extern ABC_DLL void Abc_NtkSetAndGateDelay( Abc_Frame_t * pAbc, float Delay );
extern ABC_DLL int * Abc_NtkOutputMiniMapping( Abc_Frame_t * pAbc );
extern ABC_DLL void Abc_NtkPrintMiniMapping( int * pArray );
extern ABC_DLL int * Abc_FrameReadArrayMapping( Abc_Frame_t * pAbc );
extern ABC_DLL int * Abc_FrameReadBoxes( Abc_Frame_t * pAbc );
// procedures to access verifization status and a counter-example
extern ABC_DLL int Abc_FrameReadProbStatus( Abc_Frame_t * pAbc );
......
......@@ -161,6 +161,7 @@ extern ABC_DLL void Abc_FrameSetDrivingCell( char * pName );
extern ABC_DLL void Abc_FrameSetMaxLoad( float Load );
extern ABC_DLL void Abc_FrameSetArrayMapping( int * p );
extern ABC_DLL void Abc_FrameSetBoxes( int * p );
ABC_NAMESPACE_HEADER_END
......
......@@ -111,6 +111,9 @@ void Abc_FrameSetMaxLoad( float Load ) { s_GlobalFrame->Ma
int * Abc_FrameReadArrayMapping( Abc_Frame_t * pAbc ) { return pAbc->pArray; }
void Abc_FrameSetArrayMapping( int * p ) { ABC_FREE( s_GlobalFrame->pArray ); s_GlobalFrame->pArray = p; }
int * Abc_FrameReadBoxes( Abc_Frame_t * pAbc ) { return pAbc->pBoxes; }
void Abc_FrameSetBoxes( int * p ) { ABC_FREE( s_GlobalFrame->pBoxes ); s_GlobalFrame->pBoxes = p; }
/**Function*************************************************************
Synopsis [Returns 1 if the flag is enabled without value or with value 1.]
......@@ -236,6 +239,7 @@ void Abc_FrameDeallocate( Abc_Frame_t * p )
Vec_IntFreeP( &p->vCopyMiniAig );
Vec_IntFreeP( &p->vCopyMiniLut );
ABC_FREE( p->pArray );
ABC_FREE( p->pBoxes );
ABC_FREE( p );
s_GlobalFrame = NULL;
......
......@@ -149,6 +149,7 @@ struct Abc_Frame_t_
Vec_Int_t * vCopyMiniAig;
Vec_Int_t * vCopyMiniLut;
int * pArray;
int * pBoxes;
Abc_Frame_Callback_BmcFrameDone_Func pFuncOnFrameDone;
};
......
......@@ -1082,7 +1082,6 @@ Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pParIn )
If_LibBoxAdd( pBoxLib, pBox );
for ( k = 0; k < pBox->nPis * pBox->nPos; k++ )
pBox->pDelays[k] = 1;
printf( "adding box %s\n", Buffer);
}
else if ( Wlc_ObjIsCi(pObj) )
{
......
......@@ -41,6 +41,16 @@ ABC_NAMESPACE_IMPL_START
SeeAlso []
***********************************************************************/
void Wlc_NtkCollectBoxes( Wlc_Ntk_t * p, Vec_Int_t * vBoxIds )
{
int i, iObj;
Vec_Int_t * vBoxes = Vec_IntAlloc( Vec_IntSize(vBoxIds) + 1 );
Vec_IntPush( vBoxes, Vec_IntSize(vBoxIds) );
Vec_IntForEachEntry( vBoxIds, iObj, i )
Vec_IntPush( vBoxes, Wlc_ObjNameId(p, iObj) );
Abc_FrameSetBoxes( Vec_IntReleaseArray(vBoxes) );
Vec_IntFree( vBoxes );
}
Vec_Int_t * Wlc_NtkCollectAddMult( Wlc_Ntk_t * p, Wlc_BstPar_t * pPar, int * pCountA, int * pCountM )
{
Vec_Int_t * vBoxIds;
......@@ -57,7 +67,10 @@ Vec_Int_t * Wlc_NtkCollectAddMult( Wlc_Ntk_t * p, Wlc_BstPar_t * pPar, int * pCo
Vec_IntPush( vBoxIds, i ), (*pCountM)++;
}
if ( Vec_IntSize( vBoxIds ) > 0 )
{
Wlc_NtkCollectBoxes( p, vBoxIds );
return vBoxIds;
}
Vec_IntFree( vBoxIds );
return NULL;
}
......
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