logo Amblot
Instructeur

Dates

Inscrivez-vous

Contactez-nous

Conception FPGA/ASIC

Conception Système

Vérification FPGA et ASIC

Environnement de Conception

 

Manuels Doulos


UVM
Adopter Class
4 days






Télécharger le descriptif au format pdf

Overview

The Universal Verification Methodology (UVM) is a standard functional verification methodology for SystemVerilog, controlled by Accellera, and endorsed and supported by all major SystemVerilog simulator vendors. The source code and documentation are freely available under an open-source Apache license. UVM offers a complete framework for the creation of sophisticated functional verification environments in SystemVerilog, and encourages the development and deployment of re-usable verification components.

UVM has comprehensive support for constrained random stimulus generation, including structured sequence generation, and for transaction-level modelling. UVM testbenches also support functional coverage collection and assertions. UVM exploits the object-oriented programming (or "class-based") features of SystemVerilog. The open structure, extensive automation, and standard transaction-level interfaces of UVM make it suitable for building functional verification environments ranging from simple block-level tests to the most complex coverage-driven testbenches.

Delegates for this course must start with a working knowledge of SystemVerilog. The course takes delegates through to full SystemVerilog verification project readiness by focussing on the verification principles and the in-depth practical application of UVM using commercial verification tools such as Cadence Incisive® Enterprise Simulator, Mentor Graphics Questa™Sim, and Synopsys® VCS®.

Workshops comprise approximately 50% of class time, and are based around carefully designed exercises to reinforce and challenge the extent of learning. During the hands-on workshops, delegates will build a complete UVM verification environment for a small example system.

Who should attend?

• Verification engineers who wish to deploy complex SystemVerilog verification environments using UVM 1.0
• Design engineers who wish to make full use of SystemVerilog's verification capabilities for test bench development using UVM 1.0

What will you learn?

• The principles of effective functional verification using SystemVerilog
• The standard structure of UVM components and environments
• How to use the UVM kit (classes, macros, documentation and examples) in constructing your own verification environments
• Making good use of UVM features for configuration, stimulus generation, reporting and diagnostics
• How to build complete, powerful, reusable class-based UVM verification components and environments

Pre-requisites

A basic working knowledge of SystemVerilog is essential. For engineers with no SystemVerilog knowledge or experience the Doulos Comprehensive SystemVerilog course or equivalent is an essential precursor.
For onsite courses, Modular SystemVerilog precursor training can be tailored to your team's profile.
Contact Amblot to discuss options that suit your needs.

Training materials

Doulos Course materials are renowned for being the most comprehensive and user friendly available. Their style, content and coverage is unique in the HDL training world, and has made them sought after resources in their own right. Fees include:

• Fully indexed course notes creating a complete reference manual
• Lab files comprising the complete SystemVerilog/UVM source files and scripts

Structure and Content

Introduction to UVM

Course structure • motivation • principles of coverage-driven verification • benefits • transaction level modelling • the UVM kit • test bench organisation • UVM class summary • overview of key UVM features

Getting Started with UVM

Test bench structure • uvm_env and uvm_test • field automation macros • basic reporting • transaction classes • generating a randomized sequence • driver class • linking to the DUT • virtual interfaces • running a test • Lab - a simple test bench

Monitors and Reporting

Creating a monitor • the UVM printer • reports and actions • configuring the UVM report handler • uvm_analysis_port / export • connecting analysis ports and exports • uvm_subscriber • tlm_analysis_fifo • Lab - Monitor with analysis ports

Checkers and Scoreboards

The role of assertions • structural versus protocol assertions • reference models • monitor operation • sampling signal values • scoreboards and the uvm_scoreboard class • UVM built-in comparators • specifying match rules • redirecting reports • log files • Lab - implementing a checker

Functional Coverage

Separating data gathering from coverage analysis • property-based coverage • property variables and actions • covergroup and coverpoint • cross coverage • binning • analysis subscriber • coverage on internal states of DUT • Lab - creating a coverage collector

Random Stimulus Generation

Constrained random stimulus • packing UVM class fields • emulating ROM with instruction driver • creating sequences manually • controlling the constraint solver • serial I/O example • overriding generated sequence items • ending simulation with the objection mechanism • Lab - constraints and random stimulus

Configuring the Testbench

Using component names to represent hierarchy • locating and identifying component instances by name • using the UVM factory • registering fields with factory • overriding factory defaults • using the factory with parameterized components • setting and getting configuration details • virtual interface wrappers • configuring multiple tests • configuration with command-line arguments • stopping a test • Lab - testbench configuration and overriding the factory

Agent Architecture

"Agent" architecture and its relationship with other verification methodologies • class monitors and drivers • standard agent architecture • uvm_agent • sequence library and default UVM sequences • communication between sequencer and driver • connecting and configuring agent • Lab - building a simple agent with sequencer

Sequences

Sequencer and sequences - the uvm_sequence class • creating custom sequences • sequence macros and the body task • sequence phases • configuring sequences • complex sequences • introduction to virtual sequences virtual sequencers • Lab - creating and extending user-defined sequences

Hierarchical Testbench Components

TLM interfaces and ports • implementing an export • using tlm_fifo analysis ports • coverage-based test controllers • error injection • child process control

More on Sequences

Using sequence callbacks for sequence interaction • getting response from sequence driver • grabbing control of sequences • concurrent sequence control • multi-layer sequences using inheritance • multi-layer virtual sequences

Callbacks

Using callbacks as an alternative to the factory to customize behavior

Supplementary Subjects

Classes - OOP Primer/Review

Object-Oriented Programming • class • object • method • constructor • extends • inheritance • overriding • virtual method • up-cast • parameterised class


Doulos acknowledges all trademarks and registered trademarks as the property of their respective owners.

Top of Page

Pour tout renseignement, contactez-nous :
Amblot SARL
166 boulevard du Montparnasse, 75014 Paris
Tél : +33(0)1 42 79 57 48 Fax :+33(0)1 42 79 57 47
email : info@amblot.com

Pour recevoir nos offres de formations,
ainsi que les nouveautés :

Email