Commit 623b5e82 by Alan Mishchenko

Several corner-case bug fixes in scorr with constraints.

parent cdabd42a
...@@ -21211,10 +21211,18 @@ int Abc_CommandSeqSweep2( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -21211,10 +21211,18 @@ int Abc_CommandSeqSweep2( Abc_Frame_t * pAbc, int argc, char ** argv )
if ( pPars->fConstrs ) if ( pPars->fConstrs )
{ {
if ( Abc_NtkConstrNum(pNtk) == Abc_NtkPoNum(pNtk) )
{
Abc_Print( 0, "Command cannot be applied because the network has only constraint outputs (no primary outputs).\n" );
return 0;
}
if ( Abc_NtkConstrNum(pNtk) > 0 ) if ( Abc_NtkConstrNum(pNtk) > 0 )
Abc_Print( 0, "Performing scorr with %d constraints.\n", Abc_NtkConstrNum(pNtk) ); Abc_Print( 0, "Performing scorr with %d constraints.\n", Abc_NtkConstrNum(pNtk) );
else else
{
Abc_Print( 0, "Performing constraint-based scorr without constraints.\n" ); Abc_Print( 0, "Performing constraint-based scorr without constraints.\n" );
pPars->fConstrs = 0;
}
} }
if ( pPars->fEquivDump && pPars->fEquivDump2 ) if ( pPars->fEquivDump && pPars->fEquivDump2 )
{ {
...@@ -496,7 +496,7 @@ Aig_Man_t * Ssw_SignalCorrespondence( Aig_Man_t * pAig, Ssw_Pars_t * pPars ) ...@@ -496,7 +496,7 @@ Aig_Man_t * Ssw_SignalCorrespondence( Aig_Man_t * pAig, Ssw_Pars_t * pPars )
Ssw_ClassesSetData( p->ppClasses, p->pSml, (unsigned(*)(void *,Aig_Obj_t *))Ssw_SmlObjHashWord, (int(*)(void *,Aig_Obj_t *))Ssw_SmlObjIsConstWord, (int(*)(void *,Aig_Obj_t *,Aig_Obj_t *))Ssw_SmlObjsAreEqualWord ); Ssw_ClassesSetData( p->ppClasses, p->pSml, (unsigned(*)(void *,Aig_Obj_t *))Ssw_SmlObjHashWord, (int(*)(void *,Aig_Obj_t *))Ssw_SmlObjIsConstWord, (int(*)(void *,Aig_Obj_t *,Aig_Obj_t *))Ssw_SmlObjsAreEqualWord );
} }
// allocate storage // allocate storage
if ( p->pPars->fLocalSim ) if ( p->pPars->fLocalSim && p->pSml )
p->pVisited = ABC_CALLOC( int, Ssw_SmlNumFrames( p->pSml ) * Aig_ManObjNumMax(p->pAig) ); p->pVisited = ABC_CALLOC( int, Ssw_SmlNumFrames( p->pSml ) * Aig_ManObjNumMax(p->pAig) );
// perform refinement of classes // perform refinement of classes
pAigNew = Ssw_SignalCorrespondenceRefine( p ); pAigNew = Ssw_SignalCorrespondenceRefine( p );
......
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