{"id":19495,"date":"2025-09-08T17:33:43","date_gmt":"2025-09-08T21:33:43","guid":{"rendered":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/?p=19495"},"modified":"2026-03-27T08:53:57","modified_gmt":"2026-03-27T12:53:57","slug":"the-grapes-are-back-and-cake-and-c-tests-with-uvm-and-transactions-for-all-easy","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2025\/09\/08\/the-grapes-are-back-and-cake-and-c-tests-with-uvm-and-transactions-for-all-easy\/","title":{"rendered":"The Grapes Are Back! And Cake! And C Tests with UVM and Transactions For All! Easy."},"content":{"rendered":"\n<p>The grapes have returned &#8211; this weekend was &#8220;harvest&#8221; time. Jelly everywhere. A lot like this year here at Siemens. Lots of activity. New products. Announcements. Products everywhere. Jelly everywhere.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-1024x771.jpg\" alt=\"\" class=\"wp-image-19512\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-1024x771.jpg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-600x452.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-768x578.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-1536x1157.jpg 1536w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-2048x1542.jpg 2048w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Boiling-Grapes-900x678.jpg 900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">California Wild Grapes Boiling<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">We&#8217;ve had a big year with our <a href=\"https:\/\/www.siemens.com\/questa\" data-type=\"link\" data-id=\"https:\/\/www.siemens.com\/questa\" target=\"_blank\" rel=\"noopener\">Questa One<\/a> Launch, lots of things going on and lots of great new products.<\/h2>\n\n\n\n<p>But today is about going back to DVCON Japan 2024 and <a href=\"https:\/\/www.dvcon-jpn.org\/\" data-type=\"link\" data-id=\"https:\/\/www.dvcon-jpn.org\/\" target=\"_blank\" rel=\"noopener\">DVCON Japan 2025<\/a> (just completed). Before we get to &#8220;cake&#8221; and transactions and all the rest, don&#8217;t forget &#8211; <a href=\"https:\/\/dvcontaiwan.org\/\" data-type=\"link\" data-id=\"https:\/\/dvcontaiwan.org\/\" target=\"_blank\" rel=\"noopener\">DVCON Taiwan 2025<\/a> and <a href=\"https:\/\/dvcon-india.org\/\" target=\"_blank\" rel=\"noopener\">DVCON India 2025<\/a> are both this week &#8211; hopefully if you&#8217;re in the area you&#8217;ll stop by and check-out all the new things at our booth &#8211; and maybe attend some presentations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C Tests with UVM<\/h3>\n\n\n\n<p>For me, DVCON Japan 2024, was about &#8220;Having Your Cake and Eating It Too &#8211; Programming UVM Sequences with C Code&#8221; with Tomoki Watanabe. It was a romp through connecting C code to UVM sequences using a mapping in an interface. Not as hard as it sounds, with some diagrams, explanations and example source code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-1024x576.jpg\" alt=\"C and UVM Connectivty Diagram\" class=\"wp-image-19497\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-1024x576.jpg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-600x338.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-768x432.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-1536x864.jpg 1536w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-395x222.jpg 395w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram-900x506.jpg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/C-and-UVM-Connectivity-Diagram.jpg 1914w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">C Code Connected To Sequences<\/figcaption><\/figure>\n\n\n\n<p>The idea being &#8211; have your cake and eat it too &#8211; have your standard UVM verification environment, and have your C verification environment connected. Have C tests running at the same time as UVM tests &#8211; sharing the same sequencer and driver.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-1024x574.jpg\" alt=\"The Threads Seen as Transactions\" class=\"wp-image-19498\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-1024x574.jpg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-600x336.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-768x430.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-1536x861.jpg 1536w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-395x222.jpg 395w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads-900x504.jpg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Transactions-from-the-Many-Threads.jpg 1918w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Threads rendered as transactions<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Correlation with Transactions in the Wave Window<\/h3>\n\n\n\n<p>DVCON Japan 2025 was about &#8220;SystemVerilog Transactions, UVM and C &#8211; Correlation in a functional verification environment&#8221; &#8211; Correlation in the wave window using transactions. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"478\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1-1024x478.jpg\" alt=\"Correlation in the wave window with Transactions\" class=\"wp-image-19502\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1-1024x478.jpg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1-600x280.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1-768x358.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1-1536x717.jpg 1536w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1-900x420.jpg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/Correlation-1.jpg 1916w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Correlating Transactions In The Wave Window<\/figcaption><\/figure>\n\n\n\n<p>In the paper with Tomoki Watanabe, we demonstrate how valuable correlated data is &#8211; and that the wave window is a great place to correlate things &#8211; by time. But the neatest part is that we correlated C code, UVM sequences and tests, VHDL, Memory reads and writes, Gate level designs using bind, and even backdoor access. The wave window correlation is with transactions &#8211; so most of the &#8220;places&#8221; above needed some transaction recording instrumentation. It&#8217;s real easy to do, and quite valuable for debug and verification.<\/p>\n\n\n\n<p>I know that&#8217;s a lot. But the visibility is worth it. It was an exciting two years at DVCON worldwide and at Siemens EDA with our <a href=\"https:\/\/www.siemens.com\/questa\" data-type=\"link\" data-id=\"https:\/\/www.siemens.com\/questa\" target=\"_blank\" rel=\"noopener\">Questa One<\/a>.<\/p>\n\n\n\n<p>See you next time. Have fun verifying&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Links<\/h3>\n\n\n\n<p>Papers and Presentations can be found at<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/verificationacademy.com\/topics\/systemverilog\/systemverilog-transactions-uvm-and-c-correlation-in-a-functional-verification-environment\" target=\"_blank\" rel=\"noopener\">DVCON Japan 2025 Paper \/ Presentation<\/a> &#8211; &#8220;SystemVerilog Transactions, UVM and C &#8211; Correlation in a functional verification environment&#8221; <\/li>\n\n\n\n<li><a href=\"https:\/\/verificationacademy.com\/topics\/uvm-universal-verification-methodology\/having-your-cake-and-eating-it-too-programming-uvm-sequences-with-dpi-c\/\" data-type=\"link\" data-id=\"https:\/\/verificationacademy.com\/topics\/uvm-universal-verification-methodology\/having-your-cake-and-eating-it-too-programming-uvm-sequences-with-dpi-c\/\" target=\"_blank\" rel=\"noopener\">DVCON Japan 2024 Paper \/ Presentation<\/a> &#8211; &#8220;Having Your Cake and Eating It Too &#8211; Programming UVM Sequences with C Code&#8221;<\/li>\n\n\n\n<li><a href=\"https:\/\/foragerchef.com\/wild-grape-jelly\/\" target=\"_blank\" rel=\"noopener\">Classic Homemade Wild Grape Jelly Recipe<\/a> <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"1024\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-771x1024.jpg\" alt=\"\" class=\"wp-image-19513\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-771x1024.jpg 771w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-452x600.jpg 452w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-768x1020.jpg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-1157x1536.jpg 1157w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-1542x2048.jpg 1542w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-900x1195.jpg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/23-pounds-of-Grapes-scaled.jpg 1928w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><figcaption class=\"wp-element-caption\">23 Pounds of Grapes, and I only worked 5 feet on one side of the 30 foot grapevine fence &#8211; Too much jelly<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The grapes have returned &#8211; this weekend was &#8220;harvest&#8221; time. Jelly everywhere. A lot like this year here at Siemens&#8230;.<\/p>\n","protected":false},"author":71540,"featured_media":19496,"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":[982,5,1,10,983],"tags":[1639,506,751,1637,787],"industry":[32,39,53],"product":[205,1124,286],"coauthors":[961],"class_list":["post-19495","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-systemverilog","category-events","category-news","category-tips-tricks","category-uvm","tag-c-test","tag-functional-verification","tag-systemverilog","tag-transactions","tag-uvm","industry-aerospace-defense","industry-automotive-transportation","industry-electronics-semiconductors","product-questa","product-visualizer","product-visualizer-debug-environment"],"featured_image_url":"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2025\/09\/The-Grapes-Are-Back-scaled.jpg","_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/19495","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=19495"}],"version-history":[{"count":6,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/19495\/revisions"}],"predecessor-version":[{"id":19517,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/19495\/revisions\/19517"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media\/19496"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=19495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=19495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=19495"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=19495"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=19495"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=19495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}