Advanced OVM (&UVM - Universal Verification Methodology)

The Advanced OVM (& UVM) module's goal is to improve your understanding of OVM so you can move beyond basic block-level testbenches. Building on the concepts discussed in the Basic OVM module, you will learn how to assemble multi-level environments with layered stimulus sequences to handle more complex verification challenges. This module is primarily aimed at existing OVM engineers or managers who recognize that they need to take the next step in function verification and assumes a working knowledge of constrained-random verification and object-oriented programming.

The target audience for this module is:

  • Walk - content is of general interest, particularly to managers, but also engineers.
  • Run - content is technical in nature, and of interest to engineers.

Recommended Prerequisite:

Advanced OVM (&UVM - Universal Verification Methodology) contains 5 sessions:
  • Understanding TLM (Transaction-Level Modeling)
  • This session introduces transaction-level modeling (TLM), which forms the foundation of the OVM. It also discusses some general techniques for creating scoreboards.

  • Understanding the Factory
  • This session discusses the OVM factory, which provides a means to modify the behavior of your testbench at runtime without touching the testbench code.

  • The Care and Feeding of Sequences
  • This session discusses the creation and management OVM sequences, which enable you to build reusable stimulus generators. It also covers the communication between the stimulus generator and the driver.

  • Layering Sequences
  • This session shows how to create reusable hierarchical sequences that manage the execution of other sequences to simplify your test. It also discusses how to create a consistent architecture to implement layered protocols.

  • Writing and Managing Tests
  • This session shows you how to construct a library of tests to target specific elements of your verification plan with minimal coding. It also discusses how to effectively manage component shutdown during a test and how to use the test to modify testbench functionality to exercise new behaviors.