CoveragePkg simplifies the modeling of functional coverage for either point or cross coverage. It defines a protected type and methods that facilitate modeling, collecting, and interacting with the coverage data structure.
Functional coverage is modeled sequentially. Coverage items can be added incrementally. Any sequential language construct can be used to model or capture coverage. This gives VHDL a powerful capability that results in a high fidelity coverage model.
The protected type also contains a randomization object. Intelligent coverage uses the randomization object to randomly select holes in the coverage model. This allows the creation of an intelligent test environment that reaches complete coverage faster than other approaches. Intelligent coverage balances the randomization solution without requiring the complexity of a solver.