{"id":14175,"date":"2020-04-29T16:00:12","date_gmt":"2020-04-29T23:00:12","guid":{"rendered":"https:\/\/blogs.mentor.com\/verificationhorizons\/?p=14175"},"modified":"2026-03-27T08:45:59","modified_gmt":"2026-03-27T12:45:59","slug":"forums-with-edaplayground","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2020\/04\/29\/forums-with-edaplayground\/","title":{"rendered":"Asking better questions on the Verification Academy Forums with EDAPlayground"},"content":{"rendered":"<p>The <a href=\"https:\/\/verificationacademy.com\/forums\/all-topics\" target=\"_blank\" rel=\"noopener\">forums<\/a> on the Verification Academy have been around for about a decade (even longer if you count its origins from OVMWorld). At the recent DVCon\u2019s in the <a href=\"https:\/\/dvcon.org\/\" target=\"_blank\" rel=\"noopener\">US<\/a> and <a href=\"https:\/\/dvcon-india.org\/\" target=\"_blank\" rel=\"noopener\">India<\/a>, many people came up to greet me and shared their stories of how they had a problem and found a solution on the forum. A significant number of them had never posted a question. They just searched for similar problems with answers. That\u2019s perfectly fine and a great example of re-use.<\/p>\n<p>On the other extreme, many people post questions without thinking about how other people could read it. Many of us are experts in our respective fields and it&#8217;s hard to remember a time when we couldn\u2019t understand what seems trivial to us today, myself\u00a0included\ud83e\uddd4\ud83c\udffb.\u00a0Over the years I\u2019ve seen what it takes to ask a good question. There are now many good write-ups on how to ask a good question (e.g. <a href=\"https:\/\/stackoverflow.com\/help\/minimal-reproducible-example\" target=\"_blank\" rel=\"noopener\">here<\/a> and <a href=\"https:\/\/www.biostars.org\/p\/75548\/\" target=\"_blank\" rel=\"noopener\">here<\/a>). After a long absence, <a href=\"https:\/\/www.mentor.com\/products\/fv\/questa\/\" target=\"_blank\" rel=\"noopener\">Questa<\/a> is now available on the <a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/EDAP.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-14199 size-full\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/EDAP.png\" alt=\"EDAPlayground\" width=\"278\" height=\"64\" \/><\/a>EDAplayground along with <a href=\"https:\/\/www.mentor.com\/products\/fpga\/synthesis\/\" target=\"_blank\" rel=\"noopener\">Precision<\/a> synthesis. Let me explain how to use these tips and tools to ask better questions on the Verification Academy forums.<\/p>\n<p>Here\u2019s a common type of beginner&#8217;s question (asked by a number of people so I\u2019m not picking on <em>you<\/em> specifically):<br \/>\n<a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture1-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14190 \" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture1-1-520x110.png\" alt=\"\" width=\"402\" height=\"85\" \/><\/a><\/p>\n<p>In SystemVerilog, the context of where an expression is located can change its meaning. So if I saw code in question was inside a procedural block as:<br \/>\n<a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture2-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14189 \" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture2-1-520x110.png\" alt=\"\" width=\"402\" height=\"85\" \/><\/a><\/p>\n<p>I\u2019d at least know that this is a non-blocking assignment to A with the right-hand-side expression B less-than-or-equal to C. But other times this question gets asked as:<br \/>\n<a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture3-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14188 \" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture3-1-520x110.png\" alt=\"\" width=\"402\" height=\"85\" \/><\/a><\/p>\n<p>We don&#8217;t know what \u201cnot working\u201d means. Does it not compile? Does the constraint fail? Are you getting results you are not expecting? \u00a0A <a href=\"https:\/\/www.edaplayground.com\/x\/34rs\" target=\"_blank\" rel=\"noopener\">simple little test case<\/a> on EDAPlayground that shows actual results with an explanation of why those results are not what you are expecting helps tremendously. \u00a0After looking at the output from EDAPlayground: &#8216;{A:3, B:1, C:4}, I can see that those values satisfy the constraint because the expression gets evaluated as\u00a0(A &lt;= B) &lt;= C; Substituting those values we have\u00a03\u2019d3 &lt;= 3\u2019d1 is 1\u2019b0, and 1\u2019b0 &lt;= 3\u2019d4 is 1\u2019b1, so the solver is able to pick those values as a solution. What you probably intended to write was:<br \/>\n<a href=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture4-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-14187 \" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2020\/04\/Picture4-1-520x111.png\" alt=\"\" width=\"398\" height=\"85\" \/><\/a><\/p>\n<p>I hope this demonstrates how you can easily add just a few extra lines in your question helping others get right to the point of your question. It\u2019s even easier to discuss one\u2019s issues and share what you mean by <em>small<\/em>\u00a0code examples via <a href=\"https:\/\/www.edaplayground.com\/\" target=\"_blank\" rel=\"noopener\">EDAPlayground<\/a> just as I did with my <em>simple<\/em> little test case. And do read the <a href=\"https:\/\/stackoverflow.com\/help\/minimal-reproducible-example\" target=\"_blank\" rel=\"noopener\">link<\/a>\u00a0on creating a <em>minimal<\/em> example. Hopefully you&#8217;ll get better answers from asking better questions. (Emphasis on <em>small<\/em>, <em>simple<\/em> and <em>minimal &#8211; <\/em>get right to the point without other distractions)<\/p>\n<p><em>-dave_rich\u00a0\ud83e\uddd4\ud83c\udffb<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The forums on the Verification Academy have been around for about a decade (even longer if you count its origins&#8230;<\/p>\n","protected":false},"author":71589,"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":[442,506,533,751,820,831],"industry":[],"product":[],"coauthors":[],"class_list":["post-14175","post","type-post","status-publish","format-standard","hentry","category-news","tag-dvcon","tag-functional-verification","tag-ieee-1800","tag-systemverilog","tag-verification-academy","tag-verilog"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/14175","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\/71589"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/comments?post=14175"}],"version-history":[{"count":2,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/14175\/revisions"}],"predecessor-version":[{"id":15551,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/14175\/revisions\/15551"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=14175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=14175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=14175"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=14175"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=14175"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=14175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}