Download Volume 6, Issue 2 - Verification Academy

Transcript
Coverage driven Verification
In coverage-driven verification an engineer can
keep track of which part of the protocol being verified
in the run. With coverage in place for a given protocol,
an engineer can easily tell what tests need to be
written to cover all the features of the device. Since
verification is directly related to the time and resources
available, most teams focus mainly on the newly added
blocks and interfaces in the design. A major source of
uncertainty is those bugs in previously verified blocks
stemming from the integration of new design blocks.
The use of coverage-driven verification is an antidote,
showing when you have eliminated enough risks/bugs
from all parts of your design.
PCIe OVM Verification environment
The testbench structure of PCIe MVC uses OVM components.
PCIe MVC agents are made that stimulate the link and generate the
transactions. Each PCIe MVC agent has a corresponding sequence
with a set of configurations. Use of OVM methodology, components
and templates helps to structure the primary and secondary test
sequences. PCIe MVC comes with the three types of pre-defined
sequences: basic, general and scenario-based.
Basic sequences are the building blocks for stimulus generation
and are customizable. General sequences are layer-specific, initiating
the various kinds of transactions on to the bus depending upon the
layer. Scenario-based sequences are specific to the device behavior
and depend on the transaction being initiated by the requester or
completed by the completer. These also include coverage-specific
sequences that initiate the legal and illegal transactions, and thus help
to achieve full coverage of the DUT.
The random requester sequences issues the random legal
tlp transaction traffic on the bus continuously per the provided
configuration. These sequences can also be configured for initiating
the illegal transaction. The completer sequences respond to the
incoming transactions with the legal and illegal packets. The lower
physical layer also provides sequences to generate LTSSM-directed
scenarios along with the power management and Gen1, Gen2 and
Gen3 (or vice-versa) data rate transition sequences. Physical layer
error sequences allow for injection of all types of 8b/10b errors.
36
XML plan capturing protocol
The compliance checklist provided by PCI-SIG is ported in an Excel
sheet as the test plan; from this it’s straightforward to generate the
XML test plan, which can be easily linked to the simulation coverage
results provided by Questa in the form of the Unified Coverage
Database (UCDB). This database is the repository for all coverage
information – including code coverage, cover directives, cover points
and assertion coverage – collected during the simulation by the
Questa infrastructure. Questa provides the ability to merge the XML
test plan with all coverage results in the form of UCDB, which is
accessible both via log file and GUI.
Compliance checklist items
Mapping of English protocol definitions to a mechanism for
verification can be a major challenge. It’s easy to underestimate the
workload and get confused between checking a single scenario and
proving that a specific feature works in all scenarios.
Consider an example: a certain PCIe compliance checklist item
says that permitted Fmt[1:0] and Type[4:0] field values are shown in
the spec table. All other encodings are reserved. Fmt and Type fields
determine the type of transaction layer packet (TLP) and associated
decoding. Without a metric or indicator that reports the types of TLPs
generated and transmitted, the information from the DUT is almost
meaningless. Further complicating matters is the fact that there are
128 possible field values, while only 25 are valid.