{"id":16521,"date":"2021-09-14T23:12:56","date_gmt":"2021-09-15T03:12:56","guid":{"rendered":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/?p=16521"},"modified":"2026-03-27T08:47:20","modified_gmt":"2026-03-27T12:47:20","slug":"leave-the-house-with-a-clean-design","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2021\/09\/14\/leave-the-house-with-a-clean-design\/","title":{"rendered":"Leave the House With a Clean Design"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-image\"><figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/dreiecke-800x600_original-e1631297179600.jpeg\" alt=\"\" class=\"wp-image-16529\" width=\"313\" height=\"235\"\/><figcaption>Fashion<\/figcaption><\/figure><\/div>\n\n\n\n<p>Several years ago, I posted a job opening for a Design Engineer.&nbsp;To my surprise, a few of the responses I received were from individuals in the fashion industry, looking for a fashion design position. Apparently, I didn\u2019t write the job description well enough.&nbsp;Actually, on second thought, I think I did but those fashion types who applied probably assumed that I mistakenly listed the job as microprocessor design and that the job really <em>was<\/em> about designing pants.&nbsp;But I digress. Design is admittedly a very vague word. It means a lot of things to a lot of people. So, let me be perfectly clear \u2013 in the context of the rest of this entry, when I say design, I mean digital hardware design. Clear?<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Moving on, I\u2019d like to propose that most of us know bad design when we see it. The Tacoma Narrows Bridge comes to mind. Or the 8-track tape. Or bell-bottom pants. But I digress. So, why do we know bad design when we see it? Probably because it fails to achieve its intended purpose \u2013 sometimes spectacularly.&nbsp;We don\u2019t often notice good design because it just does what it&#8217;s supposed to do.&nbsp;We only really notice good design if it does what it is supposed to do exceptionally well! But bad design \u2013 in the least it\u2019s annoying and at its worst the result is magnificently expensive in one of many possible ways.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-1024x680.jpeg\" alt=\"The result of a bad design\" class=\"wp-image-16524\" width=\"346\" height=\"229\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-1024x680.jpeg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-600x398.jpeg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-768x510.jpeg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-900x598.jpeg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small.jpeg 1036w\" sizes=\"auto, (max-width: 346px) 100vw, 346px\" \/><figcaption>A poor design resulting in a display not meeting the intent<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>So, remember, in this context bad design doesn\u2019t refer to bell-bottom pants, but digital hardware design that fails to meet its intended purpose. And make no mistake \u2013 hardware designs don&#8217;t always achieve their intended purpose. When those failures are discovered in the field, the implications are severe. Even when those failures are discovered before a product gets in the field, they can be very expensive. Late issue discovery has certainly led to more than one canceled product over the years. Just think of all the fun gadgets we have never been able to use just because there were too many late-found bad design elements to keep it from getting to market. Drones flying near my head, instantly dispensing snacks as I need them, come to mind. But I digress.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>The fashionable response to this over the years has been to invest more in verification. According to <a href=\"https:\/\/resources.sw.siemens.com\/en-US\/white-paper-2020-wilson-research-group-functional-verification-study-ic-asic-fucntional-verification-trend-report\" target=\"_blank\" rel=\"noreferrer noopener\">Wilson Research Group studies<\/a> consistently taken every two years, the number of verification engineers on a development team exceeded the number of (do not insert fashion here) designers around 2015 and has continued since.&nbsp;Yet unfortunately those same surveys show that despite the increasing investment and focus on verification, the percentage of rework-causing problems that are functional in nature stayed the same.&nbsp;What didn\u2019t stay the same was the cost of failure.&nbsp;Respins per ASIC project or FPGA design issues escaping into production increased from 2012 to 2020.&nbsp;With mask costs for ASICs increasing, and labor costs increasing over that time, the cost of functional issue escapes has only increased. Don\u2019t misunderstand, I\u2019m not downplaying the importance of verification \u2013 not by any means.  It&#8217;s critical to success. But the fact is that we are investing more and more and losing ground.  We need verification but we also need to do something different.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-1024x680.jpeg\" alt=\"The result of a bad design\" class=\"wp-image-16524\" width=\"327\" height=\"217\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-1024x680.jpeg 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-600x398.jpeg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-768x510.jpeg 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small-900x598.jpeg 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Image-interference-on-plasma-TV_small.jpeg 1036w\" sizes=\"auto, (max-width: 327px) 100vw, 327px\" \/><figcaption>Could also be a neon striped shirt &#8211; also a bad design<\/figcaption><\/figure><\/div>\n\n\n\n<p>Unfortunately, the sordid tale of bad design doesn\u2019t end there.&nbsp;There\u2019s a whole class of issues that aren\u2019t reliably caught in verification.&nbsp;Think of these as the short-sleeve neon-striped dress shirt with the pocket protector, worn <em>with<\/em> the bell-bottom pants. These issues have to do with asynchronous clock domain crossings (CDCs) or asynchronous reset domain crossings (RDCs). (I am going to assume that you understand metastable behavior in flip-flops caused by changes on input signals too close to the change of the clock \u2013 if not please reference the <a href=\"https:\/\/verificationacademy.com\/topics\/static-based-techniques\" target=\"_blank\" rel=\"noreferrer noopener\">CDC content on Verification Academy<\/a>).&nbsp;Just like someone telling you that something is in style that you believe doesn\u2019t look good, (think \u2013 mixing plaids and stripes), don\u2019t listen to those who claim that it\u2019s possible to verify CDCs or RDCs in simulation, or that the design methodology is robust enough that CDC or RDC verification isn\u2019t required.&nbsp;History shows that it\u2019s \u201cgood enough\u201d until it isn\u2019t.&nbsp;<a href=\"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/tag\/wilson-research-group-functional-verification-study\/\" target=\"_blank\" rel=\"noreferrer noopener\">Those same surveys<\/a> mentioned earlier identified that the percentage of issues causing errors to get into production in FPGAs, that are due to clocking, have increased from 2012 to 2020.&nbsp;The good news here is that on the ASIC side, they\u2019ve decreased due to increased adoption of tools such as CDC verification.&nbsp;However, as I noted earlier, mask costs on ASICs continue to increase, offsetting those gains.<\/p>\n\n\n\n<p>Now let\u2019s talk about how teams build designs.&nbsp;In many cases, teams draw up the architecture, and then the microarchitecture, and then the block-level architectures and microarchitectures, and so on.&nbsp;At some point when the specs and high-level models are written, if there are separate teams, the verification team starts writing a testbench and the designers start designing. If there aren\u2019t separate teams, the engineers design first, then verify later.&nbsp;Either way, design is happening in the dark without a way to test anything.&nbsp;So, designers either end up writing rudimentary testbenches to wiggle wires and check for a heartbeat (which is generally throw-away work) or they don\u2019t test it at all, letting the code sit on a shelf waiting for that testbench.&nbsp;In modern times we sometimes also throw in the complexity of hardware\/firmware co-design (meaning there\u2019s a third team that is using the documentation and doing development in parallel), as well as additional emulation and prototyping work.&nbsp;Everyone needs the design to be as solid as possible as early as possible to get their part of the hard stuff underway. No one wants to see all this later-program work impacted unpredictably by bugs that could have been found during design creation.&nbsp;But the problem is the designer needs some sort of verification capability to meet that need.&nbsp;<\/p>\n\n\n\n<p>Enter <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a>.&nbsp;With the introduction of <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\/lint\" target=\"_blank\" rel=\"noopener\">Questa Lint<\/a>, brought together with <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/formal-verification\/autocheck\/\" target=\"_blank\" rel=\"noreferrer noopener\">Questa AutoCheck<\/a>, <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/formal-verification\/x-check\/\" target=\"_blank\" rel=\"noreferrer noopener\">X-Check<\/a>, <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\/clock-domain-crossing\" target=\"_blank\" rel=\"noreferrer noopener\">CDC<\/a>, <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\/reset-domain-crossing\/\" target=\"_blank\" rel=\"noreferrer noopener\">RDC <\/a>and <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\/signoff-gatelevel-cdc\/\" target=\"_blank\" rel=\"noreferrer noopener\">Signoff CDC<\/a>, <a href=\"https:\/\/resources.sw.siemens.com\/en-US\/fact-sheet-questa-design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a> provide verification automation for designers, delivering integrated and actionable intent-focused insight from design creation through completion.&nbsp;I know what you&#8217;re thinking &#8211; &#8220;Gosh Chris that was a lot of words, that appear to be syntactically, semantically and structurally correct but what do they mean?&#8221; To which I say &#8220;Thank you for the excellent segue to <a href=\"https:\/\/resources.sw.siemens.com\/en-US\/fact-sheet-questa-lint\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Lint<\/a>, but in the meantime let me elaborate.&#8221; Let\u2019s start with this:&nbsp;a designer can check that their designs are free of an entire class of common bugs that slow down or entirely restart development processes, without a testbench. More importantly, it means that this can be done in the most efficient way possible, in an environment that provides commonality across any analysis from simple static linting and design verification through formal analyses, formal verification and beyond to simulation-based verification.&nbsp;Consistent directives, constraint methodologies, issue disposition status flows, user interfaces and more allow the designer to find and fix issues quickly in an environment proven by over 20 years of successful customer design releases.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/general_faq_original-jpeg-variant.jpg\" alt=\"Unclear\" class=\"wp-image-16541\" width=\"201\" height=\"201\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/general_faq_original-jpeg-variant.jpg 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/general_faq_original-jpeg-variant-150x150.jpg 150w\" sizes=\"auto, (max-width: 201px) 100vw, 201px\" \/><figcaption>Can you please clarify? <\/figcaption><\/figure><\/div>\n\n\n\n<p>In the future, we\u2019ll get into more of the details behind the elements that make up this solution, but for&nbsp;now, let me expand on what we mean by <em>actionable intent-focused insight<\/em>. In my career in the (hardware) design industry, I once asked my team to use a linting solution on a design.&nbsp;While I believed in the value of linting, the results were so noisy that I felt a faster path to being done was finding and fixing issues through compilers and testbench bringup and debug. Regrettable, certainly, but there was far too much noise.&nbsp;That issue colored (not neon or striped, mind you) my view of that type of tool for years.&nbsp;Fortunately, this is not the issue with <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a> and <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\/lint\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Lint<\/a>.&nbsp;By leveraging machine learning algorithms, as well as our deep understanding of the most common and challenging design issues, <a href=\"https:\/\/resources.sw.siemens.com\/en-US\/fact-sheet-questa-design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a>: <\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>reports only the issues that need to be fixed in order of those that matter most<\/li><li>analyzes against every issue known to provide results different than what we infer the designer\u2019s intent to be, <\/li><li>provides a broad range of visualization, metrics, and recommendations for every issue.&nbsp;<\/li><\/ol>\n\n\n\n<p>That\u2019s what we mean by <em>actionable intent-focused insight<\/em>.&nbsp;If the previous version of me had seen those kinds of results, I would have let lint do all the hard work and gone outside to play pickleball. But I digress.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-image\"><figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Stop300x600_original.jpeg\" alt=\"Stop\" class=\"wp-image-16537\" width=\"389\" height=\"195\"\/><\/figure><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p>At this time, I\u2019d like to pause and thank the people in my life who taught me just enough about bad fashion to be able to write this piece.&nbsp;Wouldn\u2019t it be great if there was something out there that wouldn\u2019t let you walk out the door \u201cdressed like that\u201d or would shop with you as you needed clothes for an important event?  But I digress.  I mean they wouldn\u2019t let you send bad designs downstream? Well, it\u2019s an increasing trend in design to do just that.&nbsp;Particularly as hardware\/firmware co-design increases where an expectation exists that hardware be developed under the same agile never-broken mechanism as firmware, or where industry standards or process improvement mechanisms require teams to ensure designs are clean before committed.&nbsp;<a href=\"https:\/\/resources.sw.siemens.com\/en-US\/fact-sheet-questa-design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a> supports these continuous integration mechanisms, with tool integration, configurable design goals and methodologies that can either increase rigor as needed or hold them in place over time to monitor compliance and improvement.&nbsp;<\/p>\n\n\n\n<p>There&#8217;s a lot to cover here and I won&#8217;t ask you to read much further. I encourage you to learn more about <a href=\"https:\/\/resources.sw.siemens.com\/en-US\/fact-sheet-questa-design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a> and the tools within via the copious links that I&#8217;ve placed throughout this piece. Also, learn more about using <a href=\"https:\/\/eda.sw.siemens.com\/en-US\/ic\/questa\/design-solutions\" target=\"_blank\" rel=\"noreferrer noopener\">Questa Design Solutions<\/a> and improving your RTL quality by watching our <a href=\"https:\/\/verificationacademy.com\/rtl\" target=\"_blank\" rel=\"noreferrer noopener\">Improving Initial RTL Quality<\/a> webinar. Or contact your Siemens EDA account team for more details and an evaluation. <\/p>\n\n\n\n<p>On a final note, while writing this, I have come to realize that in the end those fashion designer types who applied for my position might have taught me something.&nbsp;While digital hardware design is, I would propose, technically much harder and the stakes much greater, there is something similar between the two.&nbsp;Neither industry really wants us to leave the house wearing bell-bottom pants and neon-striped short-sleeve dress shirts with a pocket protector.&nbsp;And your clothes look much better if you&#8217;ve used a good linting tool.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wouldn&#8217;t it be great if there were something that would stop you from leaving the house wearing mismatched clothes &#8211; I mean without a clean design?  <\/p>\n","protected":false},"author":71585,"featured_media":16537,"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":[376,377,966,435,457,493,499,506,880,659,660,667,669,690,718,732,736,751,785,819,820],"industry":[53],"product":[205],"coauthors":[965],"class_list":["post-16521","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","tag-cdc-analysis","tag-cdc-verification","tag-continuous-integration","tag-do-254","tag-emulation","tag-formal-verification","tag-fpga-prototyping","tag-functional-verification","tag-iso26262","tag-questa-cdc","tag-questa-cdc-fx","tag-questa-reset-check","tag-questa-signoff-cdc","tag-rtl","tag-simulation","tag-standards","tag-static-method","tag-systemverilog","tag-upf","tag-verification","tag-verification-academy","industry-electronics-semiconductors","product-questa"],"featured_image_url":"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2021\/09\/Stop300x600_original.jpeg","_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/16521","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\/71585"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/comments?post=16521"}],"version-history":[{"count":5,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/16521\/revisions"}],"predecessor-version":[{"id":16555,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/16521\/revisions\/16555"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media\/16537"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=16521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=16521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=16521"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=16521"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=16521"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=16521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}