From cd029c0638d21ceed96c762acb02907b6892f48a Mon Sep 17 00:00:00 2001 From: nella Date: Mon, 17 Aug 2026 12:19:07 +0200 Subject: [PATCH] Add solve without model. --- kernel/qcsat.cc | 8 ++++++++ kernel/qcsat.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/kernel/qcsat.cc b/kernel/qcsat.cc index f996a963a..a5ecd5cb0 100644 --- a/kernel/qcsat.cc +++ b/kernel/qcsat.cc @@ -108,9 +108,17 @@ void SatEffortBudget::charge_import(QuickConeSat &qcsat, int64_t &cells_charged) cells_charged = GetSize(qcsat.imported_cells); } +SatEffortBudget::Result SatEffortBudget::solve(QuickConeSat &qcsat, int64_t cap, const std::vector &assumptions) +{ + std::vector modelVals; + return solve(qcsat, cap, {}, modelVals, assumptions); +} + SatEffortBudget::Result SatEffortBudget::solve(QuickConeSat &qcsat, int64_t cap, const std::vector &modelExprs, std::vector &modelVals, const std::vector &assumptions) { + if (spent()) + return Result::LimitReached; if (enabled()) cap = (cap > 0) ? std::min(cap, remaining) : remaining; qcsat.ez->setSolverPropLimit(cap); diff --git a/kernel/qcsat.h b/kernel/qcsat.h index d0b717c8f..09d072f7c 100644 --- a/kernel/qcsat.h +++ b/kernel/qcsat.h @@ -102,6 +102,9 @@ struct SatEffortBudget { Result solve(QuickConeSat &qcsat, int64_t cap, const std::vector &modelExprs, std::vector &modelVals, const std::vector &assumptions); + + // Assumptions-only query without a model + Result solve(QuickConeSat &qcsat, int64_t cap, const std::vector &assumptions); }; YOSYS_NAMESPACE_END