Abstract information to a human usable level
Even a relatively straightforward protocol like AMBA AHB
presents a huge complexity challenge to the verification team. A simple bus
read has hundreds of permutations that must be captured both in the human
readable verification plan document and in the actual verification process
itself.
To comprehensively test such a protocol manually would
require a massive, labor-intensive verification plan and process. The
limitations of human ability to capture all the verification scenarios make
the process even riskier. This is one example of how End-to-End VIP, or a
universal verification IP or component, provides a superior result to
internally built solutions.
These high-end universal VIPs abstract the protocol details
to a level that humans can effectively manage. Instead of being forced to
track millions of protocol permutations (such as, "did the bus read from
location FFFCA while the grant was enabled during a buffer overflow
condition") they provide a higher abstraction level. With this type, VIP
engineers will instead ask "have all reads been exercised?"
Some readers may be thinking most of the permutations don't
matter since they're essentially the same as others already verified. While
it's true that performing a read from address A is not far different than
reading from address B, it is still important in the big picture. Human
testers will always miss combinations and edge values, thereby weakening
verification completeness.
The only approach that enables complete functional coverage
employs context sensitive automatic stimulus generation. This ensures
that all the important configurations and permutations have been stimulated,
even infrequent device conditions such as error conditions. For example, you
can automatically generate stimuli for the full range of potential behaviors
including error injection.
Furthermore, while simulation cycles are becoming less
expensive, they aren't free (and never will be). Therefore it's important not
to waste them. End-to-End VIP directs the verification engines to avoid
protocol functionality not in the specific design as well as already verified
functionality. This is a major advantage of using a functional coverage
approach. It addresses the entire process from plan to verification closure.
Use an automatic plan-to-closure process
Imagine you're blindfolded and dropped into an open field
miles from any city. How would you find your way home? You don't know where
you are and you don't know where you're going. That is the conundrum many
verification teams find themselves in. They're charging ahead yet they don't
have a clear map of the territory. Adding to their woes, such teams are
unable to concisely and/or accurately convey to their management where they
are in the verification process or when they'll finish.
To address these issues End-to-End VIP must deliver three
key elements.
1. End-to-End VIP must provide a clear definition of
closure including metrics that everyone on the team understands. This
requires defining a DUT functionality matrix spelling out what is and what
is not to be tested. The matrix is then codified into an executable
verification plan.
2. It must provide a way to observe and measure the verification results
relative to the metrics. This enables everyone to understand where the
verification stands relative to closure.
3. A reporting mechanism is needed so that the team and their management
know precisely where the verification process stands. They can also
accurately predict how much more time and resource reaching closure will
require.
While a plan to closure process is necessary, it is still
not sufficient. The verification process must be automated to successfully
verify multi-million gate SOCs. Even if you had the thousands of man-months
needed, the complexity of managing thousands of individual test cases is
beyond the capacity of manual testing. Automation capabilities planned into
VIP address three essential elements. First, they provide an executable
verification plan. It is both a human readable and machine readable document
that spells out the functionality matrix to be verified (see Figure 2 below).
Second, they add in automatic stimulus generation to ensure
that each component of the functionality matrix is exercised. And third, they
provide the coverage points and coverage metrics to enable you to assess and
report on verification completeness.

Figure 2 — Example verification plan from PCI Express universal verification
component
Verification teams also commonly struggle with the
competing tasks of finding bugs and reaching coverage closure. End-to-End VIP
alleviates this struggle by automating both. For example, they provide
failure triage to find bugs. And, when not finding bugs, they work to deliver
maximum coverage. Therefore End-to-End VIP enables each additional simulation
seat to find more bugs and/or to increase coverage.
Employ a reuse methodology
Verification IP is all about reuse. VIP must be usable (and
reusable) by expending only minor effort. This is true of first usage or when
moving from block to chip to system level verification. To achieve this goal
requires a significant investment in a reusable VIP architecture and a reuse
methodology. This can be supplied either by the design team or by the VIP
supplier, but it must be in place to reap the full benefits of VIP reuse.
This is not just theory. Users employing a market proven
reuse methodology together with End-to-End VIP have reported 50-100X
productivity gains when creating and reusing their verification environments.
Page 1:
Verification IP takes a broader role
Page 3:
Verification IP takes a broader role