mirror of https://github.com/YosysHQ/abc.git
Symmetric variables in BMS.
This commit is contained in:
parent
610fcb2712
commit
2d71abd581
|
|
@ -1204,12 +1204,13 @@ static int Ses_ManCreateClauses( Ses_Man_t * pSes )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EXTRA clauses: symmetric variables */
|
/* EXTRA clauses: symmetric variables */
|
||||||
if ( pSes->nMaxDepth == -1 && pSes->nSpecFunc == 1 ) /* only check if there is one output function */
|
if ( /*pSes->nMaxDepth == -1 &&*/ pSes->nSpecFunc == 1 ) /* only check if there is one output function */
|
||||||
for ( q = 1; q < pSes->nSpecVars; ++q )
|
for ( q = 1; q < pSes->nSpecVars; ++q )
|
||||||
for ( p = 0; p < q; ++p )
|
for ( p = 0; p < q; ++p )
|
||||||
if ( Extra_TruthVarsSymm( (unsigned*)( pSes->pSpec ), pSes->nSpecVars, p, q ) )
|
if ( Extra_TruthVarsSymm( (unsigned*)( pSes->pSpec ), pSes->nSpecVars, p, q ) &&
|
||||||
|
( !pSes->pArrTimeProfile || ( pSes->pArrTimeProfile[p] == pSes->pArrTimeProfile[q] ) ) )
|
||||||
{
|
{
|
||||||
if ( pSes->fVeryVerbose )
|
if ( pSes->fSatVerbose )
|
||||||
printf( "variables %d and %d are symmetric\n", p, q );
|
printf( "variables %d and %d are symmetric\n", p, q );
|
||||||
for ( i = 0; i < pSes->nGates; ++i )
|
for ( i = 0; i < pSes->nGates; ++i )
|
||||||
for ( j = 0; j < q; ++j )
|
for ( j = 0; j < q; ++j )
|
||||||
|
|
@ -2033,6 +2034,8 @@ Abc_Ntk_t * Abc_NtkFindExact( word * pTruth, int nVars, int nFunc, int nMaxDepth
|
||||||
|
|
||||||
pSes = Ses_ManAlloc( pTruth, nVars, nFunc, nMaxDepth, pArrTimeProfile, 0, nBTLimit, fVerbose );
|
pSes = Ses_ManAlloc( pTruth, nVars, nFunc, nMaxDepth, pArrTimeProfile, 0, nBTLimit, fVerbose );
|
||||||
pSes->nStartGates = nStartGates;
|
pSes->nStartGates = nStartGates;
|
||||||
|
pSes->fReasonVerbose = 1;
|
||||||
|
pSes->fSatVerbose = 1;
|
||||||
if ( fVerbose )
|
if ( fVerbose )
|
||||||
Ses_ManPrintFuncs( pSes );
|
Ses_ManPrintFuncs( pSes );
|
||||||
|
|
||||||
|
|
@ -2069,7 +2072,7 @@ Gia_Man_t * Gia_ManFindExact( word * pTruth, int nVars, int nFunc, int nMaxDepth
|
||||||
pSes = Ses_ManAlloc( pTruth, nVars, nFunc, nMaxDepth, pArrTimeProfile, 1, nBTLimit, fVerbose );
|
pSes = Ses_ManAlloc( pTruth, nVars, nFunc, nMaxDepth, pArrTimeProfile, 1, nBTLimit, fVerbose );
|
||||||
pSes->nStartGates = nStartGates;
|
pSes->nStartGates = nStartGates;
|
||||||
pSes->fVeryVerbose = 1;
|
pSes->fVeryVerbose = 1;
|
||||||
pSes->fExtractVerbose = 1;
|
pSes->fExtractVerbose = 0;
|
||||||
pSes->fSatVerbose = 0;
|
pSes->fSatVerbose = 0;
|
||||||
pSes->fReasonVerbose = 1;
|
pSes->fReasonVerbose = 1;
|
||||||
if ( fVerbose )
|
if ( fVerbose )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue