You are on page 1of 26

UVM METHODOLOGY TAKES

ANOTHER STEP FORWARD: A


Roman Wang @ AMD
UVM-1.2 PRIMER
Uwe Simm @ Cadence
Mike Bartley @ TVS

| 1PRESENTATION TITLE | 9/3/14 | Confidential

DVClub Bangalore 2014

Why UVM?

UVM is the Universal Verification Methodology

A methodology and a library that codifies the best practices for efficient and exhaustive
verification

Enables automation and reuse via coverage driven verification

Open, Interoperable, and Standard

Open to all via Apache open source license


Runs on any IEEE compliant simulator

Eco-system and tools

Simulation, Low power, mixed signals, accelerator, etc.


Books, trainings, and examples
Many trained engineers and great support forums
Available on http://www.accellera.org/community/uvm/
Advanced debug and features in the tools

| 2PRESENTATION TITLE | 9/3/14 | Confidential

AGENDA

UVM-1.2 : What has changed from


UVM-1.1?

Migration Challenges

Cadence Incisive UVM Solution

| 3PRESENTATION TITLE | 9/3/14 | Confidential

The UVM is keeping revolution!


The Story from UVM-1.0 to UVM-1.2

UVM-1.0

UVM-1.1

Registers

Bug fixes

TLM2

UVM_NO_DEPRECATED

Resources/Config_db

+UVM_RESOURCE/CONFIG_DB_TR
ACE

Run-time Phases

Pre/post_start() callback added for


sequences

UVM-1.1(a,b,c,d)

UVM-1.2

Bug fixes (Registers, Resources


and sequences)

Bug fixes

Renamed phase objections

Phase-aware Sequences

Messaging and transaction


recording
Lint cleanup
| 4PRESENTATION TITLE | 9/3/14 | Confidential

Message/debug infrastrucure

UVM-1.2 : Here we go!


In the release notes, you could find that
50% of items are API changes and 25%
break back compatibility
~90 Mantis items addressed (60 bugs/Clarifications,
30 enhancements)
UVM core is today ~64kLOC (29kLOC doc, 35K LOC code)
from UVM-1.1d (26kLOC doc, 30K LOC)

Git says: UVM-1.1d -> UVM-1.2 is 12kLOC added and 4kLOC


removed
~15% more and improved developer tests
What can you expect from UVM-1.2?

Bug fixes, performance fixes and cleanups

Enhancements

Few API and semantic changes

User guide cleanup and update

Largely backward compatible but maybe not 100% for your proje

IEEE usually could take 6 months to 1 year to release it

Note: The success of your verification project typically does NOT depend upon the
latest features. Please consult with your tool, VIP, and training supplier to see how
the new features best fit into your environment. Cadence is the best for your
choice.
| 5PRESENTATION TITLE | 9/3/14 | Confidential

Notable Changes in UVM-1.2

Reporting Infrastructure, Sequences


Registers, Objects, Phasing
Configure Database, Factory
Objections, UVM Event, Transaction
Recording
Misc Items: such as DAP,
uvm_coreservice, etc.

| 6PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Reporting

removed all
$display calls
(mostly for
debug output)
from base class
library (BCL)

| 7PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Sequences

| 8PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Registers

For example: DUT registers are


32bits wide and big endian access,
and the bus interface universal
verification component (UVC) is 16
bits wide.
Transaction 1 -- Lower address +
First word [31:16]
Transaction 2 -- High address +
Second word [15:0]

| 9PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Objects

|10PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Phasing

|11PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: uvm_config_db

|12PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Factory

|13PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Objections

|14PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Misc

Data access policy objects (dap) provide controlled access to


embedded objects (get-to-lock, set-before-get,..)
Visitor pattern infrastructure added (uvm_visitor,
uvm_structure_proxy, uvm_visitor_adapter)
uvm_coreservice_t common container for package scope variables
with set/get accessors
uvm_factory f = uvm_factory::get(); // same as

uvm_coreservice_t cs = uvm_coreservice_t::get();
uvm_factory f = cs.get_factory();

uvm_sequence_library now documented

uvm_severity_type (int) deprecated -> uvm_severity (enum)

|15PRESENTATION TITLE | 9/3/14 | Confidential

Notable changes: Misc

uvm_enum_wrapper converter

Convert from string via


uvm_enum_wrapper#(T)::from_name(STR,ref T o)
uvm_field_enum now scans string type resources in addition to
enum,int during auto config. e.g. one can set enum fields via string
literals from cmdline

Messages in DPI-C now routed back to UVM message facilities


Separation of classes into abstract API and _default_
class my_server extends uvm_default_report_server;
implementation for uvm_factory, uvm_report_server
Cleanup of package scope variables (factory; missing UVM_
prefix eg. UVM_SEQ_ARB_RANDOM )

|16PRESENTATION TITLE | 9/3/14 | Confidential

Migration
Challenges

|17PRESENTATION TITLE | 9/3/14 | Confidential

Migration Challenges

Largely backward compatible but maybe not 100% for your


projects
Some items still need to be manually modified after
conversion script.
Encrypted VIP could NOT be migrated by conversion script.
UVM-1.2 could NOT be mixed with other UVM version in one
verification environment.

|18PRESENTATION TITLE | 9/3/14 | Confidential

Migration from UVM-1.1 to UVM-1.2

Backward incompatible changes outlined in migration


document
release-notes.txt does have list of addressed mantis items
with marker for backward compatibility
Migration scripts provided
./bin/add_uvm_object_new.pl
it adds uvm_object ctor if missing

./bin/uvm11-to-uvm12.pl
It may help to do the simple changes around starting_phase,
set/get_config, reporting

bin/ovm2uvm.pl the old OVM -> UVM10 script

|19PRESENTATION TITLE | 9/3/14 | Confidential

Manual work for Migration

Manual migration. Not list in the conversion script

Manual migration after the conversion script

|20PRESENTATION TITLE | 9/3/14 | Confidential

Cadence Incisive UVM


Solution

|21PRESENTATION TITLE | 9/3/14 | Confidential

Cadence Incisive UVM Solution


Optimized to run UVM and differentiated by VIP and MDV

|22PRESENTATION TITLE | 9/3/14 | Confidential

UVM Debug in Simvision

|23PRESENTATION TITLE | 9/3/14 | Confidential

Summary

UVM-1.2 offers some new incremental features

UVM-1.2 is mostly backward compatible


Migration from UVM-1.2 is typically straight forward
and a migration script is provided

Cadence provides high-performance UVM solution


with

Interactive and post-processing debug


Specialized UVM debug facilities

|24PRESENTATION TITLE | 9/3/14 | Confidential

Thank You!
Questions?

Call-out or headline
Additional text or bullets

|25PRESENTATION TITLE | 9/3/14 | Confidential

Disclaimer & Attribution

The information presented in this document is for informational purposes only and may contain technical inaccuracies,
omissions and typographical errors.
The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not
limited to product and roadmap changes, component and motherboard version changes, new model and/or product
releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the
like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right
to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify
any person of such revisions or changes.
AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO
RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION.
AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER
CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
ATTRIBUTION
2014 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are
trademarks of Advanced Micro Devices, Inc. in the United States and/or other jurisdictions. Other names are for
informational purposes only and may be trademarks of their respective owners.

|26PRESENTATION TITLE | 9/3/14 | Confidential

You might also like