aboutsummaryrefslogtreecommitdiffstats
path: root/passes/sat
diff options
context:
space:
mode:
authorAlberto Gonzalez <boqwxp@airmail.cc>2020-05-01 08:12:23 +0000
committerAlberto Gonzalez <boqwxp@airmail.cc>2020-05-25 20:39:03 +0000
commitf9eef5e3f710684c8cfe5430190b5cf4f7c2e34e (patch)
treeefcbeb5fac832eb2f3f2d934feb2e07d25dcf5db /passes/sat
parent54570a39780f750aa7bfd616f12c58bcf121bbdf (diff)
downloadyosys-f9eef5e3f710684c8cfe5430190b5cf4f7c2e34e.tar.gz
yosys-f9eef5e3f710684c8cfe5430190b5cf4f7c2e34e.tar.bz2
yosys-f9eef5e3f710684c8cfe5430190b5cf4f7c2e34e.zip
qbfsat: Add support for CVC4.
Diffstat (limited to 'passes/sat')
-rw-r--r--passes/sat/qbfsat.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/passes/sat/qbfsat.cc b/passes/sat/qbfsat.cc
index 5ec20d621..712a46cbc 100644
--- a/passes/sat/qbfsat.cc
+++ b/passes/sat/qbfsat.cc
@@ -41,7 +41,7 @@ struct QbfSolveOptions {
bool specialize, specialize_from_file, write_solution, nocleanup, dump_final_smt2, assume_outputs, assume_neg;
bool nooptimize, nobisection;
bool sat, unsat, show_smtbmc;
- enum Solver{Z3, Yices} solver;
+ enum Solver{Z3, Yices, CVC4} solver;
std::string specialize_soln_file;
std::string write_soln_soln_file;
std::string dump_final_smt2_file;
@@ -57,6 +57,8 @@ std::string get_solver_name(const QbfSolveOptions &opt) {
return "z3";
else if (opt.solver == opt.Solver::Yices)
return "yices";
+ else if (opt.solver == opt.Solver::CVC4)
+ return "cvc4";
else
log_cmd_error("unknown solver specified.\n");
return "";
@@ -504,6 +506,8 @@ QbfSolveOptions parse_args(const std::vector<std::string> &args) {
opt.solver = opt.Solver::Z3;
else if (args[opt.argidx+1] == "yices")
opt.solver = opt.Solver::Yices;
+ else if (args[opt.argidx+1] == "cvc4")
+ opt.solver = opt.Solver::CVC4;
else
log_cmd_error("Unknown solver \"%s\".\n", args[opt.argidx+1].c_str());
opt.argidx++;
@@ -619,7 +623,7 @@ struct QbfSatPass : public Pass {
log(" quantified bitvector problems.\n");
log("\n");
log(" -solver <solver>\n");
- log(" Use a particular solver. Choose one of: \"z3\", \"yices\".\n");
+ log(" Use a particular solver. Choose one of: \"z3\", \"yices\", and \"cvc4\".\n");
log("\n");
log(" -sat\n");
log(" Generate an error if the solver does not return \"sat\".\n");