{"id":12743,"date":"2017-02-24T10:15:15","date_gmt":"2017-02-24T17:15:15","guid":{"rendered":"https:\/\/blogs.mentor.com\/verificationhorizons\/?p=12743"},"modified":"2026-03-27T08:38:08","modified_gmt":"2026-03-27T12:38:08","slug":"the-walking-lrm","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/2017\/02\/24\/the-walking-lrm\/","title":{"rendered":"The Walking LRM"},"content":{"rendered":"<p>My <a href=\"http:\/\/go.mentor.com\/10years-of-sv\" target=\"_blank\" rel=\"noopener\">last blog post<\/a> was written a few years ago before attending a conference when I was reminiscing about the 10-year history of SystemVerilog. Now I\u2019m writing about going to another conference, <a href=\"https:\/\/dvcon.org\/\" target=\"_blank\" rel=\"noopener\">DVCon<\/a>, and being part of a <a href=\"https:\/\/dvcon.org\/content\/event-details?id=222-28\" target=\"_blank\" rel=\"noopener\">panel<\/a> reminiscing about the 15-year history of SystemVerilog and envisioning its future. <i>My<\/i> history with SystemVerilog goes back much further.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright \" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/en\/2\/28\/The_soul_of_a_new_machine_--_book_cover.jpg\" alt=\"Soul of a New Machine\" width=\"129\" height=\"196\" \/>My first job out of college was working with a group of Data General (DG) engineers made public in the book, <a href=\"http:\/\/www.goodreads.com\/book\/show\/7090.The_Soul_of_a_New_Machine\" target=\"_blank\" rel=\"noopener\"><i>Soul of a New Machine<\/i><\/a>, by Tracy Kidder in 1981. Part of my job was writing a program that simulated the microcode of the CPUs we designed. Back then, there were no hardware description languages and you had to hard code everything for each CPU. If you were lucky you could reuse some of the code for the user interface between projects. Later, DG came up with a somewhat more general-purpose simulation language. It was general-purpose in the sense that it could be used for a wider range of projects based on the way DG developed hardware. But getting it to work in another company\u2019s environment would have been a challenge. \u00a0By the way, <a href=\"https:\/\/www.mentor.com\/company\/news\/mentor-acquires-calypto-design-systems\" target=\"_blank\" rel=\"noopener\">Badru Agarwala<\/a> was the DG simulation developer I worked with who later founded the Verilog simulation companies Frontline and Axiom. He now manages the Calypto division at Mentor Graphics.<\/p>\n<p>Many other processor companies like DEC, IBM and Intel had their own in-house simulation languages or were in the process of developing one because no commercially viable technologies existed. Eventually, <a href=\"http:\/\/archive.computerhistory.org\/resources\/access\/text\/2013\/11\/102746653-05-01-acc.pdf\" target=\"_blank\" rel=\"noopener\">Phil Moorby at Gateway Design<\/a> began developing the Verilog language and simulator. One of the benefits of having an independent language, although not an <i>official<\/i> standard yet, was you could now share or bring in models from outside your company. This includes being able to hand off a Verilog netlist to another company for manufacturing. Another benefit was that companies could now focus on the design and verification of their products instead of the design and verification of tools that design and verify their products.<\/p>\n<p>I evaluated Verilog in its first year of release back in 1985\/1986. DG decided not to adopt Verilog at that point, but I liked it so much I left DG and joined Gateway Design as one of its first application engineers. Dropping another name, Karen Bartleson was one of my\u00a0first customers as a CAD manager working at <a href=\"http:\/\/www.prnewswire.com\/news-releases\/united-technologies-corp-to-sell-utmc-microelectronic-systems-77433597.html\" target=\"_blank\" rel=\"noopener\">UTMC<\/a>. She recently took the office of <a href=\"https:\/\/www.ieee.org\/about\/corporate\/leadership.html#sect1\" target=\"_blank\" rel=\"noopener\">President and CEO of the IEEE<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft \" src=\"https:\/\/www.ieee.org\/documents\/ieee_mb_blue.jpg\" alt=\"IEEE\" width=\"135\" height=\"40\" \/>Fast forward to the next decade, when Verilog became standardized as IEEE 1364-1995. But by then it had already lost ground in the verification space. Companies went back to developing their own in-house verification solutions. Sun Microsystems developed <a href=\"http:\/\/www.chris.spear.net\/openvera\/default.htm\" target=\"_blank\" rel=\"noopener\">Vera<\/a> and later released it as a commercial product marketed by Systems Science. <a href=\"https:\/\/www.linkedin.com\/in\/arturo-salz-4840763\" target=\"_blank\" rel=\"noopener\">Arturo Salz<\/a> was one of its developers and will be on the <a href=\"https:\/\/dvcon.org\/content\/event-details?id=222-28\" target=\"_blank\" rel=\"noopener\">DVCon panel<\/a> with me as well. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Specman\" target=\"_blank\" rel=\"noopener\">Specman<\/a> was developed for National Semiconductor and a few other clients and later marketed by <a href=\"http:\/\/www.eetimes.com\/document.asp?doc_id=1152372\" target=\"_blank\" rel=\"noopener\">Verisity<\/a>. Once again, we had the problem of competing independent languages and therefore limiting the ability to share or acquire verification models. So, in 1999, a few Gateway alums and others <a href=\"http:\/\/www.eetimes.com\/document.asp?doc_id=1139260\" target=\"_blank\" rel=\"noopener\">formed a startup<\/a> which I joined a year later hoping to consolidate design and verification back into one standard language. That language was SUPERLOG and became the starting point for the Accellera <a href=\"http:\/\/www10.edacafe.com\/nbc\/articles\/view_article.php?section=Magazine&amp;articleid=209288\" target=\"_blank\" rel=\"noopener\">SystemVerilog 3.0<\/a> standard in 2002, fifteen years ago.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright \" src=\"https:\/\/blogs.sw.siemens.com\/wp-content\/uploads\/sites\/54\/2009\/12\/ieee-std-1800-2009.jpg\" alt=\"IEEE Std 1800-2012\" width=\"162\" height=\"206\" \/>There are many dates you could pick for the start of SystemVerilog. You could claim it couldn\u2019t exist until there was a simulator supporting some of the features in the standard. For me, it started when I first read an early Verilog Language Reference Manual and executed my first <strong>initial<\/strong> block 31 years ago. I\u2019ve been using Verilog almost every day since. And now all of Verilog is part of SystemVerilog. I\u2019ve been so much a part of the development of the language from its early beginnings; that\u2019s why some of my colleagues call me \u201cThe Walking LRM\u201d. Luckily, I don\u2019t dream about it. I hope I never get called \u201cThe Sleeping LRM\u201d.<\/p>\n<p>So, what\u2019s next for SystemVerilog? Are we going to repeat the cycle of fragmentation and re-consolidation? Various extensions have already begun showing up in different implementations. SystemVerilog has become so complex that no one can keep a good portion of it in their head anymore. It is very difficult to remove anything once it is in the LRM. Should we start over? We tried to do that with SUPERLOG, but no one adopted it until it was made fully backward compatible with Verilog.<\/p>\n<p>The <a href=\"http:\/\/accellera.org\/community\/uvm\" target=\"_blank\" rel=\"noopener\">Universal Verification Methodology<\/a> (UVM) was designed to cut down the complexity of learning and using SystemVerilog. There are now a growing number of sub-methodologies for using the UVM because the UVM itself has exploded in complexity \u00a0(<a href=\"https:\/\/verificationacademy.com\/uvm-framework\" target=\"_blank\" rel=\"noopener\">UVM Framework<\/a> and <a href=\"http:\/\/www.doulos.com\/content\/events\/easierUVM.php\" target=\"_blank\" rel=\"noopener\">Easier UVM<\/a> to name a couple). I have also taken my own approach when teaching people SystemVerilog by showing a minimal subset (See my <a href=\"http:\/\/go.mentor.com\/SV-OOP\" target=\"_blank\" rel=\"noopener\">SystemVerilog OOP for UVM Verification<\/a> course).<\/p>\n<p><a href=\"http:\/\/www.DVCon.org\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" alignleft\" src=\"https:\/\/dvcon.org\/sites\/dvcon.org\/files\/2017DVConUS_logo.png\" alt=\"DVCon\" width=\"157\" height=\"95\" \/><\/a>I do believe in the <a href=\"http:\/\/people.apache.org\/~fhanik\/kiss.html\" target=\"_blank\" rel=\"noopener\">KISS principle<\/a> of Engineering and I hope that is what prevails in the next version of SystemVerilog, whether we start over or just make refinements. I hope you will be able to join the discussion with others and me at the <a href=\"https:\/\/dvcon.org\/content\/event-details?id=222-28\" target=\"_blank\" rel=\"noopener\">DVCon panel<\/a> next week, or in the forums in the <a href=\"https:\/\/verificationacademy.com\/forums\/all-topics\/all\" target=\"_blank\" rel=\"noopener\">Verification Academy<\/a>, or on <a href=\"https:\/\/twitter.com\/dave_59\" target=\"_blank\" rel=\"noopener\">Twitter<\/a>.<\/p>\n<p><em>-Dave<\/em><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My last blog post was written a few years ago before attending a conference when I was reminiscing about the&#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":[307,313,326,442,506,528,533,540,718,732,751,787,831],"industry":[],"product":[],"coauthors":[],"class_list":["post-12743","post","type-post","status-publish","format-standard","hentry","category-news","tag-307","tag-313","tag-accellera","tag-dvcon","tag-functional-verification","tag-ieee","tag-ieee-1800","tag-ieee-sa","tag-simulation","tag-standards","tag-systemverilog","tag-uvm","tag-verilog"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/12743","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=12743"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/12743\/revisions"}],"predecessor-version":[{"id":19841,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/posts\/12743\/revisions\/19841"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/media?parent=12743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/categories?post=12743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/tags?post=12743"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/industry?post=12743"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/product?post=12743"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/verificationhorizons\/wp-json\/wp\/v2\/coauthors?post=12743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}