Blogs

WWED Group Blog

Survey for DAC 2011: Women in Electronic Design Event
blogger

To DAC 2010 Attendees:  WWED is considering changing the format of the DAC 2011 Career Seminar and would like YOUR...

Pallab's Place

Green Flash - the driving trend
blogger

At the recent Flash Memory Summit in Santa Clara, the topic of how to build a sustainable non-commodity market for flash...

EDA Thoughts

Cadence Virtuoso Update
blogger

On July 16th I met with three Cadence people in Oregon to get an update on the Virtuoso product line, the  leading IC layout...

JB's Circuit

As Summer Ends, Events Begin
blogger

Ready or not, summer is symbolically nearing an end with the coming of the Labor Day weekend. But for those of us who cover...

Poll

Where will the device design growth be in ten years?
Multicore
Programmable
Wireless
Low-Power
IP
New Technology
   
View Results

Article

[ Printer Friendly ]

Published in October / November 2008 issue of Chip Design Magazine

Now Is the Time to Fix Coverage Metrics

A crisis is looming in functional-verification coverage metrics. The industry has no choice but to fix it now. Otherwise—in light of more logic and processor cores being squeezed into a single product—complex system-on-a-chip (SoC) design could very well come to a screeching halt. Industry observers and pundits have recently jousted over the coverage-metrics crisis. One side says that constrained random testing doesn’t work and we have to dump it. Why? They cite the inefficiency of testing complex functionality (by some estimates 80% of constrained random simulation cycles test 20% of the design) as well as the lack of a link between what we need to test (functional intent) and randomly generated inputs.

The other side argues that constrained random isn’t so bad. After all, it does allow verification to be automated so that we can burn compute cycles instead of man-hours to verify designs. We just wish there was a more efficient way to test all of the complex functional intent that we put into our designs.
Both sides are right and wrong. Verification engineers and design project managers need to have a practical, comprehensive way to verify SoC designs. Both approaches want to get to 100% coverage (i.e., to be sure that everything has been tested). What we lack is a decent way to define what 100% coverage means.

What’s the problem? When a clock is tested, code coverage reveals whether every cog in the clock has moved. But it cannot convey whether combinations of cogs have turned together. Functional coverage informs the designer if the cogs in the implementation have been turned to every possible position—and if combinations of cogs have moved. But neither measure connotes whether the designer has tested that the clock keeps time. Achieving 100% coverage using these two metrics still means that the clock could be missing a cog or two needed for proper operation. But the engineer forgot to test the cases in which those cogs were needed.

A metric is needed for understanding how much of a design’s functional intent has been tested. It should convey what outcomes (and combinations of outcomes) have been seen from the design (e.g., has a packet been routed or dropped) instead of only measuring how much of the implementation has been exercised. There should be an automated method of achieving 100% coverage on this metric.

To get the best of both worlds, one option is to build intelligent testbenches that comprehend the functional intent of a design and generate directed functional test cases to ensure that all of this intent is covered. In my opinion, constructing coverage models using a combination of temporal graphs and path constraints provides a simple and logical approach to decomposing complex design specifications. It also distills the implied functional intent into a concise representation.

Once the verification engineer constructs the coverage model, functional-verification software can traverse the model to generate a suite of directed test cases. As a result, coverage of the captured verification intent will be guaranteed. Each generated test case can then drive input stimulus that will exercise a desired outcome and check for the desired behavior. To be practical, the generated test cases must work with established, constrained random testbench methodologies, such as VMM/OVM, as well as established testbench environments like System Verilog, Specman, System C, and VHDL.

By defining what exactly is meant by functional intent coverage, designers can make tests efficient. After all, each test exercises a specific combination of outcomes. At the same time, designers can retain the benefits of an automated approach, which allows computers to work on the verification problem instead of human beings. The best way to realize the promise of the intelligent testbench is to build coverage models using a combination of temporal graphs and path constraints. This approach has proven to be effective for defining coverage intent that is simple and well structured, concise, and suitable for the automated generation of stimulus, result checking, and coverage analysis.

Adnan HamidAdnan Hamid is CEO and founder of Breker Verification System, Inc. (Austin, Texas).

......................................................................

EDAC EDAC GSA IEC OCP Si Subscribe Advertise About Us Contact Us