<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.alse-fr.com/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="en">
	<title>A.L.S.E the FPGA Experts</title>
	<link>https://www.alse-fr.com/</link>
	<description>A.L.S.E: Advanced Logic Synthesis for Electronics, offers a complete range of Services, IPs, Training courses and Boards to help you with the design of FPGA-based and EmbeddedSystems.</description>
	<language>en</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.alse-fr.com/spip.php?id_rubrique=36&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>A.L.S.E the FPGA Experts</title>
		<url>https://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L144xH42/siteon0-d414d.png?1782755771</url>
		<link>https://www.alse-fr.com/</link>
		<height>42</height>
		<width>144</width>
	</image>



<item xml:lang="en">
		<title>Do I need SystemVerilog ?</title>
		<link>https://www.alse-fr.com/Do-I-need-SystemVerilog.html</link>
		<guid isPermaLink="true">https://www.alse-fr.com/Do-I-need-SystemVerilog.html</guid>
		<dc:date>2016-09-23T17:06:12Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		



		<description>
&lt;p&gt;We assume you are an FPGA Designer. If you're not already fluent in SystemVerilog (SV), then you may wonder whether it's worth the effort (to learn this huge new language). We'll try here to provide some answers. You've been using VHDL for years (or just beginning), and you hear sometimes that you should abandon it right away and switch to SystemVerilog (sometimes noted &#8220;SV&#8221; in the following). But you may also hear horror stories about people discouraged by the breadth and complexity of (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.alse-fr.com/-SystemVerilog-.html" rel="directory"&gt;SystemVerilog&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;We assume you are an &lt;abbr title=&#034;Field Programmable Gate Array. Standard devices that are customized at power up by loading a Programming pattern (aka bitstream) contained in a non-volatile memory. Users can develop completely custom functions and applications with off-the-shelf FPGAs.&#034;&gt;FPGA&lt;/abbr&gt; Designer. &lt;br class='manualbr' /&gt;If you're not already fluent in &lt;abbr title=&#034;SystemVerilog (IEEE standard 1800) is an HDVL (Hardware Description &amp;#38; Verification Language). _ This is the Language that now supersedes both Verilog and VHDL, thus becoming the de facto Language of the next 20 years.&#034;&gt;SystemVerilog&lt;/abbr&gt; (SV), then you may wonder whether it's worth the effort (to learn this huge new language). &lt;br class='manualbr' /&gt;We'll try here to provide some answers.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;You've been using &lt;abbr title=&#034;VHSIC Hardware Description Language. _ A consequence of the US DOD's VHSIC program, this language (normalized as IEEE 1076) was created to describe accurately the behavior of High Speed Integrated Circuits.&#034;&gt;VHDL&lt;/abbr&gt; for years (or just beginning), and you hear sometimes that you should abandon it right away and switch to &lt;abbr title=&#034;SystemVerilog (IEEE standard 1800) is an HDVL (Hardware Description &amp;#38; Verification Language). _ This is the Language that now supersedes both Verilog and VHDL, thus becoming the de facto Language of the next 20 years.&#034;&gt;SystemVerilog&lt;/abbr&gt; (sometimes noted &#8220;SV&#8221; in the following). But you may also hear horror stories about people discouraged by the breadth and complexity of SystemVerilog.&lt;/p&gt;
&lt;p&gt;At ALSE, we've been there, done that.&lt;/p&gt;
&lt;p&gt;As a 32+ years-old French Design House, initially with a majority of European customers, our main design language has been VHDL, though we had our share of &lt;abbr title=&#034;The first (in order of appearance) Hardware Description Language (like VHDL which followed a few years later). Normalized as IEEE 1364.&#034;&gt;Verilog&lt;/abbr&gt; designs for some customers. We still have a slight preference for VHDL against Verilog at least for design, but we've convinced ourselves long ago that SystemVerilog was a clear long-term winner. &lt;br class='manualbr' /&gt;And quite logically, for our complex IPs, we have switched a while ago to SystemVerilog.
If you attend one of our Trainings, you'll see how enthusiastic we are about using SystemVerilog !&lt;/p&gt;
&lt;p&gt;Let's see some facts about this &#8220;Language War&#8221; and bust some myths.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Note &lt;/h2&gt;
&lt;p&gt;If you are an &lt;strong&gt;&lt;abbr title=&#034;Application Specific Integrated Circuit. It is a Custom Design chip implementing usually many functions and designed by a customer. As opposed to Programmable devices or to ASSPs.&#034;&gt;ASIC&lt;/abbr&gt;&lt;/strong&gt; designer, then you already master Verilog ! Because Verilog is absolutely compulsory in ASIC flows.&lt;br class='manualbr' /&gt;If you are an &lt;abbr title=&#034;Field Programmable Gate Array. Standard devices that are customized at power up by loading a Programming pattern (aka bitstream) contained in a non-volatile memory. Users can develop completely custom functions and applications with off-the-shelf FPGAs.&#034;&gt;FPGA&lt;/abbr&gt; Designer, you may or may not know Verilog already.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Any Designer should master both VHDL &lt;em class=&#034;spip&#034;&gt;and&lt;/em&gt; Verilog&lt;/h2&gt;
&lt;p&gt;It's not a new fact ! Neither VHDL nor Verilog did grab all the shares and we still see both being used throughout the world and various industries. If you receive an &lt;abbr title=&#034;Intellectual Property. A usually complex function developed, tested and sold off-the-shelf to be re-used in customer's designs. Ranges from Processor cores to Memory Controllers to Video processing blocks etc&#8230; Some IPs are available from the FPGA vendor (free or at cost) or from 3rd parties.&#034;&gt;IP&lt;/abbr&gt;, it can be in Verilog or VHDL (and now SystemVerilog for recent ones).&lt;br class='manualbr' /&gt;In some (many) FPGA design flows, you'll see the tool generate or use Verilog anyway&#8230;&lt;br class='manualbr' /&gt;If you use behavioral models (like for memories), chances are they'll be in Verilog.&lt;/p&gt;
&lt;p&gt;If you only master one of the two languages, you have no excuse ! With our instructor-led training, we teach Verilog to VHDL designers in just &lt;em class=&#034;spip&#034;&gt;one&lt;/em&gt; (intense) day. That's all it takes. So it's clearly a modest investment, and it does allow you to be at ease with &lt;abbr title=&#034;Hardware Description Language. _ Some HDLs are : Verilog, SystemVerilog, VHDL, SystemC. _ First-generation (now obsolete) HDLs : Abel, CUPL etc&#034;&gt;HDL&lt;/abbr&gt; code in both languages.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Do I need Verilog before SystemVerilog ?&lt;/h2&gt;
&lt;p&gt;SystemVerilog is a superset of Verilog, which it does encompass. So if you start from scratch, you would need in any case to learn the Verilog concepts before learning all that has been added on top of it.&lt;/p&gt;
&lt;p&gt;Another reason to start with Verilog, then add SystemVerilog extensions, is that it will help you understand how to write code that remains compatible with the Verilog tools and flow. In many cases, you may need to stay within the Verilog language boundaries (because of some tools).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Isn't SystemVerilog a HUGE language ?&lt;/h2&gt;
&lt;p&gt;Yes !&lt;br class='manualbr' /&gt;With a 1315 pages Language Reference Manual for the P1800-2017 version, and (at least) FIVE complex languages rolled into one, it's hard to disagree ! By the way: thanks to &lt;a href=&#034;http://accellera.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Accellera&lt;/a&gt;, the SystemVerilog 1800-2017 IEEE &lt;abbr title=&#034;Language Reference Manual. The &#8220;bible&#8221; of the language, which completely defines the standard.&#034;&gt;LRM&lt;/abbr&gt; is available &lt;a href=&#034;https://ieeexplore.ieee.org/document/8299595&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;free of charge&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;But this doesn't mean you have to learn ALL of it at once !
The trick is to learn (and master) &lt;em class=&#034;spip&#034;&gt;exactly what you need&lt;/em&gt; and not more (well, it's already quite significant). You'll see that you can take advantage of 80% of the language benefits with only 20% of the efforts, and that's exactly what us, Engineers, love to hear.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;And what about &lt;abbr title=&#034;Universal Verification Methodology. The convergence of many different vendor-specific Methodologies and the only one that is here to stay. It is based on SystemVerilog and especially the Classes (OOP) part of it. UVM is hard to learn and master.&#034;&gt;UVM&lt;/abbr&gt; ?&lt;/h2&gt;
&lt;p&gt;UVM is a completely different story (than SystemVerilog) ! You &lt;strong&gt;must&lt;/strong&gt; learn SystemVerilog, but you &lt;em class=&#034;spip&#034;&gt;might&lt;/em&gt; want to adopt UVM for Verification.&lt;/p&gt;
&lt;p&gt;The only relationship is that UVM is based on SystemVerilog Verification Classes, so you can't learn UVM without learning SystemVerilog &lt;em class=&#034;spip&#034;&gt;and&lt;/em&gt; specifically its Object-Oriented-Programming (OOP) part (&#8220;the Verification Classes&#8221;).&lt;br class='manualbr' /&gt;But clearly, you can take advantage of SystemVerilog while not using UVM.&lt;/p&gt;
&lt;p&gt;We will dedicate a separate article to UVM, just note at this point that it's way harder to learn and master than SystemVerilog for Design &amp; Verification!&lt;/p&gt;
&lt;p&gt;Keep in, mind that, at ALSE, we &lt;strong&gt;have UVM expertise&lt;/strong&gt; not only to train you, but also to help you and take care of designing for you the complex testing environments based on UVM that you need.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;The Best Path to SystemVerilog&lt;/h2&gt;
&lt;p&gt;After applying it to ourselves and teaching it to hundreds of Engineers, we have accumulated a lot of success in the following approach :&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Learn &lt;strong&gt;&#8220;Verilog for VHDL Users&#8221; &lt;/strong&gt; if you're not fully up-to-speed yet with Verilog (1 or 2 days)&lt;/li&gt;&lt;li&gt; Learn&lt;strong&gt; &#8220;SystemVerilog for Design &amp; Verification&#8221;&lt;/strong&gt; (3 days)
&#8230; and stop here, at least for a while !&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;You will master :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Coding style for efficient &lt;abbr title=&#034;Register Transfer Level. Simply put: it's HDL code that is suitable for synthesis. Which mean in practice describing what happens on rising edges of a Clock.&#034;&gt;RTL&lt;/abbr&gt; while taking advantage of the superior features of SV.&lt;/li&gt;&lt;li&gt; Interfaces (which are absolutely suitable for synthesis !)&lt;/li&gt;&lt;li&gt; SystemVerilog Assertions !&lt;br class='manualbr' /&gt;This is a fantastic way to enhance your code and ease the verification.&lt;/li&gt;&lt;li&gt; Advanced semantic for safer code and more efficient logic optimization&lt;/li&gt;&lt;li&gt; Better expressiveness&lt;/li&gt;&lt;li&gt; How to avoid usual pitfalls&lt;/li&gt;&lt;li&gt; How to work around some irritating &#8220;features&#8221;&lt;/li&gt;&lt;li&gt; How to take advantage of some tools to secure the code
But the highest gains in productivity will come from the &lt;em class=&#034;spip&#034;&gt;Verification&lt;/em&gt; features of SV :&lt;/li&gt;&lt;li&gt; ABV : using SV Assertions for both RTL and Verification modules.&lt;br class='manualbr' /&gt;Note that Assertions also provide free functional coverage !&lt;/li&gt;&lt;li&gt; Test benches (aka test fixtures) and behavioral models.&lt;br class='manualbr' /&gt;For both, SV offers a tremendous improvement over VHDL.&lt;/li&gt;&lt;li&gt; Stimuli Generation (Constrained Random).&lt;/li&gt;&lt;li&gt; Functional coverage (from SVA and Covergroups).&lt;/li&gt;&lt;li&gt; Cover-driven simulation to minimize simulation time while ensuring that coverage goals are met.&lt;/li&gt;&lt;li&gt; Enhanced data types to facilitate Modelling and Verification.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Yes, we can teach this -and more- in just 3 (intensive) days.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Reasonable Pain, Huge Gains !&lt;/h2&gt;
&lt;p&gt;You can augment radically your productivity as well as the quality of your designs, and make your Verification fly.&lt;/p&gt;
&lt;p&gt;You'll master and use :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Assertions (SVA) -everywhere !-&lt;/li&gt;&lt;li&gt; Interfaces&lt;/li&gt;&lt;li&gt; Enhanced Synthesis constructs&lt;/li&gt;&lt;li&gt; Enhanced Data types for Synthesis&lt;/li&gt;&lt;li&gt; Packages&lt;/li&gt;&lt;li&gt; Enhanced Data types for Modelling and Verification&lt;/li&gt;&lt;li&gt; Constrained Random&lt;/li&gt;&lt;li&gt; Functional Coverage&lt;/li&gt;&lt;li&gt; Cover-driven simulation&lt;/li&gt;&lt;li&gt; Basics of Enhanced Process control&lt;/li&gt;&lt;li&gt; And maybe a bit of DPI&lt;/li&gt;&lt;li&gt; Understand how to enhance your design &amp; verification Methodology.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;It's often just not an option&lt;/h2&gt;
&lt;p&gt;Verification is more and more demanding and certification authorities -for the first time- start mentioning explicitly SystemVerilog (and UVM) as the right tools to achieve the certification goals. One of the magical words is &#8220;Functional Coverage&#8221;. Gone are the days when the famous &#8220;100% statement coverage&#8221; made the quality dept guys happy.&lt;/p&gt;
&lt;p&gt;And if your project deserves the use of formal tools, you'll remember that they take SVA as input !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;As a conclusion, the question is not IF you'll adopt &lt;abbr title=&#034;SystemVerilog (IEEE standard 1800) is an HDVL (Hardware Description &amp;#38; Verification Language). _ This is the Language that now supersedes both Verilog and VHDL, thus becoming the de facto Language of the next 20 years.&#034;&gt;SystemVerilog&lt;/abbr&gt;, but just WHEN.&lt;br class='manualbr' /&gt;The early adopters phase is long gone now. You just need to prepare yourself in the most efficient way. &lt;br class='manualbr' /&gt;And we can help you.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>



</channel>

</rss>