This tutorial used SymbiYosys, the open-source formal tool behind ChipVerify Lab. In industry, most formal work runs on commercial tools from the three large EDA vendors. The concepts are the same everywhere: properties, assumptions, covers, bounded checks, induction, counterexamples. What differs is the language support, the engines, the apps, the debug environment and the capacity. This article compares them, so you know what to expect when you move from the lab to a project.

7 min read | Beginner to Intermediate

What You'll Learn

  • Name the main commercial and open-source formal tools
  • Explain what full SVA support adds compared with the lab form
  • Describe the extra engines, apps and debug features of commercial tools
  • Choose a tool setup for learning, for open-source projects and for industrial sign-off

The Tools

  • Cadence Jasper (JasperGold): a formal platform with many apps, widely used for property checking, connectivity, security and sequential equivalence.
  • Synopsys VC Formal: property checking and apps, integrated with the Synopsys simulation and debug environment.
  • Siemens Questa Formal: property checking and apps, integrated with the Questa simulation flow.
  • Equivalence checkers: Cadence Conformal and Synopsys Formality are the standard tools for RTL-to-netlist equivalence in ASIC flows.
  • SymbiYosys with Yosys: open source, used in ChipVerify Lab, in many open hardware projects and in teaching. YosysHQ also offers a commercial edition that adds a full SystemVerilog front end.

Language Support

The biggest practical difference for a learner is SVA. Commercial tools read full SystemVerilog Assertions: assert property with clocking, disable iff, sequences with ## and [*], local variables, s_eventually and bind. The open-source Yosys front end reads the immediate form used in the lab sections of this tutorial, $past and friends, and the Yosys attributes anyconst and anyseq.

Everything in this tutorial can be expressed in both forms, as the "Running It in ChipVerify Lab" sections showed. The SVA form is shorter and is what you will write in a commercial flow.

Quick Check

Q: A property uses req |-> ##[1:4] ack. How is it written for the open-source flow?

Show Answer

With a helper counter that measures the cycles since the request without an acknowledge, and an immediate assertion that the counter stays at or below 4, as in the sequences and implication article.

Engines

A formal tool runs several engines, each good at different problems: bounded model checking, k-induction, PDR (IC3), interpolation, BDD-based methods, and specialized engines for liveness and for arithmetic. Commercial tools run many of them in parallel and pick the first result, often with automatic helper generation. SymbiYosys offers BMC, k-induction with SMT solvers, and the ABC engines including PDR, as the proofs in practice article used.

Apps, Debug and Capacity

  • Apps: connectivity, X-propagation, unreachable coverage, register checks, security, sequential equivalence, all generated from tables or coverage databases.
  • Debug: waveform viewers linked to the source, "why" analysis that explains each value in a counterexample, property-driven schematic views.
  • Coverage: cone of influence and proof-core coverage, merged with simulation coverage.
  • Capacity: abstraction techniques and engine tuning for much larger designs, and server farms for parallel runs.

Quick Check

Q: Which ideas from this tutorial carry over unchanged to a commercial tool?

Show Answer

All of them: writing properties from the specification, assumptions and over-constraining, covers and vacuity, depth, induction and strengthening, reductions, equivalence, and honest status reporting. Only the syntax for some constructs and the convenience features change.

Choosing a Setup

GoalSetup
Learning the methodChipVerify Lab or a local SymbiYosys installation; write both SVA and the lab form
Open-source hardware projectSymbiYosys in continuous integration, with properties in `ifdef FORMAL
Industrial block sign-offA commercial formal tool with full SVA, apps and coverage, plus a commercial equivalence checker

Running It in ChipVerify Lab

The lab gives you the open-source engine with no installation, with BMC up to depth 10 on the free tier and 100 with PRO, three SMT solvers, and waveform counterexamples. The tutorial's lab examples remain the quickest way to try an idea before writing it in full SVA for another tool.

Common Mistakes

Mistake #1: Thinking open-source formal is only a toy

SymbiYosys runs the same kinds of engines on the same problems, and is used for real processor and peripheral verification. Its limits are in language support, apps and capacity, not in the soundness of its results.

Mistake #2: Thinking a commercial tool removes the need for method

Over-constraining, vacuity, insufficient depth and missing properties are equally possible with any tool. The method of this tutorial applies everywhere.

Practice Exercise

Challenge: Translate a Property Set

This is a pencil and paper exercise. Take the lab form of the round-robin arbiter properties from the arbiters article and write the full SVA version: the hold assumption, mutual exclusion, validity and fairness, for requester 3.

Hint

Each helper counter in the lab form corresponds to a bounded delay ##[0:N] in SVA.

Solution

m_hold3:  assume property (@(posedge clk) disable iff (rst) req[3] && !gnt[3] |=> req[3]);
a_onehot: assert property (@(posedge clk) disable iff (rst) $onehot0(gnt));
a_valid:  assert property (@(posedge clk) disable iff (rst) ##1 (gnt & ~$past(req)) == 4'b0000);
a_fair3:  assert property (@(posedge clk) disable iff (rst) req[3] |-> ##[0:4] gnt[3]);

The four-line SVA version replaces about fifteen lines of helper logic in the lab form, and means the same thing.

Summary

  • Cadence Jasper, Synopsys VC Formal and Siemens Questa Formal dominate industrial property checking; Conformal and Formality dominate equivalence.
  • SymbiYosys is the open-source alternative and the engine of ChipVerify Lab.
  • Commercial tools add full SVA, many engines in parallel, apps, debug and coverage features, and capacity.
  • The method is the same with every tool; only syntax and convenience change.
Did you find what you were looking for?

Quiz

No quiz questions available for this article.

Cron Job Starts