Covered - The Verilog Code Coverage Analyzer

Introduction

Covered is a Verilog code coverage analysis tool that can be useful for determining how well a diagnostic test suite is covering the design under test. Typically in the design verification work flow, a design verification engineer will develop a self-checking test suite to verify design elements/functions specified by a design's specification document. When the test suite contains all of the tests required by the design specification, the test writer may be asking him/herself, "How much logic in the design is actually being exercised?", "Does my test suite cover all of the logic under test?", and "Am I done writing tests for the logic?". When the design verification gets to this point, it is often useful to get some metrics for determining logic coverage. This is where a code coverage utility, such as Covered, is very useful.

Covered reads in the Verilog design files and a VCD or LXT formatted dumpfile from a diagnostic run and generates a database file called a Coverage Description Database (CDD) file, using the score command. Covered's score command can alternatively be used to generate a CDD file and a Verilog module for using Covered as a VPI module in a testbench which can obtain coverage information in parallel with simulation. The resulting CDD file can be merged with other CDD files from the same design to create accummulated coverage, using the merge command. Once a CDD file is created, the user can use Covered to generate various human-readable coverage reports in an ASCII format or use Covered's GUI to interactively look at coverage results, using the report command. Additionally, as part of Covered's score command, race condition possibilities are found in the design files and can be either ignored, flagged as warnings or flagged as errors. By specifying race conditions as errors, Covered can also be used as a race condition checker.

Covered currently supports Verilog-1995, Verilog-2001 (with the exception of config blocks currently), and some SystemVerilog constructs. Metrics that are generated include the following:

Latest News

  • 11/26/2009
  • Development release covered-20091126 made. This is a bug fix release only.

  • 10/24/2009
  • Stable release covered-0.7.7 made. This is a bug fix release only.

  • 08/24/2009
  • Stable release covered-0.7.6 made. This is a bug fix release only.

  • 08/02/2009
  • Development release covered-20090802 made. This development release adds several performance enhancements and bug fixes to the new inlined code coverage flow, including the following:

  • 08/02/2009
  • Stable release covered-0.7.5 made. This is a bug fix release only.

  • 06/17/2009
  • Stable release covered-0.7.4 made. This is a bug fix release only.

  • 06/04/2009
  • Stable release covered-0.7.3 made. This primarily fixes a few bugs in the compile of Covered "out of the box". It seems that even with the regression testbench, things can still slip through the cracks :( Anyhow, please use this release instead of the 0.7.2 release.

  • 05/29/2009
  • Stable release covered-0.7.2 made. This is primarily a bug fix release with a few new features added to the CLI. Here are the details of the changes.

  • 05/07/2009
  • Stable release covered-0.7.1 made. This is a bug fix release only. Here are the details:

  • 04/26/2009
  • Stable release covered-0.7 made. This is a significant improvement over the 0.6 release, providing Verilog language enhancements, significant score optimizations, new rank and exclude commands, an enhanced merging capability, a multitude of GUI enhancements, a complete overhaul of the user documentation, many bug fixes, and much more.

    Click here for a history of news notes.

    Downloads

    Stable Download Versions

    Development Download Versions

    Documentation

    For on-line user documentation for the latest release, please go to the User's Guide page. A copy of the user's manual will also be available in the download. Documentation for the GUI report utility is available in the Help menu of the GUI.

    Bug Reporting

    If you encounter any problems with the Covered tool, please send these problems along with the version of Covered that you are using to the Covered bug reporting utility on SourceForge.net . Please describe the problem as accurately as possible or send an example that uncovers the problem. I will try to look at these as soon as possible.

    ToDo List

    The following are items that are on the todo list. Some of them are long term features that I want as part of this tool.

    1. Enhance Verilog code parser to allow coverage on more of the language.
    2. Add inlined code coverage generation capability for scoring.

    If you have any other things that you would like to see put into these lists, let me know.

    Related Links

    The following links contain other projects/websites that contain information associated with logic design, simulation, design verification and physical design that I have found useful.


    This page is maintained by Trevor Williams.
    Last modified date: Thu Jun 4, 2009