{"id":13600,"date":"2019-10-31T16:17:11","date_gmt":"2019-10-31T23:17:11","guid":{"rendered":"https:\/\/blogs.mentor.com\/verificationhorizons\/?p=13600"},"modified":"2026-03-27T08:40:12","modified_gmt":"2026-03-27T12:40:12","slug":"the-uvm-is-it-safe","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2019\/10\/31\/the-uvm-is-it-safe\/","title":{"rendered":"The UVM : Is it Safe?"},"content":{"rendered":"<h4>Is It Safe?<\/h4>\n<p>It depends. What is the context? Economy? Geo-political situation? Teenage drivers? UVM?<\/p>\n<p>I don&#8217;t know.<\/p>\n<p>Do you feel safe when you cross the street?<\/p>\n<p>Do you feel safe at Starbucks? In your own house?<\/p>\n<p>Each person has a different comfort level.<\/p>\n<p>That&#8217;s all fine. Real world stuff. But what about how you pays the bills? What about bringing home the bacon with the UVM? Is the UVM safe?<\/p>\n<p>I don&#8217;t even know what that really means.<\/p>\n<h4>Safety In The UVM?<\/h4>\n<p>The UVM has been around for years, and has multiple versions with various features and bugs. Who knows if it is safe? I guess if you use it for awhile and it keeps chugging along, it is safe. But what happens with a new version? Should you upgrade? Is it safe?<\/p>\n<p>What about the new bugs that come with any code base? 1-5 bugs per 100 lines of code. Or something like that. Each UVM release has lots of new lines of code, and with it, lots of new bugs. But maybe those bugs are harmless or in code I won&#8217;t use. What should I do?<\/p>\n<p>What about some bugs that haven&#8217;t been fixed in any UVM from the planet Earth.<\/p>\n<h4>Random Stability<\/h4>\n<p>The UVM is *still* randomly unstable. There is an <strong>&#8220;unprotected new()&#8221;<\/strong> in set_severity_id_action().<\/p>\n<p><a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2019\/10\/Random-Instability.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13961\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2019\/10\/Random-Instability.jpg\" alt=\"\" width=\"449\" height=\"132\" \/><\/a><\/p>\n<p>Oops. There&#8217;s a new() there! Grabbing a random number off the list&#8230; Changing the future&#8230;<\/p>\n<p>Here&#8217;s one that got fixed in uvm-1.2 &#8211; in one of my most hated functions: <strong>lookup_name()<\/strong>! in the uvm_resource stuff:<\/p>\n<p><a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2019\/10\/Random-Instability-THAT-GOT-FIXED.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13964\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2019\/10\/Random-Instability-THAT-GOT-FIXED.jpg\" alt=\"\" width=\"1224\" height=\"230\" \/><\/a><\/p>\n<p>So, the &#8220;way to fix&#8221; random instability caused by new() is to use &#8220;process::self()&#8221;. There are 33 such occurrences in uvm-1.2. Did they get them all? (Hint: the one above got missed). Is It Safe? Note: there are 37 such occurrences in uvm-ieee. That&#8217;s 4 that got missed when uvm-1.2 came out. Fixed in uvm-ieee. Is It Safe?<\/p>\n<h4>Upgrade Now?<\/h4>\n<p>Go ahead and upgrade. A side-effect of upgrading from uvm-1.1d to uvm-1.2, might be to exercise one of these changes to random number ordering which in turn might cause simulation results to no longer match. Is It Safe?<\/p>\n<p>I don&#8217;t know. Generally we recommend that users stick with whatever UVM version they are using. That&#8217;s it. Stick with your UVM because it really doesn&#8217;t matter what version you are using. You <strong>should<\/strong> be using the UVM. <em><strong>We should ALL be using the UVM<\/strong>.<\/em> It is an easy way to improve verification productivity. But, like most things, you should pay attention to what you are doing. Then just maybe, you&#8217;ll be safe.<\/p>\n<p>Want to hear more? I have lots more to say on this and I love to talk about the UVM, so&#8230;<\/p>\n<h4>Come to DVClub<\/h4>\n<p>Come visit <a href=\"http:\/\/dvclub.org\" target=\"_blank\" rel=\"noopener\">DVClub<\/a> in San Jose next week &#8211; Free Lunch on Friday, November 8 at <a href=\"http:\/\/940 Great Mall Dr, Milpitas, CA 95035\">Dave And Buster&#8217;s in Milpitas<\/a> from 11:30 to 2:00.<\/p>\n<p>I&#8217;ll be romping through the fun and history and horrors of the UVM.<\/p>\n<p>And James and Glenn from Ericsson will be there talking about 5G. I&#8217;ve seen their 5G talk. It is really interesting.<\/p>\n<p>Sign up today &#8211; it&#8217;s free &#8211; DVClub just needs to know who is coming to have enough food and chairs. But sign up now, the last one filled up fast. See you Friday, November 8 at Dave and Buster&#8217;s for free food and some UVM fun. <a href=\"http:\/\/dvclub.org\/eventbrite-event\/dvclub-silicon-valley-november-8-2019-gorman-ericsson-canto-ericsson-edelman-mentor\/\" target=\"_blank\" rel=\"noopener\">Register here now<\/a>.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"4ZmaBqwxTk\"><p><a href=\"http:\/\/dvclub.org\/eventbrite-event\/dvclub-silicon-valley-november-8-2019-gorman-ericsson-canto-ericsson-edelman-mentor\/\" target=\"_blank\" rel=\"noopener\">DVClub Silicon Valley &#8211; November 8, 2019 &#8211; Guest Speakers: James Gorman (Ericsson), Glenn Canto (Ericsson), &amp; Rich Edelman (Mentor)<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;DVClub Silicon Valley &#8211; November 8, 2019 &#8211; Guest Speakers: James Gorman (Ericsson), Glenn Canto (Ericsson), &amp; Rich Edelman (Mentor)&#8221; &#8212; Design Verification Club\" src=\"http:\/\/dvclub.org\/eventbrite-event\/dvclub-silicon-valley-november-8-2019-gorman-ericsson-canto-ericsson-edelman-mentor\/embed\/#?secret=4ZmaBqwxTk\" data-secret=\"4ZmaBqwxTk\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Is It Safe? It depends. What is the context? Economy? Geo-political situation? Teenage drivers? UVM? I don&#8217;t know. Do you&#8230;<\/p>\n","protected":false},"author":71540,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[],"industry":[],"product":[],"coauthors":[],"class_list":["post-13600","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/13600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/users\/71540"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/comments?post=13600"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/13600\/revisions"}],"predecessor-version":[{"id":14479,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/13600\/revisions\/14479"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=13600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=13600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=13600"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=13600"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=13600"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=13600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}