User Tools

Site Tools





This website is sponsored by


This wiki uses icons from licensed under CC BY-ND 3.0.


Functional Coverage

Requirement Summary & Rationale

Requirements from past IEEE and Accellera VHDL lists:

Item Description Tracking / Proposal Supporters Priority
TBV 10 Access to coverage for reactive TB TBV Proposals
SAB 5 Functional Coverage paired with random and PSL Accellera 2008 List - excel
SAB 6 FC triggered on events or sequence completion Accellera 2008 List - excel
SAB 7 Disable FC under a condition such as after reset Accellera 2008 List - excel
SAB 8 Access FC data structure to support reactive testbenches Accellera 2008 List - excel
SAB 9 Support cross coverage (relate 2 or more points) Accellera 2008 List - excel
SAB 10 User specification of how functional coverage data is grouped (bins) Accellera 2008 List - excel

Conditional coverage collection
Separate coverage goals for each bin

Approach Overview

Coverage is a data structure. As such it can be implemented in a protected type. The Open Source VHDL Verification Methodology (OSVVM) project has implemented such a package and would be a suitable alternative to adding syntax to the language.

Advantages of a package based approach

Available now. No cost for vendors to implement. Updateable frequently.

While SystemVerilog and 'e' implement FC as a declarative object, constructing the model and collecting coverage sequentially has some distinct advantages. The coverage model does not need to be captured in a single declaration, but rather can be captured incrementally when the precision and/or fidelity of the model demands it. Any sequential construct may be used to construct model or capture coverage.

One unique capability the OSVVM package offers is the integration of functional coverage and randomization. With only constrained random capability, generating N stimulus items takes O(n * log n). By randomly selecting a coverage hole, and passing that to the stimulus generation process, under good conditions, run times can be reduced to O(n).

The OSVVM packages are available here.
Latest packages:

VASG Actions

With the current language definition, there are some things that the package based approach cannot do or would be clumbsey to do. There are a number of enhancements that we can make to protected types, subprogram interfaces, and subprograms that would expand the capabilities of the package based approach. Most/all of these are inspired by features that are already in ADA.

How do we better leverage PSL - particularly for transition based constraints.

Use Models

See the documentation that accompanies the open-source packages.

Competing Issues:

  • None at this time

General Comments

  • None at this time


  • Add your signature here
proposals/funccover/osvvm/start.txt · Last modified: 23.08.2016 17:43 by paebbels