Global training solutions for engineers creating the world's electronics

OVM Adopter Class

Standard Level OVM Training - 3 Tage

view dates and locations
In English

Wie Viel SystemVerilog training Brauchen Sie? Bitte sehen Sie das Video an!

Open Verification Methodology (OVM) ist eine nicht proprietäre Methodik zur funktionalen Verifikation auf Basis von SystemVerilog. Quellcode und Dokumentation sind im Rahmen einer Open-Source-Apache-Lizenz kostenlos verfügbar.

 

OVM bietet ein vollständiges Framework zur Erstellung anspruchsvoller Umgebungen für die funktionale Verifikation in SystemVerilog und unterstützt die Entwicklung und Bereitstellung wiederverwendbarer Verifikationskomponenten. Zu den weiteren Vorteilen von OVM zählen die umfassende Unterstützung für die Generierung von Constrained-Random-Stimuli, einschließlich strukturierter Sequenzen, und die Transaction-Level Modelling. OVM-Testbenches unterstützen zudem funktionales Coverage und Assertions. OVM nutzt die objektorientierten (oder „klassenbasierten") Programmierfunktionen von SystemVerilog. Dank der offenen Struktur, der umfangreichen Automatisierung und der Standardschnittstellen auf Transaktionsebene ist OVM ideal zur Erstellung von Umgebungen für die funktionale Verifikation geeignet - angefangen von einfachen Tests auf Blockebene bis hin zu hoch komplexen Coverage-gestützten Testbenches.

Voraussetzung für die Teilnahme an diesem Kurs sind gute Grundkenntnisse in SystemVerilog. Die Teilnehmer werden umfassend auf den Einsatz von SystemVerilog-basierten Verifikationsprojekten in der Praxis vorbereitet. Besondere Schwerpunkte bilden dabei die Grundsätze der Verifikation und die intensive praktische Anwendung von OVM mit handelsüblichen Tools wie Mentor Graphics QuestaTMSim und Cadence Incisive® Enterprise Simulator.

Die Workshops nehmen ca. 50% der Unterrichtszeit ein und basieren auf sorgfältig ausgearbeiteten Übungen, die die Kursteilnehmer in ihren neu erworbenen Kenntnissen herausfordern und das Erlernte untermauern. Im Rahmen der praxisorientierten Workshops erstellen die Kursteilnehmer eine vollständige OVM-Verifikationsumgebung für ein kleines Mustersystem.

Zielgruppe

  • Verifikationsentwickler, die mit OVM 2.0 komplexe SystemVerilog-Verifikationsumgebungen bereitstellen möchten
  • Designentwickler, die bei der Entwicklung von Testbenches mit OVM 2.0 umfassenden Gebrauch von den Verifikationsfunktionen aus SystemVerilog machen möchten

 

Kursinhalte

  • Grundsätze der effektiven funktionalen Verifikation mit SystemVerilog
  • Standardstruktur von OVM-Komponenten und -Umgebungen
  • Einsatz des OVM-Kits (Klassen, Makros, Dokumentation und Beispiele) bei der Erstellung eigener Verifikationsumgebungen
  • Nutzung der OVM-Funktionen bei der Konfiguration, Stimulusgenerierung, Berichterstellung und Diagnose
  • Erstellung vollständiger, leistungsstarker, wiederverwendbarer klassenbasierter Verifikationskomponenten und -umgebungen mit OVM

 

Voraussetzungen

Für Entwickler ohne Vorkenntnisse oder Erfahrungen in SystemVerilog stellt der Doulos Kurs Comprehensive SystemVerilog (oder ein gleichwertiges Training) eine wesentliche Voraussetzung dar. Bei Inhouse-Trainings kann das Grundlagentraining Modular SystemVerilog auf die speziellen Anforderungen Ihres Teams zugeschnitten werden. Zur Erörterung Ihrer spezifischen Anforderungen und geeigneter Optionen wenden Sie sich bitte direkt an Doulos.

Trainingsunterlagen

Die Doulos Trainingsunterlagen sind allgemein für ihren umfassenden Informationsgehalt und die benutzerfreundliche Präsentation bekannt. In ihrem Aufbau, Inhalt und ihrer Themenbehandlung sind sie einzigartig im HDL-Trainingsbereich, was sie zu begehrten Nachschlagewerken gemacht hat. Die Kursunterlagen umfassen:

  • Vollständig indizierte Kursskripte, die ein komplettes Referenzhandbuch darstellen
  • Workshop-Dateien, einschließlich aller SystemVerilog/OVM-Quelldateien und Skripts
  • Doulos OVM Golden Reference Guide für Sprache, Syntax, Semantik und Tipps

 

Struktur und Inhalt

Introduction to OVM

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

Getting Started with OVM

Test bench structure • ovm_env and ovm_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 OVM printer • reports and actions • configuring the OVM report handler • ovm_analysis_port / export • connecting analysis ports and exports • ovm_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 ovm_scoreboard class • OVM 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 OVM class fields • emulating ROM with instruction driver • creating sequences manually • controlling the constraint solver • serial I/O example • overriding generated sequence items • Lab - constraints and random stimulus

Configuring the Testbench

Using component names to represent hierarchy • locating and identifying component instances by name • using the OVM 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 • OVM objection class • 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 • ovm_agent • sequence library and default OVM sequences • communication between sequencer and driver • connecting and configuring agent • Lab - building a simple agent with sequencer

Sequences

Sequencer and sequences - the ovm_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

Supplementary Subjects

More on Sequences

Using sequence callback methods • getting response from sequence driver • grabbing control of sequences • concurrent sequence control • multi-layer sequences using inheritance • multi-layer sequences and sequencers

Callbacks

Callback uses • OVM Callback class • Inserting callbacks into a component • Defining callback functions • Registering callback objects with components

Classes - OOP Primer/Review

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

Verwandte Trainings

  • Comprehensive SystemVerilog
  • Modular SystemVerilog (nur als Inhouse-Training verfügbar)

 

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

Looking for team-based training, or other locations?
Complete an on-line form and a Doulos representative will get back to you »