Вы находитесь на странице: 1из 3

Pre-silicon Validation Technical Backgrounder

Alakesh Chetia, Sr. VP, Business Development


Robert Birch, Chief Technology Officer
TransEDA

Introduction Results Checking

Pre-silicon validation is generally performed at a While it may be relatively easy to generate activity or
chip, multi-chip or system level. The objective of stimulate the different ports or interfaces of a chip, the
pre-silicon validation is to verify the correctness difficult part is to implement an automated results or
and sufficiency of the design before sending the data checking strategy. A system-level pre-silicon
design for fabrication. This approach typically validation environment should relieve test writers
requires modeling the complete system, where from maintaining or keeping track of the data in test
the model of the design under test may be RTL,
code to make the task easily manageable for a
and other components of the system may be
multi-ported system. Keeping track of the data
behavioral or bus functional models. By subjecting
becomes arduous when different agents in a system
the design under test (DUT) to real-world-like input
interact on the same address segments.
stimuli, pre-silicon validation aims to:

• Validate design sufficiency Automated Test Generation


• Validate design correctness.
• Verify implementation correctness. The test creation and/or generation methodology is
• Uncover unexpected system component interactions. critical in building a system level pre-silicon validation
environment capable of generating real-world-like
To achieve the goals outlined above a system level stimuli. The test generation methodology is closely
environment is required with special emphasis for interrelated to the results checking strategy.
handling the following situations.
A dynamic test generator and checker are more effective
Concurrency in creating very interesting, reactive test sequences.
They are more efficient because errors can be detected
Most complex chips have multiple ports or interfaces as they happen. In a generate/run/post-process method,
and there is concurrent, asynchronous and independent one may run a simulation for eight hours, only to find
activity at these ports in a real system. A system-level during the post-process checking that an error occurred
verification environment should be able to create and 20 minutes into the simulation, with the balance of the
handle such real-world concurrency to qualify as a simulation time being useless.
pre-silicon validation environment. Concurrency needs
to be handled in both the test controller and the An automated test generation tool should be capable of
bus/interface models used. handling directed testing, pseudo-random testing and
reactive testing.
Some models will return data when a transaction
completes, so the test controller or environment can do In directed testing, users specify the sequence of events
data checking. Other models require the expected data to generate. This is efficient for verifying known cases
to be provided up front so the model can do data
and conditions. Pseudo-random testing is useful in
checking when the transaction completes. Such
uncovering unknown conditions or corner cases.
behavior impacts the test checking methodology and
the amount of concurrency that can be generated.

TransEDA © 2001 TransEDA


info@transeda.com
www.transeda.com
Pseudo-random test generation, where transactions are Models must operate at the appropriate level of
generated from user-defined constraints, can be abstraction, concurrency and programmable
interspersed with blocks of directed sequences of
controllability. For example, a processor BFM may
transactions at periodic intervals to re-create real-life
traffic scenarios in a pre-silicon validation environment. simply drive transactions on the bus, but not
automatically handle deferred transactions and retries.
Dynamic test generation also facilitates reactive test In such a case, the test code or an additional layer of
generation. Reactive test generation implies a change abstraction needs to handle such situations making the
in test generation when a monitored event is detected test writing more difficult and time consuming.
during simulation.
Sometimes models generate or respond to signals on
Robust, High-quality Verification IP the bus with the same timing and do not provide
programmable controllability. To fully validate
The quality of verification, and therefore the probability
of shippable first-pass silicon, is greatly enhanced with adherence to a bus protocol, the system must be tested
robust, high-quality verification IP, which includes such with all possible variations in cycle timing that is
items as bus functional models (BFMs) and protocol allowed by the device specification. This means that
monitors. the test generator should be able to change the timing
of the models, and to randomly vary delays and cycle
A common mistake is to require the project group that relationships, such as data latencies and wait states.
develops the RTL to also create the verification IP used
to verify the RTL. While this is sometimes required for So, while on one hand, a higher abstraction (such as
proprietary interfaces, it runs the risk of making the
same wrong assumptions. Further, the rate of maturity transaction level) is required in the model API so that
of an internally developed model is much slower than system level tests can be generated or created easily it
a commercial model that has been used by multiple is equally important to provide in the API low level
independent design groups. signal timing control.

Whether the design team builds or buys the An Architecture for Pre-silicon Validation
verification IP, they must ensure that the models can
fit into the test generation and checking strategy that We present here a case study of a pre-silicon validation
is adopted. Also, the models need to operate in a mode
environment set up to verify several versions of a
that fits into a pseudo-random test methodology.
Models that load and execute a pre-compiled test bridge device connecting CPU with memory and I/O
sequence do not work in an environment where one interfaces.
can dynamically generate and check tests.
Simulation Enviornment

CPU
Model
Communication Layer

Test
Controller CPU I/F
& Coverage
Test Templates
Data Checker Memory Metrics
Custom Mem
Logic I/F Model

I/O I/F I/O I/F

PCI AGP
Model Model
Verification components * Automated Test Generation: The intelligent test
controller and data checker can handle user specified
The major components of this pre-silicon
directed tests with automated data checking and/or
validation environment are:
automatically generate pseudo-random sequences of
* Bus Functional Models: The intelligent transactions with automated data checking. Being a
BFMs provide a transaction-level API, and are dynamic test generator it can handle reactive test
designed to handle concurrency and parallelism. generation as well.
This makes it suitable to be used in an automated * Robust, High-quality Verification IP: The intelligent
test generation environment. It provides a models and monitors provide appropriate level of
consistent programmer’s view. It also offers a abstraction and controllability for effective system
high degree of controllability for the model level pre-silicon validation.
behavior to emulate a real device with real * Ease of Use: It is easy to use and intuitive without
operating characteristics through programmable
requiring the learning of a new language or
delay registers and configuration registers.
* Bus Protocol Monitors: The intelligent bus methodology.
protocol monitors provide dynamic protocol * Leveraging Design and Application Knowledge: It
checking and can be used in automated test leverages application-specific knowledge so that only
generation environments. They provide dynamic the pertinent application space is tested.
bus state information, which can be used to provide * Configurable and Extensible: It is easily
dynamic feedback to user tests or automated test configurable and extensible allowing pre-silicon
controllers. They are extensible to accommodate validation of multiple different configurations.
user-defined sequences. * Reusing the Test Environment: This architecture
* Test Controller and Data Checker: The
allows easy test and environment reuse. Replacing the
intelligent test controller utilizes BFMs and
appropriate models and monitors easily validated
transaction generators to create constraint-based
concurrent sequences of transactions at the subsequent generations of the DUT.
different interfaces of the DUT. The controller can
generate transactions pseudo-randomly, for a user Conclusion
specified sequence, or a mix of both. It can also
perform specific tasks or dynamically reload input Pre-silicon validation requires a well thought out and
constraints upon a certain event occurring during proven strategy and helps achieve shippable first-pass
simulation. In addition to test stimuli generation, silicon. The key features to consider about a
the controller provides for automated and dynamic system-level pre-silicon validation environment
data checking.
are concurrency, automated test generation and results
checking and, intelligent models and monitors
Salient Features
comprising proven, high-quality verification IP. An
Some of the major features and characteristics of this example application outlined the pre-silicon validation
environment are as follows: of a bridge device noting the use of BFMs, monitors
and an intelligent test controller and data checker.
* Concurrency: It handles multiple concurrent,
asynchronous and independent generation of
transaction sequences at the different interfaces of the
DUT.
* Results Checking: It has a built-in shadow memory
system to handle automatic results checking. The test
writer does not need to write code to do data checking.
It is done automatically and transparently.

Вам также может понравиться