Navigation
GitHub
CoreLib
Links
Sponsors
Notes
This wiki uses icons from icons8.com licensed under CC BY-ND 3.0.
This wiki uses icons from icons8.com licensed under CC BY-ND 3.0.
Transferred from IEEE P1076 WG Collected Requirements list: FunctionalCoverage
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
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.
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: github.com/JimLewis/OSVVM
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.
See the documentation that accompanies the open-source packages.