Randomized Test Vector Generation
Directed by Tag Coverage

Introduction and Research Objectives

Functional validation of hardware designs has become the most resource-consuming part of the design process. Validation is predominantly performed by software simulation of HDL models. A simple-minded simulation-based approach is inadequate because it doesn't provide any formal assurance that the design meets a certain specification and it doesn't provide a measure of how well the design has been exercised. Formal verification methods address the former issue, however, they have serious capacity limitations which limits their applicability. As a result of this, in the recent years, significant research activity has focused on methods that lie in between formal verification and simulation. The basic idea is to make more intelligent use of the information obtained from simulation or from partial verification.

Coverage metrics enable us to identify unchecked aspects of designs and to quantify the comprehensiveness of verification achieved. Coverage-directed simulation can significantly improve the quality of the validation achieved. The broad objective of our project is to make use of the coverage information in functional test vector generation.

Tag coverage, introduced by Devadas, Ghosh, and Keutzer (ICCAD '96) augments code coverage metrics with the notion of observability. We have selected to use tag coverage as our metric, because it is a significant improvement over straightforward code coverage metrics and is computationally more viable than state-space-based metrics. The specific goal of our project is to develop efficient algorithms that implement the "coverage feedback loop" in the figure above using tag coverage.

Current Research

Fallah et. al. have devised algorithms to compute the tag coverage achieved by simulation and to determine simulation sequences to cover a given tag. We believe that applying their algorithm to each tag would be too expensive. Therefore, we are developing an algorithm for biased random test generation with tag coverage as its goal. The conception of the algorithm is mostly completed although we have not yet addressed a few important issues. We are going to use the VIS and VERA frameworks to implement our algorithm.

Project Proposals

Below are two project proposals that can be powerful additions to the framework above. If you are interested in working on these projects, please contact me serdar@ic.eecs.berkeley.edu

Testability/Verifiability Estimation for Sequential Circuits
Functional Verification of Datapaths using Biased Random Vectors

Related Research Directions

The relationship between design errors and coverage metrics remains a largely unexplored issue. Ideally, the use of a coverage metric needs to be justified by showing that increased coverage leads to increased confidence that possible errors have been uncovered. An empirical study of this issue, even of limited scope, would be invaluable.

Related Material

ICCAD'99 Embedded Tutorial: Simulation Meets Formal Verification (with Prof. David Dill)

Coverage Metrics for Verification (Slides of Presentation at Cadence Berkeley Labs.)

Coverage Metrics and Error Models: A Literature Survey

Farzan Fallah's Presentation on "Coverage Directed Validation of Hardware Models"

Farzan Fallah's Publications on Coverage and Functional Vector Generation

Prof. David Dill's DAC '98 Tutorial: "What's between Simulation and Formal Verification?"