Home > Community > Blogs > Functional Verification > ovm 2 0 short technical review
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the Functional Verification blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

OVM 2.0 -- Short Technical Review

Comments(1)Filed under: Verification methodology , OVM, CDV, SystemVerilog, System Verification, OVM 2.0By now you may have seen the official announcement of the OVM 2.0 release. So what does this update do for you as a verification engineer? While all of this information is in the OVM 2.0 User Guide, here are the highlights. You can also get more information from the Cadence OVM training class (Course 82153 [for verification engineers] or 82146 [for designers]), a Cadence OVM workshop, and from an OVM 2.0 webinar we will announce shortly.

Backward Compatibility Means You Can Move Forward with Confidence

OVM 2.0, like the previous versions, offers backward compatibility. Mentor and Cadence have built this notion into the OVM from the start to make it easy for engineers to move to the new version with confidence. Cadence validates this backward compatibility and we'll blog more on that in the future.

Unified Sequence Mechanism

Possibly the most significant advance in the OVM 2.0 is the unified sequence mechanism. Some of you may have seen that previous versions of the OVM had a scenario mechanism which appealed to users accustomed to directed test and that option was also part of the sequence mechanism. In the OVM 2.0, the scenarios have been deprecated and all of the functionality implemented in the sequences. This includes new arbitration modes, sequence library management, and virtual sequence enhancements. The new arbitration modes add five new modes to the single FIFO policy available in the OVM 1.1 providing greater control in situations where more than one sequence attempts to move to the driver at the same time. The sequence library support in the OVM 2.0 enables the test writer to add or remove specific sequences to override the library default. Finally, the virtual sequencer now has a simplified use model in the OVM 2.0.

OVM User Guide

The user guide has been one the most requested items in the OVM World forums. This guide was jointly edited by Cadence and Mentor leveraging the user guide we delivered with Incisive and Mentor's AVM cookbook. The user guide details three usage models: developing OVM verification components (OVCs), using OVCs, and references/advanced topics. It includes details on assembling tests and testbenches, transaction level modeling, and advanced sequence control. The user guide provides detailed descriptions of the capabilities using the Xbus example.

Improved Debugging and Expanded Use of Parameterized Classes

The OVM 2.0 expands the use of parameterized classes to drivers, sequencers, and sequences. The advantage to you is better compile time checking which makes it easier to debug your environment. In addition, the expanded parameterized class usage reduces the run-time casting simplifying your coding. We have carried the parameterization into the factory as well which means you can now use proxy classes instead of strings to define types for the factory. This reduces bugs that come from misspelling the type names which should also simplify debugging. For users of the OVM 1.1, the string-based API is still there as part of our backward compatibility.

Driver/Sequencer Communication Enhancements

In addition to unifying the sequence mechanism, the OVM 2.0 adds additional debug, TLM support, and channel modes to the driver/sequencer communications. For debug, the OVM 2.0 provides a driver API and embeds sequence and transaction IDs in data item randomized by the sequencers. This simplifies out-of-order and parallel sequence debug because the IDs can be printed and viewed in your favorite waveform debug tool (like Incisive SimVision). The OVM 2.0 also completes the TLM support inherited from AVM and URM to with extra modularity and support for pipelining. It also now supports push mode in addition to pull mode in the TLM channel. In pull mode the driver pulls items from the sequencer a it senses an item request from the bus while in push mode the sequencer randomizes items and pushes them to the driver to be executed. The pull mode supports advanced techniques for reactive generation and sequence layering, but the push mode is often more intuitive for engineers more accustom to directed test. With the OVM 2.0, both modes are now supported.


The OVM 2.0 is a major advanced for verification engineers and is 100% backward compatible to make it easy to adopt. It is available for download right now at
http://www.ovmworld.org. If you have any questions or comments feel free to post them here, in the OVMWorld forums, or contact Cadence Support.


By ramakrishnareddy on December 29, 2008

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.