Skip to content

Commit 38c2bec

Browse files
committed
Adding support for Kissat in "lutexact".
1 parent 3d281a1 commit 38c2bec

File tree

4 files changed

+758
-2
lines changed

4 files changed

+758
-2
lines changed

src/base/abci/abc.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10697,6 +10697,7 @@ int Abc_CommandTwoExact( Abc_Frame_t * pAbc, int argc, char ** argv )
1069710697
int 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

1090310909
usage:
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" );

src/sat/bmc/bmc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ struct Bmc_EsPar_t_
5858
int fDumpCnf;
5959
int fGlucose;
6060
int fCadical;
61+
int fKissat;
6162
int fCard;
6263
int fOrderNodes;
6364
int fEnumSols;

0 commit comments

Comments
 (0)