Skip to content
STIMSMITH

Constraint Solving

Technique

Constraint solving is a verification technique used in constrained randomization workflows, including RISC-V instruction generation and UVM-style testbenches. In the provided evidence, it is a major runtime factor in RISCV-DV, while eUVM combines native, BDD-based, and SMT/SAT solvers to handle constraints of varying complexity.

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

WIKI

Overview

Constraint solving appears in the evidence as the execution of constraint solvers during constrained randomization, especially for generating randomized instruction streams and randomized verification data. In RISCV-DV profiling, two of the four largest runtime bottlenecks were tied to randomization and solving constraints: directed instruction stream generation and non-directed instruction stream dumping. The paper notes that most of the time in these stages was spent executing constraint solvers or solving constraints. [RISCV-DV bottlenecks]

Use in instruction generation

READ FULL ARTICLE →

NEIGHBORHOOD

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

explore full graph →

RELATIONSHIPS

5 connections
The paper uses constraint solving techniques to generate test vectors.
STCS ← implements 100% 2e
STCS implements the constraint solving approach with hardware-specific constraints.
Examiner ← uses 100% 2e
Examiner uses constraint solving to find concrete values of encoding symbols that satisfy or negate ASL constraints.
semantics-aware test case generation ← uses 100% 2e
Semantics-aware test case generation uses constraint solving to find values that satisfy or negate ASL conditions.
riscv-dv ← uses 100% 1e
Most of the RISCV-DV generation time is spent on constraint solving.