Automated Formal Verification

RTL in. Proven properties out.

RTLPreCheck reads raw SystemVerilog and generates formally proven properties automatically. No specifications. No manual assertions. No naming conventions. Just structure.

How It Works

The design tells you what to verify.

Traditional formal verification asks: given this spec, does the design comply? RTLPreCheck asks the opposite: given this design, what must be true? The structure reveals buffers, arbiters, pipelines, and exactly which formal properties each one must satisfy.

Structural Analysis

Reads raw RTL. Classifies every register cluster by behavioral role using AST topology, graph structure, and IR metadata alone.

Property Generation

Selects formal property templates for each classification. Register stability, deadlock freedom, drain liveness, mutual exclusion — all generated from structure.

Formal Proof

Every property is proven via k-induction. Sound abstract models are built automatically for large modules. Anti-vacuity covers verify every proof is exercised.

Compositional Closure

Cross-module assume-guarantee contracts are extracted from proven probes and discharged automatically via geometry-based port matching.

Most Recent Results

NVIDIA NVDLA CDMA Subsystem

Convolution DMA from NVIDIA’s Deep Learning Accelerator. Orchestrates all data movement between external memory and the compute engine.

March 30, 2026

116,344
Lines of Verilog
362 / 373
Properties proven (97%)
27m 36s
Zero manual assertions
Control signals 258 / 258 — 100%
Signal activity bounds 84 / 84 — 100%
Memory index bounds 7 / 7 — 100%
Assume-guarantee closure 236 / 236 — 100%

63 modules analyzed across the full CDMA hierarchy — 5,883 registers, weight/feature/pixel data channels, shared buffer management, DMA mux, and multi-phase sequencing. Cold start, reproducible every run. 940 port connections validated across 3 hierarchy levels (100% netlist completeness).

Automated Two-Project Abstraction

The largest modules (2,500 to 6,200 registers) cannot be proven by bounded model checking. RTLPreCheck automatically constructs small abstract models that capture essential progress behavior, then validates via a soundness check against full concrete RTL. Both projects complete in seconds on modules where flat BMC would never converge. The abstraction, the soundness linkage, and the proof are all generated from structure. No manual abstractions, no helper logic, no cut points.

Cross-Module Assume-Guarantee Closure

236 unique contract edges discharged across 63 modules. 940 port connections validated (100% netlist completeness). 193 external inputs cataloged as integration boundary candidates. Guarantees matched to assumptions via structural port matching over RTL wiring topology. Validated against Slang elaborated IR. Zero manual pairs.

View all results →

Let’s talk.

If you’re working on a design that needs formal verification coverage, or if you’d like to see RTLPreCheck run on your RTL, reach out.

taylor@rtlprecheck.com