@@ -10697,6 +10697,7 @@ int Abc_CommandTwoExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1069710697int Abc_CommandLutExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1069810698{
1069910699 extern int Exa7_ManExactSynthesis( Bmc_EsPar_t * pPars );
10700+ extern int Exa8_ManExactSynthesis( Bmc_EsPar_t * pPars );
1070010701 extern int Exa3_ManExactSynthesis( Bmc_EsPar_t * pPars );
1070110702 extern void Exa3_ManExactSynthesis2( Bmc_EsPar_t * pPars );
1070210703 extern void Exa3_ManExactSynthesisRand( Bmc_EsPar_t * pPars );
@@ -10705,7 +10706,7 @@ int Abc_CommandLutExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1070510706 Bmc_EsPar_t Pars, * pPars = &Pars;
1070610707 Bmc_EsParSetDefault( pPars );
1070710708 Extra_UtilGetoptReset();
10708- while ( ( c = Extra_UtilGetopt( argc, argv, "NMKTFUSYPiaorfgcdsvh " ) ) != EOF )
10709+ while ( ( c = Extra_UtilGetopt( argc, argv, "NMKTFUSYPiaorfgckdsvh " ) ) != EOF )
1070910710 {
1071010711 switch ( c )
1071110712 {
@@ -10821,6 +10822,9 @@ int Abc_CommandLutExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1082110822 case 'c':
1082210823 pPars->fCadical ^= 1;
1082310824 break;
10825+ case 'k':
10826+ pPars->fKissat ^= 1;
10827+ break;
1082410828 case 'd':
1082510829 pPars->fDumpBlif ^= 1;
1082610830 break;
@@ -10894,14 +10898,16 @@ int Abc_CommandLutExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1089410898 Exa3_ManExactSynthesis( pPars );
1089510899 else if ( pPars->fCadical )
1089610900 Exa7_ManExactSynthesis( pPars );
10901+ else if ( pPars->fKissat )
10902+ Exa8_ManExactSynthesis( pPars );
1089710903 else
1089810904 Exa3_ManExactSynthesis2( pPars );
1089910905 if ( argc == globalUtilOptind && Abc_FrameReadNtk(pAbc) )
1090010906 ABC_FREE( pPars->pTtStr );
1090110907 return 0;
1090210908
1090310909usage:
10904- Abc_Print( -2, "usage: lutexact [-NMKTFUS <num>] [-Y string] [-P string] [-iaorfgcdsvh ] <hex>\n" );
10910+ Abc_Print( -2, "usage: lutexact [-NMKTFUS <num>] [-Y string] [-P string] [-iaorfgckdsvh ] <hex>\n" );
1090510911 Abc_Print( -2, "\t exact synthesis of I-input function using N K-input gates\n" );
1090610912 Abc_Print( -2, "\t-N <num> : the number of input variables [default = %d]\n", pPars->nVars );
1090710913 Abc_Print( -2, "\t-M <num> : the number of K-input nodes [default = %d]\n", pPars->nNodes );
@@ -10919,6 +10925,7 @@ int Abc_CommandLutExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1091910925 Abc_Print( -2, "\t-f : toggle fixing LUT inputs in cascade mapping [default = %s]\n", pPars->fLutInFixed ? "yes" : "no" );
1092010926 Abc_Print( -2, "\t-g : toggle using Glucose 3.0 by Gilles Audemard and Laurent Simon [default = %s]\n", pPars->fGlucose ? "yes" : "no" );
1092110927 Abc_Print( -2, "\t-c : toggle using CaDiCal 2.2.0-rc1 by Armin Biere [default = %s]\n", pPars->fCadical ? "yes" : "no" );
10928+ Abc_Print( -2, "\t-k : toggle using Kissat 4.0.2 by Armin Biere [default = %s]\n", pPars->fKissat ? "yes" : "no" );
1092210929 Abc_Print( -2, "\t-d : toggle dumping decomposed networks into BLIF files [default = %s]\n", pPars->fDumpBlif ? "yes" : "no" );
1092310930 Abc_Print( -2, "\t-s : toggle silent computation (no messages, except when a solution is found) [default = %s]\n", pPars->fSilent ? "yes" : "no" );
1092410931 Abc_Print( -2, "\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose ? "yes" : "no" );
0 commit comments