Metric Driven Verification

Metric Driven Verification is a methodology based on metrics collections. It is used to improve the predictability, productivity, and quality of the verification effort.

In a nutshell, the methodology is based on four steps executed continuously until results fulfill assumed criteria:

Code Coverage

Code coverage is generated automatically from design source code. This verification metric does not indicate the correctness of your design. Rather it measures how code is exercised while running regression tests. If coverage is missing, it indicates either code that was not executed during the tests or incomplete tests.

The following types of code coverage are available in Aldec Simulators:



Functional Coverage - Assertions


Assertions and cover directives specify and validate the expected behavior of a design. They are written directly in the source code to observe signal values over a period of time.

Assertions declare that something must always hold (assertion failure implies a bug in the design).

Cover directives declare that something should occur (cover success confirms coverage).

The PSL cover directives and SystemVerilog cover statements are forms of Assertion Coverage. The specification of properties, and their use in assertions and functional coverage, is essential when designing a system and defining its verification algorithms. Aldec Simulators support three popular languages serving this purpose:



Functional Coverage - SystemVerilog Covergroups


Covergroup Coverage is a form of Functional Coverage that calculates SystemVerilog coverage model statistics. It is a user-defined metric that measures the percentage of design specification that has been examined by running the simulation session. Covergroup Coverage verifies interesting and relevant design features (listed within the verification plan) have been observed using the generated stimuli. In contrast with Assertion Coverage, which is used to verify design features over time, Covergroup Coverage is focused on covering relevant values accepted during the entire simulation. It is used for high-level verification of complex designs.



Functional Coverage - OSVVM


The Open Source VHDL Verification Methodology (OSVVM) library provides subprograms that facilitate implementation of the OSVVM Functional Coverage in VHDL designs. The CoveragePkg package included in this library offers a similar functional coverage verification as the SystemVerilog hardware description language counterpart.



Functional Coverage - FSM


A Finite State Machine consists of a set of states, input and output events, and logical conditions. A calculation based on the conditional logic, input events, and the current state returns a new set of output events and the next state. FSM Coverage allows the user to identify unvisited states and unevaluated transitions. The following FSM components and coverage statistics can be collected:




Coverage Database- Unified Coverage Interoperability Standard


Aldec Coverage DataBase (ACDB) is a unified storage format for several types of coverage data. ACDB is Aldec's implementation of Accellera UCIS (Unified Coverage Interoperability Standard) requirements

In Aldec’s simulators, all kinds of coverage statistics are collected and can be saved into the ACDB.

The coverage results saved to the ACDB can be ranked by using the acdb rank command.

Multiple ACDB files can be merged into one. This feature allows for the examination of statistics generated during different simulation sessions (plus report generation is available for merged ACDB files).




Ranking Test Results


The coverage results saved to an ACDB database can be ranked. This function classifies the results based on the contribution of individual tests to the total coverage score. The command allows comparing a single coverage result against all others to determine its usability. Cost-sensitive parameters, such as simulation time and CPU time, may also be taken into account to identify test runs that yield the greatest coverage value in the shortest amount of time. The acdb rank command operates on a union of contribution test results to produce the most comprehensive overall results. It is possible to create the report either in a plain text or in an HTML format



Verification Plan


Instead of focusing on detailed coverage results, the verification process aims at meeting overall requirements and achieving a higher level of validation.

Requirements can be used to link together various design features and coverage metrics providing an advantage over the basic verification methodology that focuses on inspecting detailed coverage results.


Printed version of site: