Project

General

Profile

[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  BugVise
  CovVise
  Force-Gate-Sim
  Gspice
  IPC::Locker
  Rsvn
  SVN::S4
  Voneline
  WFH
General Info
  Papers

CovVise Examples

Unfortunately the limited size of the veripool.org server prevent us from running an example server, but you can run a in-place server fairly easily. See Installing.

Instead, the following screenshots were taken from a production CovVise system.

Ensembles

The home page of CovVise lists "ensembles" which are aggregations of coverage data. Most ensembles directly correspond to a "series" which is a collections of test runs created by a single script, such as a nightly regression. You can merge ensembles together to reach coverage goals.

Single Ensemble

Clicking on an ensemble name on the homepage brings up details of that ensemble. Here we see the series (list of tests) that created the coverage, the source files which contained coverage statements, and the list of all tests.

Ensemble Page Tree

Also under each ensemble page is the list of coverage pages. These pages are hierarchical and may be either created by a program (line coverage) or by the user when defining coverage points. The browsing of the tree is dynamic AJAX HTML; clicking on a "+" contacts the database and updates the page in real time.

Also here we see a coverage table. This two-dimensional table was created by a plugin that understands how to display SystemPerl covergroup statements.

Clicking on the "Source" link will bring you to the source code that created these bins; see the File Annotation example below.

Not shown is a popup that appears when you hover over each bucket, showing the number of tests and distribution of bucket hits.

File Annotations

Any file with coverage statements can be line-by-line annotated with the coverage on that line. This example shows coverage statements in a Verilog file.

More File Annotations

This is another file, in this case a SystemPerl file. This shows that multiple coverage bins can be recorded for a single line of the file. Clicking on the "table" link would show the multi-dimensional table similar to the one shown in the Page Tree above.

Bin-Run Data

Clicking on any coverage bin brings you to the bin-run page. This shows the results for one coverage bin as tested under one ensemble (the run). The number of hits on the bin is divided into six categories based on the pass/fail status and number of hits. A test which passes and gets over 10 (programmable) hits goes into the Hi Count category. A test which hits a few times (1-10) goes into the Low Count category. A test which does not hit the bin goes into the zero count category.

Also shown are other ensembles which hit this bin, and a list of tests which hit this bin. To save space the list of tests may be limited to a specific number per category. (For example a maximum of 8 tests which are passed hitting the bin zero times.)

Coverage Graphing

The coverage statistics can also be visualized. Below, Metrigator, a package that can be installed along with CovVise is used to display the coverage statistics. In this example there are four coverage percentages displayed. From the top line down to the bottom line these are: low coverage for a random regression and low coverage for the nightly regressions, followed by ok coverage for random and nightly (although sometimes the nightly regression gets better coverage so is above). Also note the overview of several months on the panel at the left, complemented by the zoom in on the right panel.