Syllabus Advanced Systemverilog Training
Syllabus Advanced Systemverilog Training
Syllabus Advanced Systemverilog Training
Course Overview
Sunburst Design - Advanced SystemVerilog for Design & Verification is a 4-day fast-paced
intensive course that focuses on new and advanced design and verification features of
SystemVerilog.
*NEW* - Enhanced Verification Flow - Based on seven years of teaching SystemVerilog,
Sunburst Design has discovered that it is best to teach object-oriented class-based verification
concepts early and often. Day-1 - includes Classes & Randomization (with labs) / Day-2 includes
Constrained Random Variables in classes, Functional Coverage, Virtual Classes & Methods
(with labs) / Day-3 includes Virtual Interfaces (with labs) and optional OVM fundamentals (with
optional labs). When properly taught, these topics are not difficult but because they are new, it
takes time and practice doing multiple labs for the concepts to be mastered.
This SystemVerilog training was developed and is frequently updated by the renowned
SystemVerilog guru and IEEE SystemVerilog committee member, Cliff Cummings, who has
presented at numerous SystemVerilog seminars and training classes world wide, including the
2003-2004 SystemVerilog NOW! Seminars and 2004-2005 ModelSim SystemVerilog
Verification Shindigs.
The 1000+ page binder and 190+ page lab guide for this 4-day course covers all of the important
SystemVerilog coding styles for design and verification. These materials are constantly being
updated with the latest clarifications and corrections passed by the IEEE SystemVerilog
committee, of which Cliff is an active participant. Numerous proven usage guidelines are taught
and explained.
This fast-paced course teaches the IEEE 1800 advanced SystemVerilog capabilities for both
design and verification tasks. Efficient and proven coding styles are combined with frequent
exercises and insightful labs to demonstrate the power of the new SystemVerilog features. You
will discover that SystemVerilog capabilities are fully backward compatible with Verilog-2001
designs.
The course content can be modified to meet the customized needs of individual design and/or
verification teams.
Target Audience
Sunburst Design - Advanced SystemVerilog for Design & Verification is intended for verification
engineers who require in-depth knowledge of the IEEE SystemVerilog standards with an
emphasis on the new Hardware Verification Language (HVL) capabilities.
Sunburst Design - Advanced SystemVerilog for Design & Verification is intended for all design
& verification engineers who require in-depth knowledge on the IEEE SystemVerilog-2005
standard. This course has been updated to include optional OVM fundamentals (with labs) for
verification engineers that plan to use OVM.
Prerequisites (mandatory)
This is a very advanced SystemVerilog class that assumes engineers already have a good
working knowledge of the Verilog language.
This course assumes that students have a practical working knowledge of Verilog HDL or have
completed Verilog HDL training. Engineers with VHDL synthesis experience and some Verilog
exposure will do well in this class. Engineers with no prior HDL training or experience will
struggle in this class. Engineers with weak Verilog knowledge or experience should consider
adding the 1-day, Sunburst Design - Accelerated Introduction to Verilog-2001 & Best Known
Coding Practices course to fully prepare for advanced SystemVerilog training.
o
o
Sunburst Design - Comprehensive Verilog-2001 Design & Best Coding Practices - 4 days
o Sunburst Design - Introduction to Verilog-2001 & Best Coding Practices - 2 days
o Sunburst Design - Advanced Verilog-2001 Knowledge & Design Practices - 2 days
o Sunburst Design - Accelerated Introduction to Verilog-2001 & Best Known Coding
Practices - 1 day
Course Syllabus
Day One
SystemVerilog Enhancements & Methodology Overview
- Includes a quick review of SystemVerilog resources available to design & verification
engineers.
Day Two
Nonblocking Assignments, Race Conditions & SystemVerilog Event Scheduling
- SystemVerilog is fully backward compatible with Verilog-2001 (it is also fully race backward
compatible!) This section describes in detail how the new SystemVerilog event scheduling works
and how it will reduce race conditions between RTL designs and verification suites.
Interfaces
- Interfaces are a powerful new form of abstraction and this section details how they work for
design and verification. This section also discusses when and when not to use interfaces. Virtual
interfaces are described after the introduction of virtual classes and virtual methods on day three.
Constrained Random Variables, Functional Coverage and Virtual Classes, Methods and
Interfaces
- Random variables & constrained random testing are important HVL enhancements to
SystemVerilog to assist the verification task. Functional coverage enables engineers to verify
what has already been tested and to focus additional stimulus generation to meet untested
functionality.
Randomization constraints
Simple constraints
Multi-Statement constraints
Important constraint rules
Constraint distribution & set membership - dist & inside
Constraint distribution operators
External constraints
Covergroups
Coverpoints
Coverpoint bins & labels
Cross coverage
Covergroup options
Coverage capabilities
Introduction to Virtual - three types of "virtual"
Virtual/abstract classes
Legal & illegal virtual class usage
Virtual class methods & restrictions
Virtual Methods and rules
Virtual -vs- non-virtual method override rules
Why use virtual methods
Polymorphism using virtual methods
Pure virtual methods (SystemVerilog-2009 update - used by OVM)
Pure constraints (SystemVerilog-2009 update)
Passing type parameters
Virtual interfaces
Three testbench requirements to communicate through virtual interfaces
Connecting a design to a class-based verification suite using virtual interfaces
LABS: constrained random stimulus and reports
OVM resources
Introduction to OVM core base classes, include files and macros
OVM testbench structure (quasi-static class objects)
OVM transactions (passing OVM data & methods - dynamic class objects)
Ports & exports
Puts & gets
Transaction-level connection: (1) Control flow, (2) Data flow, (3) Transaction data type
Put configurations
Get configurations
Transport configurations
OVM Drivers
OVM Checkers
OVM Monitors
OVM Agents
OVM Standard Phases
Additional OVM topics
LAB: first OVM testbench
LAB: OVM testbench with virtual interface
LAB: OVM testbench with agents
Day Three
Program Blocks & Clocking & Hardware Verification Language
- SystemVerilog's new built-in Hardware Verification Language (HVL) capabilities are detailed
and how program and clocking blocks facilitate testing is explored.
Data organization
Structs & assignment patterns
Packed & unpacked arrays
Array indexing
Structs & packed structs
Unions & packed unions
Dynamic arrays & methods
foreach loop
Associative arrays & methods
Queues & concatenation operations
Queue methods
Semaphores & methods
Interesting semaphore key usage
Mail boxes & methods
Bounded & unbounded mailboxes
DPI layers
function import
function export
task export
Using SystemVerilog simulation timing in a C model
DPI -vs- PLI example
No PLI required
How to compile and simulate C-code with SystemVerilog designs
SystemVerilog & SystemC
LAB: SystemVerilog using C-code functions
Day Four - (Not lectured in the 3-Day SystemVerilog for Verification Class)
Logic Specific Processes, Unique & Priority - full_case & parallel_case
- The new always_type blocks show design intent and help ensure construction of proper
hardware designs. The always_type blocks are discussed in detail in this section. This section
also details how unique and priority are new SystemVerilog replacements for the dangerous
"Evil Twins," full_case parallel_case.
Multi-clock Clock Domain Crossing (CDC) & FIFO Design Techniques using
SystemVerilog
- Very advanced design techniques from Cliff's award-winning presentations on the efficient
implementation of multi-clock CDC & FIFO designs. These materials are not specific to
SystemVerilog but solutions are shown using SystemVerilog syntax (advanced techniques that
all design engineers should know - the stuff you did not learn in college).
Metastability
Multi-clock Clock Domain Crossing (CDC) design & synthesis strategies
Multi-signal CDC techniques
MTBF (Mean Time Before Failure)
Syncing before passing multiple CDC signals
Multiple CDC signals - consolidation
Multiple CDC signals - synchronization
Multiple CDC signals - Multi-Cycle Path (MCP) Formulation
Synchronizing counters
Gray codes
Gray code counters
CDC Design partitioning
CDC simulation issues
CDC gate-level simulation X-avoidance techniques
Multi-clock FIFO design techniques from Cliff's award-winning presentations
Classroom Details
Training is generally conducted at your facilities. For maximum effectiveness, we recommend
having one workstation or PC for every two students, with your preferred SystemVerilog
simulator licenses (we often can help provide the simulator and temporary training licenses).