Functional Verification Coverage Measurement and Analysis
As the complexity of today’s ASIC and SoC designs continues to
increase, the challenge of verifying these designs intensifies at an even
greater rate. Advances in this discipline have resulted in many sophisticated
tools and approaches that aid engineers in verifying complex designs. However,
the age-old question of when is the verification job done, remains one of
the most difficult questions to answer. And, the process of measuring verification
progress is poorly understood.
For example, consider automatic random stimulus generators, modelbased
test generators, or even general-purpose constraint solvers used by
high-level verification languages (such as e). At issue is knowing which portions
of a design are repeatedly exercised from the generated stimulus — and
which portions of the design are not touched at all. Or, more fundamentally,
exactly what functionality has been exercised using these techniques. Historically,
answering these questions (particularly for automatically generated
stimulus) has been problematic. This challenge has led to the development
of various coverage metrics to aid in measuring progress, ranging from code
coverage (used to identify unexercised lines of code) to contemporary functional
coverage (used to identify unexercised functionality). Yet, even with
the development of various forms of coverage and new tools that support
coverage measurement, the use of these metrics within the verification flow
tends to be ad-hoc, which is predominately due to the lack of well-defined,
coverage-driven verification methodologies.
Prior to introducing a coverage-driven verification methodology, Functional
Verification Coverage Measurement and Analysis establishes a sound
foundation for its readers by reviewing an excellent and comprehensive list of
terms that is common to the language of coverage. Building on this knowledge,
the author details various forms of measuring progress that have historically
been applicable to a traditional verification flow, as well as new forms
applicable to a contemporary verification flow.
Functional Verification Coverage Measurement and Analysis is the first
book to introduce a useful taxonomy for coverage metric classification.
Using this taxonomy, the reader clearly understands the process of creating
an effective coverage model. Ultimately, this book presents a coveragedriven
verification methodology that integrates multiple forms of coverage
and strategies to help answer the question when is the verification job done.
Andrew Piziali has created a wonderfully comprehensive textbook on
the language, principles, and methods pertaining to the important area of
Functional Verification Coverage Measurement and Analysis. This book
should be a key reference in every engineer’s library.
Harry Foster
Chief Methodologist
Jasper Design Automation, Inc.
x Functional Verification Coverage Measurement and Analysis |