JasperGold: Proving Correctness Instead of Simulating It
What formal verification actually buys you over simulation, and how to write and run a basic SVA property in Jasper.
In this post
1.Overview
JasperGold (now organized under Cadence's Jasper RTL Apps) is a formal verification platform: instead of simulating a design against a finite set of test vectors, it uses mathematical proof techniques to exhaustively analyze the space of possible design behaviors against properties you specify — no testbench stimulus required.
JasperGold pioneered commercial formal verification apps, and its "Smart Proof" technology uses machine learning to select and parameterize the underlying solvers, aiming for faster first-time proofs and faster regression re-runs.
2.Use Case & Who It's For
JasperGold / Jasper RTL Apps are used by verification engineers for targeted, high-value problems:
- Bug hunting — finding corner-case RTL bugs unreachable by directed or even randomized simulation within reasonable runtime
- Connectivity verification — proving that every signal in a large SoC interconnect is wired to its intended source/destination, a notoriously error-prone manual check
- Clock-domain crossing (CDC) sign-off — structurally proving synchronizers are correctly implemented
- Sequential equivalence checking (SEC) — proving two RTL descriptions of the same block (e.g., before/after a low-power or retiming transformation) behave identically
- Security path verification — proving secure data (keys, credentials) can only reach authorized paths in the design, something simulation struggles to exhaustively check
3.Where It Sits in the Verification Flow
Formal typically runs alongside, not after, simulation-based verification:
- Design intent is captured as SystemVerilog Assertions (SVA) or through a pre-packaged Jasper App (Connectivity, CDC, SEC, Security Path Verification) that doesn't require hand-written properties
- JasperGold's proof engines attempt to either prove a property holds for all reachable states, or generate a counterexample trace showing exactly how it can be violated
- Design compilation size and available compute set the practical ceiling on how much of a design can be formally analyzed at once — formal tends to scale better at the IP/block level than across an entire SoC
- Counterexample traces are debugged much like a simulation waveform, but represent an exhaustively derived failure rather than one stimulus-dependent occurrence
- Once properties are proven, formal coverage analysis identifies which parts of the design still lack meaningful property coverage, closing the loop with the verification plan
4.Installation & Licensing
- Download the Jasper/JasperGold installer from Cadence's support portal under your organization's license agreement
- Install on supported 64-bit Linux, alongside (or integrated with) an existing Cadence tool installation, since Jasper Apps are commonly licensed per-app (Connectivity, CDC, SEC, SPV, core formal) rather than as one bundle
- Configure Cadence's FlexLM-based license manager to point at your license server
- Source the Cadence environment setup so the
jg(Jasper) command-line tool resolves on yourPATH - New users typically start with Cadence's self-paced Jasper University courses, which use Cadence's own hosted environments rather than requiring a local install
5.Hands-On Example: A Basic Formal Property
A minimal formal check on a small FIFO — proving it never signals both empty and full at once — looks like this:
// fifo_props.sv - a basic safety property for formal analysis module fifo_props (input logic clk, rst_n, empty, full); // Property: the FIFO must never assert empty and full simultaneously property p_no_empty_and_full; @(posedge clk) disable iff (!rst_n) !(empty && full); endproperty a_no_empty_and_full: assert property (p_no_empty_and_full); endmodule
This is compiled and run with Jasper's Tcl-driven flow:
# jasper_run.tcl - load design and run the formal analysis analyze -sv fifo.sv fifo_props.sv elaborate -top fifo_top clock clk reset -expression "!rst_n" prove -all report
prove -all attempts to either mathematically prove the assertion holds for every reachable
state, or produce a counterexample waveform showing the exact sequence of inputs that violates it —
there's no notion of "ran for N cycles and didn't fail" the way there is in simulation; the result is a
definitive proven, falsified, or inconclusive (bounded/undetermined) verdict per property.
Recap
- JasperGold (Jasper RTL Apps) proves properties exhaustively instead of testing a finite stimulus set.
- It complements rather than replaces simulation \u2014 best for well-scoped structural and safety properties.
- Pre-built apps (Connectivity, CDC, SEC, Security Path Verification) need no hand-written SVA to get started.
- The jg Tcl flow: analyze \u2192 elaborate \u2192 clock/reset \u2192 prove -all \u2192 report.
Next: PrimeTime (static timing sign-off), Design Compiler and Fusion Compiler (RTL-to-GDSII synthesis), and ICC2 (place and route) \u2014 plus dedicated posts on tool installation guides and learning roadmaps across the EDA stack.
Comments
Post a Comment