|
Course duration: 3 days
This
three-day interactive course teaches you the basics of the
Verilog language, the tool environment, and the basic skills
you need to implement testbenches for complex ASIC, FPGA and
board-level designs. The course is rich in methodology hints
and tricks used by our verification experts who regularly
verify 10+ million gate systems. With the help and guidance of
our verification experts, you will learn:
| |
1. |
Verilog as a sequential language introduces the
syntax and structure of the language in a familiar
single-thread, sequential environment similar to C or
PERL. |
|
|
2. |
Verilog concurrency
constructs
provide the features that make hardware description
languages different from ordinary general purpose
programming languages: time and parallelism. |
| |
3. |
Verilog structural
constructs
provide another feature that makes hardware description
languages different from ordinary general purpose
programming languages: structural decomposition. |
| |
4. |
The basics of writing
testbenches
presents how functional verification fits into the
overall design process. The experienced RTL designer or
Verilog novice is then introduced to the concepts of
applying stimulus and observing response in a more
sophisticated fashion than using simple synchronous test
vectors. |
If you need
to verify a design with a high-degree of confidence, write a
test plan, or implement testbenches in Verilog, and have
little to no prior knowledge of Verilog, then this course is
ideal for you.
This is an
interactive course with numerous labs that cement the concepts
taught in the lecture portion of each session. In our public
courses, you may choose from Synopsys VCS or Model Technology
ModelSim as your simulator for labs. For private on-site
classes, you may use the design environment of your choice:
Cadence Incisive platform or NC-Verilog, Synopsys VCS, or
Model Technology ModelSim. SignalScan or Undertow can also be
used to view waveforms.
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: |
Verilog as a Sequential
Language |
| |
 |
The basic compilation unit: modules. Syntax rules for
user-defined identifiers and reserved words. Source file
requirements and compiling a Verilog model. |
| |
 |
Lab Session |
| |
 |
The always and initial blocks and sequential statements.
The $write statement. Terminating the simulation. |
| |
 |
Lab Session |
| |
 |
Declaring and using registers and memories. Values,
operators, and expressions. |
| |
 |
Lab Session |
| |
 |
Control-flow statements. |
| |
 |
Lab Session |
| |
 |
Functions and tasks. Calling functions and tasks. |
| |
 |
Lab Session |
| |
|
|
| |
Section 2: |
Verilog as a Parallel
Language |
| |
 |
Procedural blocks as the units of parallelism. The @, #,
and wait statements. The delayed blocking assignment. |
| |
 |
Lab session. |
| |
 |
Event-driven simulation and the simulation cycle. |
| |
 |
Lab Session |
| |
 |
Race conditions created by the blocking assignment. The
non-blocking assignment and the event queue. The
transport delay model. |
| |
 |
Lab Session |
| |
 |
The concept of drivers and wires. The continuous
assignment. Drive strengths. The inertial delay model.
Drivers on wires compared to assignments to registers. |
| |
 |
Lab Session |
| |
|
|
| |
Section 3: |
Verilog as a Structural
Language. |
| |
 |
The hierarchical decomposition process. Pins on modules.
Connecting and driving pins. Instantiating modules. |
| |
 |
Lab Session |
| |
 |
Parameters. Using parameters to specify
instance-specific timing values. Using parameters to
specify variable width designs. |
| |
 |
Lab Session |
| |
 |
The timescale directive. The impact of resolution and
precision. Predefined time-related tasks and functions. |
| |
 |
Lab Session |
| |
 |
Simulation and configuration management. |
| |
 |
Lab Session |
| |
|
|
| |
Section 4: |
Introduction to Testbenches |
| |
 |
Functional verification in the overall design process.
How does it differ from formal verification or hardware
testing? How do you make sure that you verify against
the design intent? |
| |
 |
File input and
output. How to report and display simulation results.
How to write programmable testbenches. |
| |
 |
Lab Session |
| |
 |
How
to apply stimulus using behavioral constructs. Reporting
results in a meaningful way. Avoiding having to look at
waveforms. |
| |
 |
Lab Session |
| |
 |
How to abstract operations using bus-functional models.
Embedded output validation in a self-checking
bus-functional model. |
| |
 |
Lab Session |
| |
 |
Bus-functional models for CPU buses and interfaces. How
to model an asynchronous protocol and return data
uninterpreted. |
| |
 |
Lab Session |
| |
 |
Adding observability inside a model and white-box
verification. Hierarchical references. |
| |
 |
Lab Session |
| |
 |
Full-timing gate-level simulation with SDF
back-annotation. |
| |
 |
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.
|

|