FVO — Formal Verification Online
Lesson 4.3 · Formal Property Verification (FPV) Basics

Bringing up the environment

Any FPV environment needs four things set up before the first property:

ItemWhat to decideFor our timer
CompilationWhich files, top module, parameter valuesperiodic_timer.sv + wrapper; W = 8
ClocksWhich signals are clocks and how they relateOne clock, clk
ResetHow the design is initialised before checking startsrst high in the first cycle
Free inputsEverything else is driven by the tool with any valueload, period, stop

Commercial tools normally take this from a Tcl script. The commands differ per vendor but look roughly like this (pseudo-Tcl — check your tool's manual for exact names):

fpv_timer.tcl
# fpv_timer.tcl — typical commercial FPV setup (vendor syntax varies)
analyze   -sv periodic_timer.sv periodic_timer_fv.sv
elaborate -top periodic_timer_fv -param W 8
clock     clk
reset     rst                  ;# simulate reset, then start from the reset state
prove     -all
report    -summary

For portability, this course puts the reset rule into the wrapper itself (initial assume (rst);) and keeps a SymbiYosys script next to every example. The wrapper is just a module that instantiates the DUT, exposes the inputs as its own ports (so they are free) and holds the properties.

Was this page helpful?

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