{"id":18695,"date":"2024-02-22T17:21:18","date_gmt":"2024-02-22T22:21:18","guid":{"rendered":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/?p=18695"},"modified":"2026-03-27T08:52:09","modified_gmt":"2026-03-27T12:52:09","slug":"uvm-objections-at-dvcon-us-2024-and-grape-jelly","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2024\/02\/22\/uvm-objections-at-dvcon-us-2024-and-grape-jelly\/","title":{"rendered":"UVM Objections at DVCON US 2024 &#8211; and Grape Jelly"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"1024\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-940x1024.jpg\" alt=\"Boiling Cauldron of Grape Juice\" class=\"wp-image-18698\" style=\"width:406px;height:auto\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-940x1024.jpg 940w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-551x600.jpg 551w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-768x836.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-1410x1536.jpg 1410w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-1881x2048.jpg 1881w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-Boiling-900x980.jpg 900w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption class=\"wp-element-caption\">Boiling Cauldron of Grape Juice<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Boiling Grape Jelly<\/h2>\n\n\n\n<p>Stay with me &#8211; trust me. There&#8217;s a tie in to UVM Objections and <a href=\"https:\/\/2024.dvcon.org\/\" data-type=\"link\" data-id=\"https:\/\/2024.dvcon.org\/\" target=\"_blank\" rel=\"noopener\">DVCON US 2024<\/a>.<\/p>\n\n\n\n<p>It&#8217;s been a while &#8211; busy. Too busy to be in the garden. But last fall we realized the grape plants in the yard produced a ton of grapes &#8211; at least it looked like a ton to us. What to do? Instead of letting the birds eat all the grapes, we decided to make jelly. I&#8217;ve made jelly before &#8211; it&#8217;s not hard, but it can (and did) go wrong. (See &#8211; already like the UVM)<\/p>\n\n\n\n<p>Pick the grapes. De-stem the grapes. Smash the grapes. Strain the grapes. Boil the juice. Add pectin and sugar. Wait for it to set. It doesn&#8217;t set. Do it again. (Again &#8211; like the UVM)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"831\" height=\"1024\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-831x1024.jpg\" alt=\"\" class=\"wp-image-18701\" style=\"width:442px;height:auto\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-831x1024.jpg 831w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-487x600.jpg 487w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-768x946.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-1247x1536.jpg 1247w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-1663x2048.jpg 1663w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Grapes-900x1109.jpg 900w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><figcaption class=\"wp-element-caption\">The Grapes<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">The UVM<\/h2>\n\n\n\n<p>The UVM is like a garden &#8211; there&#8217;s life there. Bugs, slithering creatures, beauty and GRAPES! Harvesting the grapes and getting the process down to make jelly isn&#8217;t always &#8220;as-easy-as-it-looks&#8221;. The same for UVM Objections. Looks easy. But it can get messy.<\/p>\n\n\n\n<p>Come visit DVCON US 2024 March 4-8, 2024, but especially come hear my paper on &#8220;Without Objection &#8211; Touring the uvm_objection implementations &#8211; uses and improvements&#8221;. Tuesday, March 5 &#8211; Session 4 &#8211; &#8220;UVM Testbenches&#8221; from 3:00 to 5:00.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">UVM Objections<\/h2>\n\n\n\n<p>Come hear about UVM Objections &#8211; share your secrets during the question and answer. We&#8217;re going to explore the UVM Objection code a bit &#8211; there&#8217;s a lot of it. And we&#8217;ll dive into writing some NEW code ourselves and use it to synchronize modules and classes.<\/p>\n\n\n\n<p>Somewhere inside the uvm_objection class, inside the raise_objection() and then into the m_raise(), we see<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"578\" height=\"909\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-somewhere-inside-raise.jpg\" alt=\"\" class=\"wp-image-18753\" style=\"width:421px;height:auto\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-somewhere-inside-raise.jpg 578w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-somewhere-inside-raise-382x600.jpg 382w\" sizes=\"auto, (max-width: 578px) 100vw, 578px\" \/><figcaption class=\"wp-element-caption\">Inside uvm_objection::m_raise()<\/figcaption><\/figure><\/div>\n\n\n<p>I don&#8217;t know about you, but those comments are scary enough. It&#8217;s doing more than I need. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Seeing Objections and Barriers<\/h2>\n\n\n\n<p>We&#8217;ll also &#8220;see&#8221; these synchronization points<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"126\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end-1024x126.jpg\" alt=\"\" class=\"wp-image-18709\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end-1024x126.jpg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end-600x74.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end-768x95.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end-1536x190.jpg 1536w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end-900x111.jpg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_objections-as-transactions-start-middle-end.jpg 1789w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">&#8220;Seeing&#8221; barrier synchronization points<\/figcaption><\/figure>\n\n\n\n<p>UVM Objections are essential to have a healthy, easy to understand testbench. But there are other ways that are infinitely simpler to do simple synchronization. We&#8217;ll talk through a simple barrier implementation. And a more useful layer on top of it.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"636\" height=\"746\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/simple-barrier-synchronization.jpg\" alt=\"\" class=\"wp-image-18713\" style=\"width:404px;height:auto\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/simple-barrier-synchronization.jpg 636w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/simple-barrier-synchronization-512x600.jpg 512w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><figcaption class=\"wp-element-caption\">Very Simple Barrier Code<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">See You Soon<\/h2>\n\n\n\n<p>In the end &#8211; uvm_objections, your own custom synchronization barrier or grape jelly.<\/p>\n\n\n\n<p>You should be able to understand how to use it and understand how it works. And then the end result &#8211; like grape jelly- is a sugary sweet homemade taste sensation.<\/p>\n\n\n\n<p>Please stop by and say hello at DVCON. See me at the paper or at the Siemens booth &#8211; we can swap recipes.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"1024\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-896x1024.jpg\" alt=\"\" class=\"wp-image-18702\" style=\"width:563px;height:auto\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-896x1024.jpg 896w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-525x600.jpg 525w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-768x877.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-1345x1536.jpg 1345w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-1793x2048.jpg 1793w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Jam-The-Final-Product-900x1028.jpg 900w\" sizes=\"auto, (max-width: 896px) 100vw, 896px\" \/><figcaption class=\"wp-element-caption\">The Final Product<\/figcaption><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Boiling Grape Jelly Stay with me &#8211; trust me. There&#8217;s a tie in to UVM Objections and DVCON US 2024&#8230;.<\/p>\n","protected":false},"author":71540,"featured_media":18751,"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":[506,1587,751,787,1586],"industry":[32,39,54,45,1564,53,70],"product":[205,1124,286],"coauthors":[961],"class_list":["post-18695","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-functional-verification","tag-synchronization","tag-systemverilog","tag-uvm","tag-uvm-objections","industry-aerospace-defense","industry-automotive-transportation","industry-consumer-industrial-electronics","industry-consumer-products-retail","industry-electronic-design-automation","industry-electronics-semiconductors","industry-medical-devices-pharmaceuticals","product-questa","product-visualizer","product-visualizer-debug-environment"],"featured_image_url":"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/dvconus24_logo_02_e5706f62f1.svg","_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/18695","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=18695"}],"version-history":[{"count":5,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/18695\/revisions"}],"predecessor-version":[{"id":18785,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/18695\/revisions\/18785"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media\/18751"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=18695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=18695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=18695"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=18695"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=18695"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=18695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}