Functional coverage model – Architecture requirements
Functional coverage model architecture requirements are ability to meet following three primary objectives: Portability Maintainability Debuggability Portability Functional coverage is one of the reusable part of…
Functional coverage model architecture requirements are ability to meet following three primary objectives:
- Portability
- Maintainability
- Debuggability
Portability
Functional coverage is one of the reusable part of the test bench. It can have both horizontal as well as vertical reuses. Horizontal reuse could come in the form of same design IP used with different parameterizations to meet different use cases. Vertical reuse could come in the form of the reuse of subset of unit level functional coverage at sub-system or SOC level.
Maintainability
Functional coverages continues to live as long the IP lives. Add to that, it’s one of the reusable part adds to its higher shelf life as well. Which means it should be maintained for long time.
Easy to maintain code should be easy to understand, enhance, debug and fix the issues. Easy to understand codes are organized with a theme. After initial effort once code reader recognizes the theme, he sees it consistently reflecting in all parts of code. This makes maintenance process easier.
Functional coverage model is no exception to this rule. It should follow the same the same principles.
Debuggability
Functional coverage implementation is just the first part of the story. Climax of functional coverage story is, it’s closure and meeting the verification objectives successfully. This requires quite bit of debugging and analysis. Let’s understand some of the debugging challenges for functional coverage closure.
First step of coverage closure involves classifying the functional coverage results generated from regressions into false positive coverage, false negative coverage and coverage that will not be hit. Among these false positive case is the most dangerous one. Review and redundancy is one of the most effective guard against false positive coverage.
Bulk of these issues are caused by incorrect coverage information tapping points in test bench, incorrect sampling event selection and incorrect definitions of bins.
Functional coverage model architecture should lend itself well to these debug challenges.