Skip to content
STIMSMITH

SAT Solving

Technique

SAT solving is used as a constraint-solving backend in hardware-verification randomization flows. The provided evidence shows it appearing in PyVSC, CRAVE, and eUVM contexts: PyVSC relies completely on SAT solvers for multi-variable constraints, CRAVE exposes an integrated interface to BDD and SAT solvers, and eUVM delegates convoluted constraints beyond BDD handling to SMT/SAT solvers such as Z3, Boolector, and CMSGen.

First seen 5/25/2026
Last seen 6/3/2026
Evidence 3 chunks
Wiki v1

WIKI

Overview

SAT solving appears in the evidence as a backend technique for solving constraints in verification and constrained-random stimulus generation flows. In the cited RISCV-DV/eUVM discussion, SAT solvers are used alongside or after other constraint-solving approaches, especially when constraints are multi-variable or too convoluted for simpler approaches such as native or BDD-based solvers. [C1]

Role in constraint-solving stacks

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

3 connections
PyVSC ← uses 100% 1e
PyVSC relies completely on SAT solvers for solving multi-variable constraints.
CRAVE ← uses 100% 1e
CRAVE provides an integrated interface to SAT solvers.
The paper mentions comparing their constraint solver approach with SAT techniques as future work.

CITATIONS

3 sources
3 citations — click to collapse
[1] C1: eUVM uses native solving for elementary single-domain constraints, BDD-based solving for medium-complexity multi-domain constraints, and SMT/SAT solvers such as Z3, Boolector, and CMSGen for convoluted constraints not handled by BDD. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[2] C2: Pygen uses PyVSC for constraints; PyVSC lacks a BDD solver and relies completely on SAT solvers for multi-variable constraints, with the source reporting less-uniform solution spread and poor Pygen runtime performance relative to SV RISCV-DV. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[3] C3: CRAVE provides an integrated interface to BDD and SAT solvers, but the source states it could not handle complex RISCV-DV constraints and that SystemC and CRAVE lacked multicore parallelism support. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings