Functional Verification Automation
for IP
Bridging the Gap Between IP Developers and IP Integrators |
 |
Introduction
The development and integration of intellectual property (IP) in
the form of large functional blocksor coresis an essential
part of an increasing number of today's IC design strategies. Numerous
benefits justify this approach. Properly managed, the use of pre-designed,
pre-verified IP blocks can cut man-months off of the design cycle,
provide opportunities for design reuse in future systems, and where
applicable, ensure compliance with complex standards and protocols.
Unfortunately, the emergence of the IP-based design methodology
has done as much to exacerbate design and verification problems
associated with systems-on-chip (SOC) designs as it has to alleviate
them. For example, how does the IP developer pass on knowledge of
an IP block with sufficient breadth and depth to ensure that the
integration process will progress smoothly and quickly toward a
successful implementation? On the other hand, what assurance does
the IP integrator have that a recently purchased core has been adequately
verified? Further, once the IP is integrated within the system,
and a bug emerges during simulation, how does one determine if it
originated in the IP or in the surrounding circuitry?
Functional verification automation addresses these and other verification
problems by helping to bridge the gap between IP developers and
IP integrators, whether they work in separate departments or in
separate companies.
The IP ERA: Building Content and Complexity
The prevalent trend toward the use of IP in SOC designs was born
primarily out of two compelling needs: to reduce the time and cost
required to fill up the enormous gate capacities inherent to deep-submicron
processes, and to amortize the cost of creating functional blocks
whose content offers value as reusable design elements. Unfortunately,
the advent of massive IP-based ICs has also given rise to extraordinarily
complex design and verification problems.
The electronic design automation (EDA) industry has made great
strides in alleviating some of these design problems through a variety
of high-performance tools and methodologies that improve and extend
design automation, raising the design effort to higher levels of
abstraction. However, advances in verification have centered primarily
on increasing the speed of simulation, not on automating the verification
methodology as a whole. Thus, the difficulties one encounters when
verifying these large, complex, IP-based designs remain relatively
unaddressed.
Specman, Verisity's functional verification automation product,
directly addresses the problems that arise when verifying correct
integration of IP. To understand how Specman accomplishes this,
one must understand the nature of the verification bottleneck. As
designs grow more complex, the verification problems they pose grow
exponentiallyas designs double in size, the verification code
can easily quadruple. As a result, the typical verification effort
consumes as much as 50 to 70 percent of the entire engineering budget.
Unfortunately, neither the schedule nor the available engineering
resources offer much in the way of flexibility. More importantly,
the cost of missing a time-to-market schedule can force design teams
to prematurely terminate the verification effort. This leads to
incomplete and inadequate functional verification, creating the
potential for a pattern of debug cycles, re-designs and re-spins
that erode the profitability and quality of the end product. Thus,
IC design quality becomes a function of the verification schedule,
rather than verification metrics.
Functional verification automation is an emerging methodology for
functional verification that solves many of the problems associated
with verifying large, complex designs. An effective application
of this methodology provides three essential capabilities to help
break through the verification bottleneck:
- it automates the verification process, reducing by as much as
four times the amount of manual work needed to develop the verification
environment and tests;
- it provides functional coverage analysis capabilities to help
measure the progress and completeness of the verification effort;
- it raises the level of abstraction used to describe the environment
and tests from the RTL level to the architecture/functional specification
level.
As bad as verification is for today's complex designs, it is even
worse for IP-based designs. Besides dealing with the challenge of
size and complexity, an effective verification methodology for IP-based
designs must also solve the verification problems of both the IP
developer and the IP integrator.
IP developers and IP integrators have two very different views
of the world, and therefore, two separate sets of verification problems.
The IP developer may be intimately familiar with the micro-architecture
of the block of functionality they have created, but have only a
fuzzy idea about what the target system will look like. Conversely,
the IP integrator knows the target system in detail, but the IP
itself is a "black box" often buried deep within the design, offering
the integrator little, if any, controllability or visibility to
the primary inputs and outputs of the IP.
|
IP Developer
|
IP Integrator
|
|
The IP developer has a detailed understanding of the
microarchitecture, but an incomplete view of the target
system.
|
The IP integrator understands the system, but sees the
IP as a black box, often with little or no visibility or
controllability at the IP ports.
|
The IP Verification Problem
The IP developer needs to create high-quality IP to overcome their
customers' apprehensions about placing something that was designed
by somebody else into the critical path of their success. To the
developer, successful verification means being able to assure the
customer (the integrator) that there are no quality problems at
the IP block level, and that there will be none once the block has
been integrated with the rest of the system. The ability to offer
substantiated assurance is critical to the IP developer, because
their success hinges on the customer's design making it to volume
production. This also means they need to help solve the IP integrator's
verification problems.
The IP integrator has a multifaceted verification problem. At the
outset, they are looking for verifiable high-quality IP. Otherwise,
any sign of problems in the design, and the IP becomes the immediate
suspect. This can create a major support burden for the IP developer,
and a very slow loop for debugging the design that erodes the profits
for both sides.
The integrator also needs to verify at every stage of the design
that the integration process complies with the rules set forth by
the developer. These rules attempt to capture information about
the capabilities of the IP's architecture and the assumptions made
about the target system's interaction with the IP. Often, these
rules accompany the design in the form of a manual of guidelines,
which may or may not cover the exact usage scenario being used by
a particular target system. The integrator must become as familiar
as possible with the integration guidelines, despite having little
or no access to the internal workings of the IP. Thus, the integrator
and the developer must establish a common basis of communication
if they are both to succeed.
Having completed the integration process, the integrator faces
the difficult task of creating system-level (or chip-level) tests
that sufficiently exercise both the IP and the surrounding system.
Problems arise from a number of areas:
- the IP may not sit at the boundary of the system, making access
a problem;
- the integrator may have little knowledge, much less control,
of the user modes or scenarios generated by the system-level tests,
making the IP's response highly unpredictable;
- verification coverage of the IP is virtually indeterminate.
|
What Worries the IP Developer
- Need for high-quality verification of their IP with
limited knowledge of the target system.
- Need to ensure customer integration success.
|
What Worries the IP Integrator
- Need for high-quality IP
- Need to ensure customer integration success.
- Need to make sure the chip-level tests exercise the
IP "enough"
|
The Specman Elite Solution for IP Verification
The IP Developer
The functional verification automation methodology enabled by Specman
Elite offers verification assistance both for the developer and
the integrator of IP. At the development level, Specman Elite addresses
the developer's need to create high-quality IP in four ways:
- by increasing productivity;
- by automating the generation of tests, including those that
address corner cases;
- by providing effective randomization capabilities to enable
the engineer to test for the unexpected;
- by enabling functional coverage analysis which measures the
progress of the verification effort against a functional test
plan and directs the verification process to ensure that every
test is adding new and important coverage.
The one feature Specman Elite offers that most significantly contributes
to increased productivity is automated test generation. Armed with
a constraint-driven test generator, a functional verification automation
methodology can slash weeks, or even months off of the verification
schedule for an IP block.
Specman Elite's constraint-driven generator gives the IP developer
full control over the generation process. It can generate tests
that are completely random, completely deterministic or anywhere
in between. Instead of randomizing only what the developer specifically
instructs the system to randomize, the constraint-driven generator
take the "infinity-minus"approach. It randomizes everything except
what the engineer specifically constrains the generator not to randomize.
This allows the generator to approach any given test scenario from
multiple paths. Since IP developers have limited knowledge of the
target system, the randomization in this methodology is particularly
important to allow them to test for unanticipated user scenarios.
Specman Elite also greatly eases the process of making tests self-checking.
Particularly since the IP may be deeply embedded inside the target
system, it is important to supply checkers that check both data
integrity and temporal behavior. Specman Elite contains a rich set
of temporal constructs that make it easy to create checkers to capture
complex protocols.
Functional coverage analysis gives the IP developer a clear indication
of which functionality within the IP block has been exercised, and
more importantly, which functionality has not. This eliminates superfluous
or redundant tests, ensuring that every test adds coverage.
The functional coverage reports generated by Specman Elite help
monitor the progress of the IP verification process, providing a
clear indication of the state of the verification. Ultimately, the
coverage reports enable the developer to determine when the IP is
ready to be delivered to the integrator. Functional coverage reports
also enable the IP developer to verify, record and communicate the
effectiveness of the tests to customers (integrators).
The impact on the IP verification schedule when using this approach
is significant. It eliminates much of the manual-intensive work
of developing deterministic tests, saving many man-months of frustrating
work, and ultimately, eliminating the risk of sending the IP to
the integrator with part of its functionality untested.

