From 20f970f569d014420413c475dc87265d1ab35f02 Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Fri, 5 Aug 2022 14:44:12 +0200 Subject: write_cex: Check for unsupported multi-PO SAT based minimization Running SAT-based CEX minimization with multiple POs runs into an assertion. This makes it produce an error message instead. --- src/base/io/io.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/base/io/io.c b/src/base/io/io.c index a8a5b618..46f2641f 100644 --- a/src/base/io/io.c +++ b/src/base/io/io.c @@ -2820,7 +2820,12 @@ void Abc_NtkDumpOneCex( FILE * pFile, Abc_Ntk_t * pNtk, Abc_Cex_t * pCex, Bmc_CexCareVerify( pAig, pCex, pCare, fVerbose ); } else if ( fUseSatBased ) - pCare = Bmc_CexCareSatBasedMinimize( pAig, Saig_ManPiNum(pAig), pCex, fHighEffort, fCheckCex, fVerbose ); + { + if ( Abc_NtkPoNum( pNtk ) == 1 ) + pCare = Bmc_CexCareSatBasedMinimize( pAig, Saig_ManPiNum(pAig), pCex, fHighEffort, fCheckCex, fVerbose ); + else + printf( "SAT-based CEX minimization requires having a single PO.\n" ); + } else if ( fCexInfo ) { Gia_Man_t * p = Gia_ManFromAigSimple( pAig ); -- cgit v1.2.3