The Coverage Cookbook describes the different types of coverage that are available to keep track of the progress of the verification process, how to create a functional coverage model from a specification and provides examples of how to implement functional coverage for different types of designs.
As the saying goes, "What doesn't get measured likely won't get done." And that is certainly true when trying to determine a design project's verification progress or trying to answer the important question, "Are we done?"
Whether your simulation methodology is based on a directed testing approach or constrained-random verification, to understand your verification progress, you need to answer the following questions:
- Were all the design features and requirements identified in the testplan verified?
- Were some lines of code or structures in the design model never exercised?
Coverage is the metric we use during simulation to help us answer these questions. Yet, once coverage metrics become an integral part of our verification process, it opens up the possibility for more accurate project schedule predictions, as well as providing a means for optimizing our overall verification process. At this stage of maturity, we can ask questions such as:
- When we tested feature X, did we ever test feature Y at the exact same time?
- Has our verification progress stalled for some unexpected reason?
- Are there tests that we could eliminate to speed up our regression suite and still achieve our coverage goals?
The Coverage Cookbook evolves to address all aspects of a coverage-driven verification methodology, such as: coverage planning, coverage modeling, coverage implementation, coverage analysis, and coverage closure.
Check out the Coverage Cookbook for a set of downloadable examples and join a community of engineers interested in learning how to leverage coverage on their projects.
Coverage Cookbook Authors:
- Gordon Allan
- Gabriel Chidolue
- Thomas Ellis
- Harry Foster
- Michael Horn
- Peet James
- Mark Peryer
Please note that it may not always be possible or appropriate to supply source code for all of the examples in the Coverage Cookbook.
The Coverage Cookbook is available for download below.
Coverage Metrics and Process (Theory)
- What is Coverage
- Kinds of Coverage
- Code Coverage Metrics
- Functional Coverage Metrics
- Specification to Test Plan
- Executable Test Plan Format
- Testplan to Functional Coverage
- Design For Analysis
Coverage Examples (Practice)
- Bus Protocol Coverage
- APB3 Protocol Test Plan
- APB3 Protocol Monitor
- Block Level Functional Coverage Example
- UART Example Test Plan
- UART Example Covergroups
- Datapath Example
- BiQuad IIR Filter Test Plan
- BiQuad IIR Filter Example Covergroups
- System Level Functional Coverage Example