{"id":18759,"date":"2024-02-26T19:00:00","date_gmt":"2024-02-27T00:00:00","guid":{"rendered":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/?p=18759"},"modified":"2026-03-27T08:52:11","modified_gmt":"2026-03-27T12:52:11","slug":"dvcon-2024-verify-real-number-models","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2024\/02\/26\/dvcon-2024-verify-real-number-models\/","title":{"rendered":"DVCon 2024 \u2013 Verify Real Number Models"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Solving Puzzle<\/h2>\n\n\n\n<p>Do you like to solve puzzles? I do, and I think every engineer does. <br>Since we are solving puzzles every day, there is always a masterpiece that could complete your puzzle. <br>The masterpiece could be any internal piece of puzzle that could complete your final image. Verifying the complete image of your puzzle by putting internal pieces one after another, could help make you reach the final picture.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/do-puzzle1.png\" alt=\"\" class=\"wp-image-18760\" style=\"width:600px\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/do-puzzle1.png 960w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/do-puzzle1-600x450.png 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/do-puzzle1-768x576.png 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/do-puzzle1-900x675.png 900w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\"><strong>Solve Puzzle<\/strong><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">UVM<\/h2>\n\n\n\n<p>UVM is like a piece of a puzzle where it&#8217;s used to complete the whole picture of your design. Digital Verification engineers have been solving their verification puzzles using the UVM from the inputs and outputs of a design. But what about the internal signals and UVM? And what about Analog device &#8220;verification&#8221;? Analog devices can benefit from advanced verification techniques. This can be done with interfaces and bind. The internal signals can then be forced by random values.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\/\/ Interface\nimport volt_pkg::*; \/\/ pkg has a UDN \ninterface ADC_IF_INT (\n  input logic CLK,\n  input real vref1, \/\/ To access reference voltages\n  input real vref2, \n  \u2026\n  input real vref7,\n  output volt D1, \/\/ UDN holds resolved voltage To record output of comparator\n  output volt D2,\n  \u2026);\nendinterface\n\n\/\/ Binding\/force\nmodule top (); \n\u2026 \/\/ Binding DUT to internal interface    \nbind FLASH_ADC ADC_IF_INT int_if (.CLK(CLK),\u000b .vref1(FLASH_ADC.RES_DIV.vref1),\u000b .vref2(FLASH_ADC.RES_DIV.vref2),\u000b  \u2026\n .D1(FLASH_ADC.COMP.D1),\n .D2(FLASH_ADC.COMP.D2),\n  \u2026);\nalways @(CLK) begin\n  force FLASH_ADC.RES_DIV.vref1 = FLASH_ADC.int_if.vref1;\n  force FLASH_ADC.RES_DIV.vref2 = FLASH_ADC.int_if.vref2;\n  \u2026\nend\nendmodule\n\n\/\/ uvm_sequence_item for the internal signals\nclass adc_transaction_in extends uvm_sequence_item; \n \u2026\n\/\/ Randomization of Internal Signals \n rand real vref1;\n constraint c_vref1 { vref1 inside {&#91;(1*VREF)\/n_levels - (delta\/2) :  (1*VREF)\/n_levels + (delta\/2)]}; };\n&nbsp;\n rand real vref2;\n constraint c_vref2 { vref2 inside {&#91;(2*VREF)\/n_levels - (delta\/2) : (2*VREF)\/n_levels + (delta\/2)]}; };\n&nbsp;\u2026 \nendmodule<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"863\" height=\"607\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_internal.png\" alt=\"\" class=\"wp-image-18762\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_internal.png 863w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_internal-600x422.png 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/uvm_internal-768x540.png 768w\" sizes=\"auto, (max-width: 863px) 100vw, 863px\" \/><figcaption class=\"wp-element-caption\"><strong>UVM Env. to access\/record internal signals<\/strong><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Scoreboard<\/h2>\n\n\n\n<p>Now we have to check if the device will behave in a correct way after putting the internal pieces of the puzzles together. Which means checking the functionality after driving the internal signals with the randomized values. The scoreboards can check on this, by building a model that defines the behavior of your device &#8211; a reference model. The output of the reference model can be compared with the outputs of the DUT. The reference model is the expected model that gives the correct outputs from the DUT.<\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"205\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-1024x205.png\" alt=\"\" class=\"wp-image-18766\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-1024x205.png 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-600x120.png 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-768x154.png 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-1536x308.png 1536w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-2048x411.png 2048w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture11-900x181.png 900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>mismatch between output of DUT and reference model, increases with simulation time<\/strong><\/figcaption><\/figure><\/div>\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"174\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture12-1024x174.png\" alt=\"\" class=\"wp-image-18767\" style=\"object-fit:cover\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture12-1024x174.png 1024w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture12-600x102.png 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture12-768x130.png 768w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture12-900x153.png 900w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/Picture12.png 1315w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>mismatch between output of DUT and reference model, equal to 0<\/strong><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">See you at DVCon 2024<\/h2>\n\n\n\n<p>If you are interested in completing your design and solving more puzzles especially the ones that are interested in modeling and verifying the analog devices in the digital environment. Please come and attend DVCon US. 2024.<\/p>\n\n\n\n<p>See you at the paper or at the Siemens booth.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"540\" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/puzzle.png\" alt=\"\" class=\"wp-image-18769\" srcset=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/puzzle.png 852w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/puzzle-600x380.png 600w, https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/puzzle-768x487.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><figcaption class=\"wp-element-caption\">The whole puzzle is now completed \ud83d\ude42<\/figcaption><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Solving Puzzle Do you like to solve puzzles? I do, and I think every engineer does. Since we are solving&#8230;<\/p>\n","protected":false},"author":101173,"featured_media":18697,"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":[],"industry":[],"product":[],"coauthors":[1583],"class_list":["post-18759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"featured_image_url":"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2024\/02\/dvcon.png","_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/18759","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\/101173"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/comments?post=18759"}],"version-history":[{"count":7,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/18759\/revisions"}],"predecessor-version":[{"id":18923,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/18759\/revisions\/18923"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media\/18697"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=18759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=18759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=18759"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=18759"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=18759"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=18759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}