{"id":13799,"date":"2019-04-30T14:10:12","date_gmt":"2019-04-30T21:10:12","guid":{"rendered":"https:\/\/blogs.mentor.com\/verificationhorizons\/?p=13799"},"modified":"2026-03-27T08:40:17","modified_gmt":"2026-03-27T12:40:17","slug":"straight-up-smash-mouth-debug","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2019\/04\/30\/straight-up-smash-mouth-debug\/","title":{"rendered":"Straight-up Smash-mouth Debug"},"content":{"rendered":"<figure id=\"attachment_13816\" aria-describedby=\"caption-attachment-13816\" style=\"width: 1513px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2019\/04\/FancyDebug.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-13816\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2019\/04\/FancyDebug.jpg\" alt=\"\" width=\"1513\" height=\"826\" \/><\/a><figcaption id=\"caption-attachment-13816\" class=\"wp-caption-text\">Debugging Threads, Transactions, UVM Sequences and using the call stack<\/figcaption><\/figure>\n<p>I\u2019m having a bad day. Lots of work. Lots of moving parts. We\u2019ve all been there. Nothing new.<\/p>\n<hr \/>\n<p><strong>&gt;&gt; Too busy<\/strong><\/p>\n<hr \/>\n<p>And then, this afternoon was a customer demo. Jump on the webex\u2026 Audio. Video. Check.<\/p>\n<p>A Mentor Application Engineer is going to demo Visualizer Debug.\u00a0I\u2019ll call him &#8220;Steve the Debugger&#8221;.<\/p>\n<p>A demo to a big customer. On their current design.<\/p>\n<hr \/>\n<p><strong>&gt;&gt; Great Opportunity<\/strong><\/p>\n<hr \/>\n<p>There are a couple of \u201cGrizzled Consultants\u201d in the audience. I don\u2019t mean grizzly bears. Just rascals. And they\u2019re not happy to be on a call with \u201cAn EDA Vendor\u201d.<\/p>\n<p>Sigh. My day is heading further downhill.<\/p>\n<p>I\u2019m on the call to answer questions &#8211; but in the end I wasn\u2019t needed. But I\u2019m really glad I dialed in\u2026<\/p>\n<p>One of the Grizzlies started with &#8211; <em>\u201cI\u2019d like my design hierarchy window with some indent\u201d<\/em>&#8230; He had some good ideas, but definitely not happy today. Me either.<\/p>\n<hr \/>\n<p><strong>&gt;&gt; Uh oh. Feels like it could go bad<\/strong><\/p>\n<hr \/>\n<p>We did post simulation debug. Lots of features. Driver tracing, X tracing. All the good stuff.<\/p>\n<hr \/>\n<p><strong>&gt;&gt; The tool performed fabulously &#8211; RTL debug, class debug, all in post-simulation mode<\/strong><\/p>\n<hr \/>\n<p>Then Steve the Debugger jumps into live simulation debug. He goes head first full speed into the middle of all the running UVM sequences. THIS IS AN UNFAMILIAR CUSTOMER DESIGN! WATCH OUT! WHO KNOWS WHAT YOU\u2019LL FIND!<\/p>\n<p>Steve is unfazed. He\u2019s confident. Jumping between sequences and threads. Sequences and threads. Sequences and threads. I was getting dizzy.<\/p>\n<p>Climbing call stacks. <em>Instant response.<\/em> <strong>Is Steve on something?<\/strong> It was so fast I couldn\u2019t take my eyes off the screen and do my other work\u2026 Shhh\u2026<\/p>\n<hr \/>\n<p><strong>&gt;&gt; The tool performed fabulously &#8211; on an unknown customer design; the first time, in some of the hardest debug scenarios &#8211; multiple threads, stack frames, etc.<\/strong><\/p>\n<hr \/>\n<p>My day is improving. Wow!<\/p>\n<p>Then the Grizzly types in the Chat Window again&#8230;<\/p>\n<hr \/>\n<p><strong><em>&gt;&gt; \u201cvery nice\u201d<\/em><\/strong><\/p>\n<hr \/>\n<p><strong>All lower case.<\/strong> OK. But, still a win. You take what you can.<\/p>\n<p>Then<\/p>\n<hr \/>\n<p><strong><em>&gt;&gt; &#8220;This is really good&#8221;<\/em><\/strong><\/p>\n<hr \/>\n<p>Oh boy. The Grizzly likes it. My day is over. <strong>WIN<\/strong>.<\/p>\n<p>But wait, Steve the Debugger goes for UVM Configuration Debug! My nightmare. I don&#8217;t know why UVM Configuration Debug isn&#8217;t easier IN THE UVM. Please go ask the UVM Committee.<\/p>\n<p>But never mind. Steve just uses the tool&#8230;<\/p>\n<p>Steve is now HIP DEEP in UVM Configuration Debug. Waders and everything.<\/p>\n<hr \/>\n<p><strong>&gt;&gt; Easy. Use the tool for UVM Configuration Debug!<\/strong><\/p>\n<hr \/>\n<p>He\u2019s showing readers and writers in the config database. He\u2019s finding out <strong>WHO wrote<\/strong>. And <strong>WHO read<\/strong>.<\/p>\n<p>And then some icing on the cake &#8211; <strong>Steve is\u00a0debugging assertions<\/strong>.<\/p>\n<p>Some final features and questions from the audience.<\/p>\n<p>Then the Grizzly\u2026 <strong>\u201call good here\u201d<\/strong>. Done. WOW! Made my week!<\/p>\n<hr \/>\n<p><strong><em>&gt;&gt; Visualizer Debug worked under pressure in a hostile environment &#8211; the Customer&#8217;s Environment with Consultants Present<\/em><\/strong><\/p>\n<hr \/>\n<p>A great day. The tool did its job. Steve did a great job and the customer had hard questions and their Grizzly hit man was satisfied.<\/p>\n<p><em>Update: The Grizzly came back a week later and asked for some more details about UVM Debug in Livesim &#8211; breakpoints, locals, class browsing, etc. Maybe he&#8217;s not a Grizzly after all. Just an expert Verification user doing a good job for his client &#8211; making sure debug is up to snuff.<\/em><\/p>\n<p>A good day.<\/p>\n<p><strong>Do you have adventures in the Debug Wilderness that you want to share?<\/strong><\/p>\n<hr \/>\n<p>&gt;&gt; See you at <strong>DAC June 3-5<\/strong> or <strong>U2U Silicon Valley<\/strong>, Thursday May 2! Stop by our Mentor booth or the Verification Academy Theater to chat or hear more.<\/p>\n<p>&gt;&gt; The <a href=\"https:\/\/verificationacademy.com\/events\/academy-dac-booth-617\" target=\"_blank\" rel=\"noopener\">DAC Verification Academy session at 3:00pm Monday<\/a> is focused on Visualizer Debug, but there are many other good sessions from 10 to 5 every day.<\/p>\n<hr \/>\n<p>THE END &#8211; Time for a nap. I&#8217;m exhausted but happy.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019m having a bad day. Lots of work. Lots of moving parts. We\u2019ve all been there. Nothing new. &gt;&gt; Too&#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":[422,790,794,803],"industry":[],"product":[],"coauthors":[],"class_list":["post-13799","post","type-post","status-publish","format-standard","hentry","category-news","tag-debugging-assertions","tag-uvm-config","tag-uvm-debug","tag-uvm-sequences"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/13799","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=13799"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/13799\/revisions"}],"predecessor-version":[{"id":14480,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/13799\/revisions\/14480"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=13799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=13799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=13799"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=13799"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=13799"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=13799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}