Functional Coverage

Proposal Information

  • Who Updates: JimLewis, ...
  • Date Proposed: 2011-07-16
  • Date Last Updated: 2012-11-29
  • Priority:
  • Complexity:
  • Focus: Testbench

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.

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 enhnacements 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


Add your signature here to indicate your support for the proposal

Document History

-- JimLewis - 2012-11-30: Split FC from FC+random Old combined FC and Randomization

Topic revision: r2 - 2020-02-17 - 15:34:31 - JimLewis
Copyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback