Skip to content
STIMSMITH

BDD-based Constraint Solving

Technique

BDD-based constraint solving is presented in the evidence as a middle tier for constrained random verification: eUVM uses BDD-based solvers for multi-domain constraints of medium complexity, while simpler single-domain constraints are handled by a native solver and more convoluted constraints are delegated to SMT/SAT solvers. The evidence also contrasts this with PyVSC, which is described as relying entirely on SAT solvers and not deploying a BDD solver for multi-variable constraints.

First seen 5/25/2026
Last seen 5/25/2026
Evidence 2 chunks
Wiki v1

WIKI

Overview

BDD-based Constraint Solving refers here to the use of Binary Decision Diagram (BDD) solvers as part of constrained-random verification flows. In the cited DVCon paper, BDD-based solvers are positioned as suitable for multi-domain constraints of medium complexity within eUVM's constraint-processing architecture. eUVM uses a native solver for elementary single-domain constraints, BDD-based solvers for medium-complexity multi-domain constraints, and SMT/SAT solvers for constraints that cannot be handled by BDDs.

Role in eUVM

READ FULL ARTICLE →

NEIGHBORHOOD

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

explore full graph →

RELATIONSHIPS

2 connections
eUVM ← uses 100% 1e
eUVM uses BDD-based solvers to handle multi-domain constraints of medium complexity.
CRAVE ← uses 100% 1e
CRAVE provides an integrated interface to BDD solvers.

CITATIONS

6 sources
6 citations — click to expand
[1] eUVM uses BDD-based solvers for multi-domain constraints of medium complexity, while using a native solver for elementary single-domain constraints and SMT/SAT solvers for constraints that BDD cannot handle. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[2] eUVM delegates convoluted constraints that cannot be handled by BDD to SMT/SAT solvers including Z3, Boolector, and CMSGen. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[3] eUVM uses D-language metaprogramming capabilities, including UDAs, CTFE, code introspection, and generative programming, to realize a high-performance constraint processor. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[4] PyVSC does not deploy a BDD solver and relies completely on SAT solvers for multi-variable constraints. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[5] The cited paper attributes PyVSC's comparatively non-uniform solution spread to its SAT-only approach for multi-variable constraints. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[6] CRAVE provides an integrated interface to a set of BDD and SAT solvers, but the paper states that it could not handle complex RISCV-DV constraints at the time. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings