|
Course duration: 3 days
This
three-day interactive course teaches you how to overcome the
"white page syndrome" – Now that you know Synopsys
VERA, what’s next? In this class, you
will go through the step-by-step process required to plan and
implement a sophisticated, self-checking verification
environment for first-time success.
The course is rich in
methodology hints and tricks used by our verification experts
who regularly verify 10+ million gate systems – experts with
knowledge that only comes from being the independent
voice in the EDA verification industry. With the help and
guidance of our experienced VERA verification consultants,
you will learn:
| |
1. |
Jump Start Vera review refreshes your mind about key
concepts in using Vera to verify your designs. This
review reminds you about important concepts, reinterates
helpful tips and methodology you may have overlooked,
and ensures everyone is familiar with the elements that
are used throughout the course. |
|
|
2. |
Data modeling
helps you understand how to model data objects. Object
oriented thinking is presented in the verification
context and example data structures are discussed.
Implementation techniques for properly translated
high-level data types to physical levels are
demonstrated. |
| |
3. |
Verifcation strategy
first demonstrates how random, constrained testing can
be more productive than a traditional, directed testing
approach. Next, the role of functional coverage as a
constrained-random approach is explored. Lastly, the
details of how to implement the appropriate
constrainable, random environment structure for the
verification strategy you have outlined. |
| |
4. |
Bus functional models
are the cornerstone of a proper high-level verification
process. When properly designed, they can be highly
reusable and configurable. |
| |
5. |
Implementing the
environment
identifies that a constrained-random approach requires a
different implementation then a directed approach. A
process for defining a suitable plan is presented. |
| |
6. |
Random generation
involves more then calling a random number generator
function. Random generation must be properly designed to
offer the a level of controllability over all
significant parameters, while minimizing the
modifications necessary to add or tune constraints.
Random generation will also be used to inject errors or
protocol violations in bus functional models. |
| |
7. |
Functional coverage
answers the question of how much work is left? This
section explores in details what needs to be verified
and when to do it. |
| |
8. |
Synopsys RVM overview thoroughly explains the
Synopsys-recommended Reference Verification
Methodology (RVM) and the benefits of using
standardized data and transaction models, message
service, transactor models and verification environment
simulation flow. |
| |
9. |
Protocol-based
verification
self-checking strategy characteristics are identified. A
scoreboarding strategy using Synopsys RVM is examined in-depth. |
| |
10. |
Simulation management
(optional) explains how the simulations are carried out.
Configuration management, directory structure and
scripts are discussed The merits of using tracing and
logging are explained. |
If you need
to verify a design with a high-degree of confidence, implement
testbenches creating reusable verification components,
minimize code development effort, increase productivity and
have little or some prior knowledge of the fundamentals of
Synopsys VERA, then this course is for you.
This is an
interactive course with numerous labs that cement the concepts
taught in the lecture portion of each session. Students will
use the latest version of Synopsys VERA and VCS.
You can
attend a regularly scheduled public course, or schedule your
own private session at your facility. To find out more,
contact us toll free now at ,
or contact us by
Clicking Here.
This course
is structured as multiple sessions taught over three days.
Interactive labs and group exercises are distributed
throughout the course. For more information about course
content and structure, or if you're interested in
customization, please call us toll free at ,
or contact us by
Clicking Here.
| |
Section 1: |
Jump Start Vera Language Refresher |
| |
 |
Review of key Vera constructs. |
| |
 |
Working with the
verification "big picture" in mind. |
| |
 |
Verification strategy flow. |
| |
 |
Lab Session |
| |
|
|
| |
Section 2: |
Data Modeling |
| |
 |
Example
data structures, including packets; instructions,
transactions; BFMs; and configuration descriptors. |
| |
 |
Constructors, including
layering techniques and initializing data. |
| |
 |
Physical vs. virtual fields |
| |
 |
Planning inheritance, including virtual classes and
methods |
| |
 |
Customizing packing/unpacking |
| |
 |
How to map data structures into another; example of
mapping TCP/IP packets onto a MAC frame; how to add
information to a RAW payload. |
| |
 |
Handling *.vrh files,
including old vs. new files |
| |
 |
The list macro, including
usage; the list macro vs. associated arrays |
| |
 |
Lab Session |
| |
|
|
| |
Section 3: |
Verification Strategy |
| |
 |
Random + constraints + item coverage; cross coverage and
adding constraints |
| |
 |
Strategy for system vs.
ASIC vs. block verification. |
| |
 |
Handling interfaces |
| |
 |
Strategies for error
detection. |
| |
 |
Structuring the
environment. |
| |
 |
Handling termination
conditions. |
| |
 |
Lab Session |
| |
|
|
| |
Section 4: |
Bus-Functional Models |
| |
 |
Usage model issues, including:
procedural interfaces; queues and TCMs; the difference
between TCMs and non-TCMs; how to start and reset
processes. |
| |
 |
Using virtual ports as an
integration mechanism; separating timing from function;
creating delay models; handling asynchronous interfaces;
pass bind in constructor. |
| |
 |
User extension mechanisms, including derivatives and
callback class |
| |
 |
Handling *.vrh files, old vs. new files. |
| |
 |
Lab Session |
| |
|
|
| |
Section 5: |
Implementing the Environment |
| |
 |
The implementation process |
| |
 |
Data, protocol, and whitebox
checking. |
| |
 |
Functional coverage points. |
| |
 |
Directed testcases. |
| |
 |
Design for verification issues |
| |
 |
Lab Session |
| |
|
|
| |
Section 6: |
Random Generation Strategy |
| |
 |
Constraining discrete data items |
| |
 |
Constraining discrete channels/instances. |
| |
 |
Dynamic constraint controls |
| |
 |
Stream generation, including
strategies for generating valid sequences and
random-length sequences |
| |
 |
Constraint management, including using randomize() with;
using "weights" field; using dynamic control; using
external definitions. |
| |
 |
Lab Session |
| |
 |
Strategies for error
injection. |
| |
 |
Writing and managing temporal
expressions |
| |
 |
Lab Session |
| |
 |
Seed management, including
using local random sources |
| |
 |
How to reproduce results
(repeatability issues) |
| |
|
|
| |
Section 7: |
Functional Coverage |
| |
 |
When vs. what; defining when
and handling race conditions. Defining what on a
per-instance basis, and for all instances. |
| |
 |
Defining coverage goals. |
| |
 |
Generating coverage reports,
interpretations, and the limitations on cross-coverage. |
| |
 |
Managing coverage control,
including turning coverage on and off, incremental
coverage, and handling name uniqueness (per seed/test). |
| |
 |
Lab Session |
| |
|
|
|
|
Section 8: |
Synopsys Reference Verification
Methodology (RVM) |
| |
 |
Coding and Compilation,
including RVM declarations, implementations and
directives. Specific coding guidelines for code
reuse |
| |
 |
Testbench architectures
including coverage-driven verification, layered models
and managing different layers |
| |
 |
Using the Common Message
Service, rvm_log, rvm_log_msg |
| |
 |
Data and transaction model
recommendations, including properties, data members,
methods, constraints, and the test configuration
descriptor; rvm_data, rvm_channel,
rvm_broadcast |
| |
 |
Transactors and recommended
models including completion and response models,
in-order atomic execution model. Handling
out-of-order execution, concurrent, split or recurring
transaction execution. rvm_xactor |
| |
 |
Lab Session |
| |
 |
Managing stimulus generation
and events, and using various generator types including
atomic, scenario, directed and embedded generators.
rvm_scheduler, rvm_notify, rvm_notify_event,
rvm_scenario_gen, rvm_atomic_gen |
| |
 |
Managing the verification
environment simulation flow, handling compilation
dependencies. rvm_env, rvm_watchdog |
| |
 |
Managing testcases, including
concatenating testcases, adding directed stimulus, and
injecting errors. |
| |
 |
Lab Session |
| |
|
|
| |
Section 9: |
Self-Checking of
Protocol-based Systems |
| |
 |
Characteristics of protocol-based designs. |
| |
 |
Creating scoreboards for protocol-based systems |
| |
 |
Checking strategies for
protocol-based systems |
| |
 |
Lab Session |
| |
|
|
| |
Section 10: |
Simulation Management
(optional) |
| |
 |
Managing test environment configurations, including
Makefiles, .vrl files, and .proj files. |
| |
 |
Tracing and logging, including
post-run checking and issues on name uniqueness (per
seed/test) |
| |
 |
Lab Session |
| |
|
|
There is no substitute for a private course
taught on-site at your facility, particularly when you have 6 or
more engineers to train. Simply put, for large groups it’s always
less expensive for us to come to you than the other way around. And
if you want a custom course, we can arrange it. Do you need to
squeeze a four day course into three? No problem. We know how to do
it without compromise. And if you need a course on short notice, we
can be there sooner than you think. For more information, contact us
at:
Verifica – the right kind of
verification training, tuned to your needs. Contact us now.
|

|