Verisity's Specman Elite automates functional verification.
The IP developer also has a vested interest in helping its customer's
succeed. Specman Elite helps solve the IP integrator's problems
by making the IP integration rules executable and by enabling functional
coverage analysis. Specman's functional coverage analysis feature
allows the IP developer to define exactly what functionality of
the IP should be monitored and reported during system or chip-level
tests. To accomplish this, the IP developer supplies a toolkit,
which captures both the rules, as checkers, and the interesting
coverage scenarios in executable form and delivers this to the IP
integrator.
The IP Integrator
Typically, the IP developer runs extensive regression tests, often
taking weeks to complete, before releasing a block of IP. Upon delivery
to the customer, the developer often provides a greatly condensed
subset of the regression test to provide some assurances to the
customer that the IP operates within the context of the developer's
simulation environment. Since the customer has no way to measure
the effectiveness or completeness of the verification effort, the
developer may also provide a copy of their functional test plan.
Specman Elite enables the IP developer to give the customer an
executable test plan with coverage reports from the run-time execution
of the simulation. The reports show exactly what was done in the
verificationa very straightforward capability inherently provided
by Specman Elite.
Because the target system can be so complex, rather than just providing
an exhaustive book of rules governing the assertion and timing of
signals, Specman Elite allows the IP developer to deliver executable
checkers around the boundaries of the IP which capture data dependencies
and temporal rules. Thus, Specman Elite can check any arbitrarily
complex, mode-dependent, multi-cycle scenarios that the IP developer
specifies. This process is completely invisible to the IP integrator.
Specman Elite essentially delivers two types of checks:
- boundary checks to ensure that the IP has been integrated correctly;
- internal checks which capture the developer's own internal checks
to make sure that if there is a problem with the IP, the integrator
can quickly resolve it.
Delivering both boundary checkers and internal checkers enable
IP integrators to quickly pinpoint whether a problem in the simulation
is due to a failure in the integration or a problem in the IP itself.
These checks help eliminate any finger pointing between the developer
and the integrator should a bug appear, and help to reduce the cost
of support. Further, when there is a problem with the IP, these
checks help direct the developer to the exact location of the problem.
|
Interface Spec:
Slave must assert ACK 1 to 5 cycles after REQ detected
Checker:
expect @req => { [1..5]; @ack}@clk else
dut_error("Slave must assert ACK
1 to 5 cycles after REQ detected");
Interface Spec:
The DUT sets Parity Error Detected bit when target asserts
parity_err on DUT data phase
Checker:
expect @parity_err_assert => @set_err_bit within
interval(@parity_err_assert,
@end_data_phase)@clk
else dut_error("DUT must set Parity
Error Detected bit when
target asserts parity_err during data phase");
|
Specman Elite allows easy creation of data and temporal checks.
Even with checkers sitting at the boundaries of the IP, if the
integrator doesn't run the right test scenarios, they may not find
an integration problem. Using Specman Elite, the IP developer can
deliver the important coverage scenarios, which are monitored during
system or chip-level testing. These give valuable information to
the IP integrator in where there may be holes in the integrator's
coverage of the IP. This helps the IP integrator determine whether
all of the user modes and important multi-cycle scenarios were exercised.
The IP developers may also choose to supply coverage scenarios of
internal corner cases and state machines (both state and transition
coverage), allowing even more visibility into the real coverage
of the IP.
|
IP Developer
|
IP Integrator
|
|
|
|
|
Complete coverage before shipping.
|
Visibility into holes in system-level
test.
|
Pure IP Program
Verisity works with IP developers to help develop toolkits they
can deliver to their end customers. The intent of the toolkits are
to provide checkers and coverage capability that are pertinent to
the integrator's specific application. The toolkits are typically
configurable, which is especially beneficial for IP developers offering
soft IP that has been customized for a particular application, or
hard IP where only portions of the capabilities are used. The tool
kits enable integrators to access error messages from the checkers,
as well as coverage information that will help the integrator identify
problems in the integration and holes in the system or chip-level
tests.
The tool kits contain complete documentation, executable checkers,
coverage scenarios, and a version of Specman Elite - called Invisible
Specman - that does not require the IP integrators to learn or purchase
Specman Elite.
|
Verisity's Invisible Specman
- Allow IP vendors to deliver a run-time version of Specman
with subset capability.
- Invisible Specman allows delivery of data and temporal
checks, and functional coverage at boundaries as well as
internal
- Invisible Specman requires no learning curve, and
no knowledge of Specman Elite necessary
|
Conclusion
For the IP developer, verifying IP quality depends largely upon
the degree to which the simulation environment accurately represents
actual system-level operating conditionsthe area with which
the developer is least familiarand the completeness of functional
coverage attained. Ultimate success depends upon the developer's
ability to communicate the "rules" of integration to its customers
and enable smooth integration into a working chip.
For the IP integrator, success depends upon strict adherence to
the developer's "rule book" for proper integration of the IPthe
area with which the developer is least familiarand effective
coverage of the IP during system or chip-level tests.
Both parties face time and resource constraints that place a premium
on productivity in this, the most time-consuming effort in the product
development cycle. Moreover, both the IP developer and the IP integrator
fight a continual battle to keep support costs to a minimum, and
share a vested interest in accelerating the time-to-volume. Functional
verification automation addresses the concerns of both the IP developer
and the IP integrator, greatly reducing the risk in IP-based designs.
Verisity Design, Inc. 2041 Landings
Drive Mountain View, CA 94043
phone: (650) 934-6800 Fax: (650) 934-6801
www.verisity.com/
Specman Elite, SureCov, Verisity, and the Verisity logo are
trademarks of Verisity Design, Inc. All other trademarks are the
exclusive property of their respective holders. ©1999 Verisity
Design, Inc.
|