[VLSI CAD] MiniSAT?

The Satisfiability (SAT) problem is summarized by the following question: Can the variables be set to True / False such that the given Boolean formula is...

[VLSI CAD] MiniSAT?

The Satisfiability (SAT) problem is summarized by the following question:

Can the variables be set to True / False such that the given Boolean formula is True?

For example, given the formula f(x,y,z)=(x || y) & (!x || z),

  • Finding out how to assign True/False to x, y, and z so that the entire formula is True is an SAT problem.

This seems simple enough,

  • but when the number of variables is in the thousands or tens of thousands
  • and the constraints are in the hundreds of thousands, complete exploration becomes impossible.
MiniSat Page

2. What kind of SAT solver is MiniSat

MiniSat is a high-performance CDCL-based SAT solver.

To summarize its features:

  • CDCL (Conflict-Driven Clause Learning)
  • Very small codebase
  • Fast and stable
  • Easy to embed as a library in other tools

So, while MiniSat can be used on its own, it is actually used more for the following purposes.

  • Formal Verification tool internal engine
  • EDA tool decision engine
  • Research prototype baseline solver
  • SMT/PB solver backend SAT engine

In other words,

MiniSat is more of a "standard engine in the SAT solver world"

3. But real-world problems don't end with SATs

The problem is that real-world constraints aren't always Boolean.

For example, this constraint is not a SAT:

3a + 2b + c ≥ 4

Here, a, b, and c are Boolean variables, but the expression itself is a constraint with integer weights.

This constraint is called a Pseudo-Boolean (PB) constraint.

PB problems are characterized by:

  • Variables are Boolean
  • Constraints are linear integer inequalities
  • Often have an optimization problem (min/max)

4. The core idea of MiniSat+

MiniSat+ is not a new solver.

Translate the PB constraint into SAT, and then solve it with MiniSat

This is the structure:

PB problem
↓ (translation)
SAT problem

MiniSat

MiniSat+ is responsible for this translation layer.


5. How to change PB → SAT

MiniSat+ uses the following logic circuit-based techniques to change PB constraints to SAT.

  • BDD (Binary Decision Diagram)
  • Adder network
  • Sorting network

The key is:

  • Create a logic circuit
  • Determine if the PB constraint is satisfied
  • Convert that circuit to CNF with Tseitin transformation
  • Input the result into MiniSat

In other words,

"Create a circuit that checks for constraints,

6. Why switch to SAT

You may ask, why not just write your own PB solver?

  • SAT solvers have been optimized for decades
  • Clause learning, heuristics, and propagation are very powerful
  • For "almost SAT problems",
    • SAT conversion + MiniSat is often faster than PB native solver
      • Mostly Boolean structures
      • Only some weight/count constraints
      • Formal equivalence checking
      • Choosing a minimal fix set in ECO
      • Constraint-based synthesis
      • Resource / option selection problems
      • Some STA/CDC/DFT internal decision logic
      • MiniSat
        → High-performance Boolean SAT solver
        → Fast engine for solving choice problems
      • MiniSat+
        → Integer weighted constraints (PB) to SAT. Leverages the power of MiniSat
      • Why use it
        → SAT solver is still the most powerful combinatorial search engine
        → Structurally well-suited for EDA/Verification

especially for EDA/Verification problems:The MiniSat+ approach works well on these structures.


7. Where is it used from an EDA perspective

From an engineer's perspective, the MiniSat series is a natural fit for the following problems.The common thread is that they all have this in common.

Selection variables + constraints + combinatorial explosion

The moment you try to manually handle this with human logic, it becomes a maintenance nightmare.
SAT solver solves this at the engine level.


8. One-paragraph summary

글 참여 도구

Share Join discussion
How did this article help? Used only as a private quality signal.

Private note

Spot an error or need clarification?

Send a private correction, question, or topic request directly to the editor.

VLSI Korea

Send a private note

Your message will be delivered to [email protected].

How should we receive it?

Anonymous mode omits your name and email. The delivery provider may still process technical data such as an IP address, so absolute anonymity cannot be guaranteed.

ENGINEER DISCUSSION

What are you seeing in practice?

Add evidence, a counterpoint, or experience from the field. Reply notifications keep the thread moving.

VLSI KOREA BRIEFING

Keep the signal. Lose the noise.

Semiconductor engineering and industry intelligence from a practicing engineer. Free, with no paywall.

FOR BUSINESS

Need this level of technical content?

Technical content, sponsored deep-dives and private team briefings—with clear scope and pricing.

Work with VLSI Korea →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
MY VLSI

내 읽기 보관함

저장한 글과 읽던 글을 한곳에서 이어보세요.