FVO — Formal Verification Online
Lesson 7.1 · Formal Apps for Everyday Problems

What makes something a formal app?

General FPV asks you to think hard about properties. Many verification problems, however, have the same shape over and over again: "this pin is connected to that port in mode X", "this register field is read/write", "this coverage bin can never be hit". For such problems, tools and teams build formal apps: flows where the properties are generated from a structured description and the user mostly reviews results.

AppProperty sourceWhat it proves
ConnectivitySpreadsheet / CSV of connectionsSignals are connected (possibly through muxes and pipeline stages) under the right conditions
CSR / registerRegister description (IP-XACT, SystemRDL, spreadsheet)Access types, reset values, side effects of register fields
Protocol checkersReusable property library per protocolInterface rules of AXI-like, valid/ready, credit protocols
Unreachable coverage (UCE)Simulation coverage databaseWhich uncovered items can never be hit
X-propagationDesign + list of qualifiersUnknown values cannot reach outputs when they matter
Sequential equivalenceTwo versions of RTLChanged design behaves like the original (Chapter 8)
Security / information flowSecret sources and observable sinksSecret data cannot influence certain outputs
Post-silicon debugLab symptomsA trace that reproduces the failure

In this chapter we build small versions of several apps by hand. Commercial tools automate the generation, but knowing what they do under the hood makes you much better at using — and debugging — them.

Was this page helpful?

Tip: select any text on the page before clicking Report and it will be quoted in your report.