mirror of https://github.com/YosysHQ/abc.git
Several bug fixes and silencing requests.
This commit is contained in:
parent
1e757a8567
commit
7fe11c51cf
|
|
@ -282,7 +282,7 @@ Vec_Int_t * Gia_ManFxTopoOrder( Vec_Wec_t * vCubes, int nInputs, int nStart, Vec
|
||||||
// quit if there is no new nodes
|
// quit if there is no new nodes
|
||||||
if ( nNodeMax == nStart )
|
if ( nNodeMax == nStart )
|
||||||
{
|
{
|
||||||
printf( "The network is unchanged by fast extract.\n" );
|
//printf( "The network is unchanged by fast extract.\n" );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
// find first cube and how many cubes
|
// find first cube and how many cubes
|
||||||
|
|
@ -459,6 +459,8 @@ Gia_Man_t * Gia_ManPerformFx( Gia_Man_t * p, int nNewNodesMax, int LitCountMax,
|
||||||
Gia_Man_t * pNew = NULL;
|
Gia_Man_t * pNew = NULL;
|
||||||
Vec_Wec_t * vCubes;
|
Vec_Wec_t * vCubes;
|
||||||
Vec_Str_t * vCompl;
|
Vec_Str_t * vCompl;
|
||||||
|
if ( Gia_ManAndNum(p) == 0 )
|
||||||
|
return Gia_ManDup(p);
|
||||||
// abctime clk;
|
// abctime clk;
|
||||||
assert( Gia_ManHasMapping(p) );
|
assert( Gia_ManHasMapping(p) );
|
||||||
// collect information
|
// collect information
|
||||||
|
|
|
||||||
|
|
@ -30301,7 +30301,7 @@ int Abc_CommandAbc9Fraig( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
Abc_Print( -1, "Abc_CommandAbc9Fraig(): There is no AIG.\n" );
|
Abc_Print( -1, "Abc_CommandAbc9Fraig(): There is no AIG.\n" );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
pTemp = Cec_ManSatSweeping( pAbc->pGia, pPars );
|
pTemp = Cec_ManSatSweeping( pAbc->pGia, pPars, 0 );
|
||||||
Abc_FrameUpdateGia( pAbc, pTemp );
|
Abc_FrameUpdateGia( pAbc, pTemp );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -706,12 +706,12 @@ static inline char * Smt_PrsLoadFile( char * pFileName, char ** ppLimit )
|
||||||
// move the file current reading position to the beginning
|
// move the file current reading position to the beginning
|
||||||
rewind( pFile );
|
rewind( pFile );
|
||||||
// load the contents of the file into memory
|
// load the contents of the file into memory
|
||||||
pBuffer = ABC_ALLOC( char, nFileSize + 3 );
|
pBuffer = ABC_ALLOC( char, nFileSize + 16 );
|
||||||
pBuffer[0] = '\n';
|
pBuffer[0] = '\n';
|
||||||
RetValue = fread( pBuffer+1, nFileSize, 1, pFile );
|
RetValue = fread( pBuffer+1, nFileSize, 1, pFile );
|
||||||
// terminate the string with '\0'
|
// terminate the string with '\0'
|
||||||
pBuffer[nFileSize + 0] = '\n';
|
pBuffer[nFileSize + 1] = '\n';
|
||||||
pBuffer[nFileSize + 1] = '\0';
|
pBuffer[nFileSize + 2] = '\0';
|
||||||
*ppLimit = pBuffer + nFileSize + 2;
|
*ppLimit = pBuffer + nFileSize + 2;
|
||||||
return pBuffer;
|
return pBuffer;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,7 @@ extern void Cec_ManFraSetDefaultParams( Cec_ParFra_t * p );
|
||||||
extern void Cec_ManCecSetDefaultParams( Cec_ParCec_t * p );
|
extern void Cec_ManCecSetDefaultParams( Cec_ParCec_t * p );
|
||||||
extern void Cec_ManCorSetDefaultParams( Cec_ParCor_t * p );
|
extern void Cec_ManCorSetDefaultParams( Cec_ParCor_t * p );
|
||||||
extern void Cec_ManChcSetDefaultParams( Cec_ParChc_t * p );
|
extern void Cec_ManChcSetDefaultParams( Cec_ParChc_t * p );
|
||||||
extern Gia_Man_t * Cec_ManSatSweeping( Gia_Man_t * pAig, Cec_ParFra_t * pPars );
|
extern Gia_Man_t * Cec_ManSatSweeping( Gia_Man_t * pAig, Cec_ParFra_t * pPars, int fSilent );
|
||||||
extern Gia_Man_t * Cec_ManSatSolving( Gia_Man_t * pAig, Cec_ParSat_t * pPars );
|
extern Gia_Man_t * Cec_ManSatSolving( Gia_Man_t * pAig, Cec_ParSat_t * pPars );
|
||||||
extern void Cec_ManSimulation( Gia_Man_t * pAig, Cec_ParSim_t * pPars );
|
extern void Cec_ManSimulation( Gia_Man_t * pAig, Cec_ParSim_t * pPars );
|
||||||
/*=== cecSeq.c ==========================================================*/
|
/*=== cecSeq.c ==========================================================*/
|
||||||
|
|
|
||||||
|
|
@ -358,7 +358,7 @@ int Cec_ManVerify( Gia_Man_t * pInit, Cec_ParCec_t * pPars )
|
||||||
pParsFra->fVerbose = pPars->fVerbose;
|
pParsFra->fVerbose = pPars->fVerbose;
|
||||||
pParsFra->fCheckMiter = 1;
|
pParsFra->fCheckMiter = 1;
|
||||||
pParsFra->fDualOut = 1;
|
pParsFra->fDualOut = 1;
|
||||||
pNew = Cec_ManSatSweeping( p, pParsFra );
|
pNew = Cec_ManSatSweeping( p, pParsFra, pPars->fSilent );
|
||||||
pPars->iOutFail = pParsFra->iOutFail;
|
pPars->iOutFail = pParsFra->iOutFail;
|
||||||
// update
|
// update
|
||||||
pInit->pCexComb = p->pCexComb; p->pCexComb = NULL;
|
pInit->pCexComb = p->pCexComb; p->pCexComb = NULL;
|
||||||
|
|
@ -371,8 +371,11 @@ int Cec_ManVerify( Gia_Man_t * pInit, Cec_ParCec_t * pPars )
|
||||||
{
|
{
|
||||||
if ( p->pCexComb && !Gia_ManVerifyCex( p, p->pCexComb, 1 ) )
|
if ( p->pCexComb && !Gia_ManVerifyCex( p, p->pCexComb, 1 ) )
|
||||||
Abc_Print( 1, "Counter-example simulation has failed.\n" );
|
Abc_Print( 1, "Counter-example simulation has failed.\n" );
|
||||||
|
if ( !pPars->fSilent )
|
||||||
|
{
|
||||||
Abc_Print( 1, "Networks are NOT EQUIVALENT. " );
|
Abc_Print( 1, "Networks are NOT EQUIVALENT. " );
|
||||||
Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
|
Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
p = Gia_ManDup( pInit );
|
p = Gia_ManDup( pInit );
|
||||||
|
|
@ -542,7 +545,7 @@ Aig_Man_t * Cec_FraigCombinational( Aig_Man_t * pAig, int nConfs, int fVerbose )
|
||||||
pFraPars->nItersMax = 20;
|
pFraPars->nItersMax = 20;
|
||||||
pFraPars->fVerbose = fVerbose;
|
pFraPars->fVerbose = fVerbose;
|
||||||
pGia = Gia_ManFromAigSimple( pAig );
|
pGia = Gia_ManFromAigSimple( pAig );
|
||||||
Cec_ManSatSweeping( pGia, pFraPars );
|
Cec_ManSatSweeping( pGia, pFraPars, 0 );
|
||||||
Gia_ManReprToAigRepr( pAig, pGia );
|
Gia_ManReprToAigRepr( pAig, pGia );
|
||||||
Gia_ManStop( pGia );
|
Gia_ManStop( pGia );
|
||||||
return Aig_ManDupSimple( pAig );
|
return Aig_ManDupSimple( pAig );
|
||||||
|
|
|
||||||
|
|
@ -334,7 +334,7 @@ void Cec_ManSimulation( Gia_Man_t * pAig, Cec_ParSim_t * pPars )
|
||||||
SeeAlso []
|
SeeAlso []
|
||||||
|
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
Gia_Man_t * Cec_ManSatSweeping( Gia_Man_t * pAig, Cec_ParFra_t * pPars )
|
Gia_Man_t * Cec_ManSatSweeping( Gia_Man_t * pAig, Cec_ParFra_t * pPars, int fSilent )
|
||||||
{
|
{
|
||||||
int fOutputResult = 0;
|
int fOutputResult = 0;
|
||||||
Cec_ParSat_t ParsSat, * pParsSat = &ParsSat;
|
Cec_ParSat_t ParsSat, * pParsSat = &ParsSat;
|
||||||
|
|
@ -521,12 +521,13 @@ finalize:
|
||||||
pTemp = p->pAig; p->pAig = NULL;
|
pTemp = p->pAig; p->pAig = NULL;
|
||||||
if ( pTemp == NULL && pSim->iOut >= 0 )
|
if ( pTemp == NULL && pSim->iOut >= 0 )
|
||||||
{
|
{
|
||||||
|
if ( !fSilent )
|
||||||
Abc_Print( 1, "Disproved at least one output of the miter (zero-based number %d).\n", pSim->iOut );
|
Abc_Print( 1, "Disproved at least one output of the miter (zero-based number %d).\n", pSim->iOut );
|
||||||
pPars->iOutFail = pSim->iOut;
|
pPars->iOutFail = pSim->iOut;
|
||||||
}
|
}
|
||||||
else if ( pSim->pCexes )
|
else if ( pSim->pCexes && !fSilent )
|
||||||
Abc_Print( 1, "Disproved %d outputs of the miter.\n", pSim->nOuts );
|
Abc_Print( 1, "Disproved %d outputs of the miter.\n", pSim->nOuts );
|
||||||
if ( fTimeOut )
|
if ( fTimeOut && !fSilent )
|
||||||
Abc_Print( 1, "Timed out after %d seconds.\n", (int)((double)Abc_Clock() - clkTotal)/CLOCKS_PER_SEC );
|
Abc_Print( 1, "Timed out after %d seconds.\n", (int)((double)Abc_Clock() - clkTotal)/CLOCKS_PER_SEC );
|
||||||
|
|
||||||
pAig->pCexComb = pSim->pCexComb; pSim->pCexComb = NULL;
|
pAig->pCexComb = pSim->pCexComb; pSim->pCexComb = NULL;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue