Assertion-based Verification (ABV) is now a widely used methodology to monitor whether the design's behavior meets the specification intent. For a big design, there may be a dozen or even hundreds of assertions in the design and, as is increasingly more common, the assertions may be spread all over the design hierarchy. Managing assertions, visualizing results, and debugging assertions becomes a big issue in this type of environment.
In the VerdiTM Automated Debug System, the Property Tools window can manage, visualize, and debug assertions and their results. In addition to visualizing assertion results dumped by simulators, the Verdi system provides a unique Assertion Evaluation Engine which can check assertions against a signal level FSDB trace file for the design.
Starting from the Verdi 2009.10 version, this debugging methodology has been enhanced. The Verdi system provides the On-Demand Property/Sequence Evaluation capability - users can dump assertion signals only (without dumping the associated data such as properties, sequences, and local variables of the assertions) to an FSDB file, then the Verdi system evaluates the associated data on-demand so the users will have smaller assertion dumping results but still keep full debugging capability.
Below is a typical scenario which demonstrates how to use the re-designed Property Tools window to browse assertion results and debug assertion failures:
1. First, load the FSDB file which contains assertions into the Verdi system, and invoke the Tools > Property Tools command to open the Property Tools window, which can manage assertions, visualize results, and debug assertions.

2. You can add assertions/properties to the Property Tools window by dragging and dropping scope nodes from the nTrace window or an assertion/property from the nTrace/nWave windows. Or you can click the Get Properties
icon in the Property Tools window to invoke the Get Properties form to select the properties to add to the window. Or you can drag and drop a selected assertion/property from the Property Statistics tab or the Property Details section on the right pane to add the assertion/property to the Tree/Table tabs of the left pane.
3. To delete the properties shown in the Tree/Table Tabs, simply select the nodes/rows to delete and click Delete key on the keyboard.

4. The Property Detail section is for browsing the failures, successes and incomplete data details of the selected assertions/properties. There are a couple of ways to add assertions to the Property Detail section. You can double-click on an assertion on the Tree/Table tab or with one assertion selected on Tree/Table tab, select the Add to Details command on the right mouse button menu.

5. Also, you can double-click on a grid cell on the FSDB Statistic tab to add the related assertions/properties to the Property Details section.

6. After browsing the success, failure and incomplete records for an assertion/property in the Property Details section, you can then identify a record, usually a failure record, to analyze and debug further.
To analyze the assertion failure data, click the Analyze Property icon
or select the Analyze Property command on the right mouse button menu. Then the analyzed results for the assertion data are shown in the Analyzer tab with the time, signal and expression value annotated. You can see easily which expression is contributing to the failure.

7. You can also make use of the nWave window to display the analyzed results of the assertion data. The analyzed data can be automatically shown in the nWave window if you turn on the Add Evaluated Signals to nWave Automatically and Add Signals with Assertion Expression Grouping options on the Analyzer tab in the Assertion Options form. The form can be invoked from View > Options menu in the Property Tools window.


