{"id":4971,"date":"2011-07-26T16:04:47","date_gmt":"2011-07-26T23:04:47","guid":{"rendered":"https:\/\/blogs.mentor.com\/verificationhorizons\/?p=4971"},"modified":"2026-03-27T08:34:18","modified_gmt":"2026-03-27T12:34:18","slug":"4971","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2011\/07\/26\/4971\/","title":{"rendered":"Combining Intelligent Testbench Automation with Constrained Random Testing"},"content":{"rendered":"<p><strong>Who Doesn&#8217;t Like Faster?<\/strong><\/p>\n<p>In my last blog post I introduced new technology called Intelligent Testbench Automation (&#8220;iTBA&#8221;).\u00a0 It&#8217;s generating lots of interest in the industry because just like constrained random testing (&#8220;CRT&#8221;), it can generate tons of tests for functional verification.\u00a0 But it has unique efficiencies that allow you to achieve coverage 10X to 100X faster.\u00a0 And who doesn&#8217;t like faster?\u00a0 Well since the last post I&#8217;ve received many questions of interest from readers, but one seems to stick out enough to &#8220;cover&#8221; it here in a follow up post.<\/p>\n<p>Several readers commented that they like the concept of randomness, because it has the ability of generating sequences of sequences; perhaps even a single sequence executed multiple times in a row. <sup>1 <\/sup>And they were willing to suffer some extra redundancy as an unfortunate but necessary trade-off.<\/p>\n<p><strong>Interactive Example<\/strong><\/p>\n<p>While this benefit of random testing is understandable, there&#8217;s no need to worry as iTBA has you covered here.\u00a0 If you checked out this link &#8211;\u00a0<a href=\"http:\/\/www.verificationacademy.com\/infact2\" target=\"_blank\" rel=\"noopener\">http:\/\/www.verificationacademy.com\/infact2<\/a>\u00a0&#8211; you found an interactive example of a side by side comparison of CRT and iTBA.\u00a0 The intent of the example was to show comparisons of what happens when you use CRT to generate tests randomly versus when you use iTBA to generate tests without redundancy.<\/p>\n<p>However in a real application of iTBA, it&#8217;s equally likely that you&#8217;d manage your redundancy, not necessarily eliminate it completely.\u00a0 We&#8217;ve improved the on-line illustration now to include two (of the many) additional features of iTBA.<\/p>\n<p><strong>Coverage First &#8211; Then Random<\/strong><\/p>\n<p>One is the ability to run a simulation with high coverage non-redundant tests first, followed immediately by random tests.\u00a0 Try it again, but this time check the box labeled &#8220;Run after all coverage is met&#8221;.\u00a0 What you&#8217;ll find is that iTBA achieves your targeted coverage in the first 576 tests, at which time CRT will have achieved somewhere around 50% coverage at best.\u00a0 But notice that iTBA doesn&#8217;t stop at 100% coverage.\u00a0 It continues on, generating tests randomly.\u00a0 By the time CRT gets to about 70% coverage, iTBA has achieved 100%, and has also generated scores of additional tests randomly.\u00a0 You can have the best of both worlds.\u00a0 You can click on the &#8220;suspend&#8221;, &#8220;resume&#8221;, and &#8220;show chart&#8221; buttons during the simulation to see the progress of each.<\/p>\n<p><strong>Interleave Coverage and Random<\/strong><\/p>\n<p>Two is the ability to run a simulation randomly, but to clip the redundancy rather than eliminate it.\u00a0 Move the &#8220;inFact coverage goal&#8221; bar to set the clip level (try 2 or 3 or 4), and restart the simulation.\u00a0 Now you&#8217;ll see iTBA generating random tests, but managing the redundancy to whatever level you chose.\u00a0 The result is simulation with a managed amount of redundancy that still achieves 100% of your target coverage, including every corner-case.<\/p>\n<p>iTBA generates tons of tests, but lets you decide how much to control them.\u00a0 If you&#8217;re interested to learn more about how iTBA can help you achieve your functional verification goals faster, you might consider attending the Tech Design Forum in Santa Clara on September 8<sup>th<\/sup>.\u00a0 There&#8217;s a track dedicated to achieving coverage closure.\u00a0 Check out this URL for more information about it.\u00a0 <a href=\"http:\/\/www.techdesignforums.com\/events\/santa-clara\/event.cfm\" target=\"_blank\" rel=\"noopener\">http:\/\/www.techdesignforums.com\/events\/santa-clara\/event.cfm<\/a><\/p>\n<p><sup>1<\/sup> &#8211; By the way, if achieving your test goals is predicated on certain specific sequences of sequences, our experts can show you how to create an iTBA graph that will achieve those goals much faster than relying on redundancy.\u00a0 But that&#8217;s another story for another time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Who Doesn&#8217;t Like Faster? In my last blog post I introduced new technology called Intelligent Testbench Automation (&#8220;iTBA&#8221;).\u00a0 It&#8217;s generating&#8230;<\/p>\n","protected":false},"author":71600,"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":[394,506,551,562,718,758,819],"industry":[],"product":[],"coauthors":[],"class_list":["post-4971","post","type-post","status-publish","format-standard","hentry","category-news","tag-constrained-random-test","tag-functional-verification","tag-intelligent-testbench-automation","tag-itba","tag-simulation","tag-testbench","tag-verification"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/4971","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\/71600"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/comments?post=4971"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/4971\/revisions"}],"predecessor-version":[{"id":19739,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/4971\/revisions\/19739"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=4971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=4971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=4971"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=4971"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=4971"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=4971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}