<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://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="http://www.alse-fr.com/spip.php?id_rubrique=29&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>A.L.S.E the FPGA Experts</title>
		<url>http://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>What is IO Checker ?</title>
		<link>http://www.alse-fr.com/What-is-IO-Checker.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/What-is-IO-Checker.html</guid>
		<dc:date>2024-03-14T17:18:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		



		<description>
&lt;p&gt;If you are involved with designing a board with an FPGA on it, starting with the schematics and ending in a functional PCB, then this article is four you ! Rationale Today more than ever, doing things quickly and right the first time is critical in any project. For HDL and Digital Design, we have created efficient training courses that help achieving rapid success through rigorous coding and a robust Methodology. But when it comes to schematics and PCB layout, the situation is much (&#8230;)&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-IO-Checker-.html" rel="directory"&gt;IO Checker&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;If you are involved with designing a board with 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; on it, starting with the schematics and ending in a functional &lt;abbr title=&#034;Printed Circuit Board. A key and potentially extremely complex piece in any project.&#034;&gt;PCB&lt;/abbr&gt;, then this article is four you !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Rationale&lt;/h2&gt;
&lt;p&gt;Today more than ever, doing things quickly and right the first time is critical in any project.&lt;/p&gt;
&lt;p&gt;For &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; and Digital Design, we have created efficient training courses that help achieving rapid success through rigorous coding and a robust Methodology.&lt;/p&gt;
&lt;p&gt;But when it comes to schematics and &lt;abbr title=&#034;Printed Circuit Board. A key and potentially extremely complex piece in any project.&#034;&gt;PCB&lt;/abbr&gt; layout, the situation is much more complex. &lt;br class='manualbr' /&gt;One of the issue is the complexity of modern FPGAs (with hundreds or thousands of pins to assign, with a lot of different power supplies, and with electrical standards and pin out constraints that are extremely difficult to manage).&lt;br class='manualbr' /&gt;Indeed, there are many other issues (from creating valid hardware to anticipating signal integrity issues) but the task of managing power supply nets and creating all the pin assignments in general is often underestimated&#8230; until it needs to be performed !&lt;/p&gt;
&lt;p&gt;In any case, nobody wants to receive a batch of prototypes to discover the &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; is not usable due to incorrect pin assignments ! Do you plan for the cost (and delay) of a complex PCB respin ?&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;A big helper&lt;/h2&gt;
&lt;p&gt;We have discovered and we use now &lt;strong&gt;IO Checker&lt;/strong&gt;, from HDL Works. It removes the frustration of long, painful, and error-prone task of assigning all the pins between the schematics and the FPGA tools, including the pins that don't show in the source code (Supplies, Grounds, NC, Programming, JTag, Special purposes, external memories, etc). IO Checker knows the purpose of all the pins of your FPGA !&lt;/p&gt;
&lt;p&gt;We can help you verify your schematics, but we think it's better if you can handle this yourself, especially to optimize your iterations, reduce your schematics and FPGA design time, and make sure the transition to the PCB will be smooth and without error.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;See for yourself&lt;/h2&gt;
&lt;p&gt;On the &lt;a href=&#034;https://www.hdlworks.com/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;HDL Works&lt;/a&gt; website, you will find the &lt;a href=&#034;https://www.hdlworks.com/products/iochecker/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;IO Checker section&lt;/a&gt; and this &lt;a href=&#034;https://www.hdlworks.com/videos/iochecker/ioc_verify/ioc_verify.webm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Introduction video&lt;/a&gt; which clearly presents IO Checker.&lt;/p&gt;
&lt;p&gt;You'll find &lt;a href=&#034;https://www.hdlworks.com/products/iochecker/video_constraints.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;another video&lt;/a&gt; showing how to create, verify and maintain the pin assignment constraints.&lt;/p&gt;
&lt;p&gt;Take a look at the videos !&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Practical Example&lt;/h2&gt;
&lt;p&gt;We have the plan to write an Application Note showing how we used IO Checker to verify a very complex Agilex 7 board. Stay tuned.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Floating Points in FPGAs</title>
		<link>http://www.alse-fr.com/Floating-Points-in-FPGAs.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/Floating-Points-in-FPGAs.html</guid>
		<dc:date>2024-02-28T09:58:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/logo/ieee754-2.jpg" length="116782" type="image/jpeg" />



		<description>
&lt;p&gt;Are you tempted about using Floating Point vectors (&#8220;Reals&#8221;) in your next FPGA project ? Can this be done ? How ? Is it a good idea ? Then this Application Note (an extract from our FPGA Design Training course) is for you&#8230;&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-Application-Notes-.html" rel="directory"&gt;Application Notes&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L150xH60/ieee754-2-bf454.jpg?1782818121' class='spip_logo spip_logo_right' width='150' height='60' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Are you tempted about using Floating Point vectors (&#8220;Reals&#8221;) in your next &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; project ?
Can this be done ? How ?
Is it a good idea ?&lt;/p&gt;
&lt;p&gt;Then this Application Note (an extract from our FPGA Design Training course) is for you&#8230;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/pdf/floatingpoints_apnote-2.pdf" length="435881" type="application/pdf" />
		

	</item>
<item xml:lang="en">
		<title>UARTs &amp; RS232</title>
		<link>http://www.alse-fr.com/UARTs-RS232.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/UARTs-RS232.html</guid>
		<dc:date>2024-02-13T10:57:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/logo/rs232_scope1920.jpg" length="89588" type="image/jpeg" />



		<description>
&lt;p&gt;In 2024, some may consider that UARTs (and RS232) are a thing of the past. They couldn't be more wrong ! An RS232 link is the simplest way to exchange any kind of information between to points ! From the simplest microprocessors to the most complex Systems On Chips and Embedded processors, all have at least one UART. This is a fundamental means to monitor and debug a system. And, good news ! * A UART is very simple to design in an FPGA. * It is a very small block easy to add in a (&#8230;)&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-Application-Notes-.html" rel="directory"&gt;Application Notes&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L150xH53/rs232_scope1920-2d95f.jpg?1782818121' class='spip_logo spip_logo_right' width='150' height='53' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;In 2024, some may consider that UARTs (and RS232) are a thing of the past.&lt;br class='manualbr' /&gt;They couldn't be more wrong !&lt;/p&gt;
&lt;p&gt;An RS232 link is the simplest way to exchange any kind of information between to points ! From the simplest microprocessors to the most complex Systems On Chips and Embedded processors, all have at least one UART. This is a fundamental means to monitor and debug a system.&lt;/p&gt;
&lt;p&gt;And, good news ! &lt;br class='manualbr' /&gt;* A UART is very simple to design in 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;.&lt;br class='manualbr' /&gt;* It is a very small block easy to add in a nearly full FPGA.&lt;br class='manualbr' /&gt;* It can run at very high speeds, easily at 1 Mega bauds.&lt;/p&gt;
&lt;p&gt;This Application Note will teach all you need to know from the low level physical protocol to the designing your own UART in any FPGA !&lt;/p&gt;
&lt;div class='spip_document_197 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;26&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='http://www.alse-fr.com/sites/alse-fr.com/IMG/pdf/an_rs232-2.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 167.3 KiB' type=&#034;application/pdf&#034;&gt;&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1782754760' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-197 '&gt;&lt;strong&gt;RS232 &amp; UARTs Basics
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>Using the LT24 / ILI9341</title>
		<link>http://www.alse-fr.com/Using-the-LT24-ILI9341.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/Using-the-LT24-ILI9341.html</guid>
		<dc:date>2022-09-07T09:18:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/logo/lt24.png" length="223077" type="image/png" />



		<description>
&lt;p&gt;This (2017) complete Application Note shows how to control the LT24 LCD Display from an FPGA kit. Even if you use a different LCD controller, or a different FPGA kit, you could be interested in the techniques used in this Application Note.&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-Application-Notes-.html" rel="directory"&gt;Application Notes&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L150xH41/lt24-0aaf2.png?1782818121' class='spip_logo spip_logo_right' width='150' height='41' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;This (2017) complete Application Note shows how to control the LT24 LCD Display from 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; kit.
Even if you use a different LCD controller, or a different FPGA kit, you could be interested in the techniques used in this Application Note.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/pdf/an_lt24_v2.pdf" length="462539" type="application/pdf" />
		

	</item>
<item xml:lang="en">
		<title>Gowin</title>
		<link>http://www.alse-fr.com/Gowin.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/Gowin.html</guid>
		<dc:date>2022-09-07T08:51:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/logo/littlebee.png" length="480525" type="image/png" />



		<description>
&lt;p&gt;If you just bought the TEC0117 GOWIN LittleBee FPGA module, you can follow this small Application Note to go through the whole process of setting up the Gowin tools, creating a simple project and testing it on the FPGA board. If you don't have the board, you can still follow the step to have a view of the Gowin design flow. This small and simple Application Note was created since the available Gowin documentation is spread over many documents and videos. Note : the TEC0117 GOWIN (&#8230;)&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-Application-Notes-.html" rel="directory"&gt;Application Notes&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L150xH46/littlebee-00035.png?1782818121' class='spip_logo spip_logo_right' width='150' height='46' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;If you just bought the &lt;strong&gt;TEC0117 GOWIN LittleBee &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;&lt;/strong&gt; module, you can follow this small Application Note to go through the whole process of setting up the Gowin tools, creating a simple project and testing it on the FPGA board.&lt;br class='manualbr' /&gt;If you don't have the board, you can still follow the step to have a view of the Gowin design flow.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;This small and simple Application Note was created since the available Gowin documentation is spread over many documents and videos.&lt;/p&gt;
&lt;p&gt;Note : the TEC0117 GOWIN LittleBee &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; module should be available again from Trenz Electronic mid-April 2024.&lt;/p&gt;
&lt;p&gt;Whether you have the module or not, you can follow the steps to discover the Gowin FPGA design flow. This document has been update end Feb 2024.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/pdf/tec0117_apnote.pdf" length="185684" type="application/pdf" />
		

	</item>
<item xml:lang="en">
		<title>Designing for Stratix 10 &amp; Agilex FPGAs</title>
		<link>http://www.alse-fr.com/Designing-for-Stratix-10-FPGAs.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/Designing-for-Stratix-10-FPGAs.html</guid>
		<dc:date>2017-08-16T10:21:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/logo/agilex.png" length="263427" type="image/png" />



		<description>
&lt;p&gt;The Intel 14 nm Stratix 10, and even more the newer Intel 10 nm Agilex FPGA families offer unprecedented performance. However, taking full advantage of these architectures and associated design tools requires to adopt new design techniques and use a new generation of tools. We have the proper trainings offer to help customers. This ApNote is merely an illustration of how to achieve simply good performance with little efforts. Ultimate performance will require more efforts, but starting (&#8230;)&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-Application-Notes-.html" rel="directory"&gt;Application Notes&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L150xH47/agilex-029cf.png?1782818121' class='spip_logo spip_logo_right' width='150' height='47' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;The Intel 14 nm Stratix 10, and even more the newer Intel 10 nm &lt;strong&gt;Agilex &lt;/strong&gt; &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; families offer unprecedented performance.&lt;/p&gt;
&lt;p&gt;However, taking full advantage of these architectures and associated design tools requires to adopt new design techniques and use a new generation of tools. We have the proper trainings offer to help customers.&lt;/p&gt;
&lt;p&gt;This ApNote is merely an illustration of how to achieve simply good performance with little efforts.
Ultimate performance will require more efforts, but starting from a sound design will always help.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>NUMERIC_STD Issues.</title>
		<link>http://www.alse-fr.com/20-NUMERIC_STD-Issue.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/20-NUMERIC_STD-Issue.html</guid>
		<dc:date>2017-03-01T13:28:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/logo/numstd.png" length="79284" type="image/png" />



		<description>&lt;p&gt;This article describes two problems I found in NUMERIC_STD.&lt;br class='manualbr' /&gt;Conclusions : do not multiply signed or unsigned vectors by an integer, and be careful with with the resize function !&lt;/p&gt;

-
&lt;a href="http://www.alse-fr.com/-VHDL-helper-.html" rel="directory"&gt;VHDL helper&lt;/a&gt;


		</description>


 <content:encoded>&lt;img src='http://www.alse-fr.com/sites/alse-fr.com/local/cache-vignettes/L150xH31/numstd-90454.png?1782813971' class='spip_logo spip_logo_right' width='150' height='31' alt=&#034;&#034; /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Description&lt;/h2&gt;
&lt;p&gt;The IEEE numeric_std library issued (eg) in Nov 1994, and which (as of 2022) is still used in the latest versions of the Simulation and Synthesis tools, implements incorrectly the multiplications of signed/unsigned vectors by an integer. Moreover, the resize function it includes can produce incorrect results without warning.&lt;/p&gt;
&lt;p&gt;Fixing these functions is not difficult but my attempts to have the &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; working group fix this library have been unsuccessful. As a consequence, you should understand and take into account these &#8220;features&#8221;. This is the purpose of this page.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Multiplication issue : Functions affected&lt;/h2&gt;
&lt;p&gt;Here are the original prototypes (in IEEE.numeric_std) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; -- Id: A.17 function &#034;*&#034; ( L: UNSIGNED; R: NATURAL) return UNSIGNED; -- Result subtype: UNSIGNED((L'length+L'length-1) downto 0). -- Result: Multiplies an UNSIGNED vector, L, with a non-negative -- INTEGER, R. R is converted to an UNSIGNED vector of -- SIZE L'length before multiplication. -- Id: A.18 function &#034;*&#034; ( L: NATURAL; R: UNSIGNED) return UNSIGNED; -- Result subtype: UNSIGNED((R'length+R'length-1) downto 0). -- Result: Multiplies an UNSIGNED vector, R, with a non-negative -- INTEGER, L. L is converted to an UNSIGNED vector of -- SIZE R'length before multiplication. -- Id: A.19 function &#034;*&#034; ( L: SIGNED; R: INTEGER) return SIGNED; -- Result subtype: SIGNED((L'length+L'length-1) downto 0) -- Result: Multiplies a SIGNED vector, L, with an INTEGER, R. R is -- converted to a SIGNED vector of SIZE L'length before -- multiplication. -- Id: A.20 function &#034;*&#034; ( L: INTEGER; R: SIGNED) return SIGNED; -- Result subtype: SIGNED((R'length+R'length-1) downto 0) -- Result: Multiplies a SIGNED vector, R, with an INTEGER, L. L is -- converted to a SIGNED vector of SIZE R'length before -- multiplication.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Multiplication Issue&lt;/h2&gt;
&lt;p&gt;As we can see above (in the comments), when multiplying a vector by an integer, the integer is converted into a vector &lt;em class=&#034;spip&#034;&gt;of the same width as the other operand&lt;/em&gt; !!!&lt;/p&gt;
&lt;p&gt;As a consequence, the result's width is forced to two times the width of the signed/unsigned vector, just as if the vector was squared (multiplied by itself), which absolutely does NOT make sense.&lt;/p&gt;
&lt;p&gt;The result is either too short or too large.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Consequences&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Multiplying a vector by 1 (or a small integer) creates a vector twice as large. &lt;br class='manualbr' /&gt;Quite inefficient, a bit ridiculous, but relatively harmless.&lt;/li&gt;&lt;li&gt; Multiplying a 128-bits vector by 7 (eg) creates a 256-bits results.&lt;br class='manualbr' /&gt;Same remark as above.&lt;/li&gt;&lt;li&gt; The result of Multiplying an 8-bits unsigned vector by 256 is a 16-bits vector (okay by chance) but &lt;strong class=&#034;caractencadre-spip spip&#034;&gt;with a value of ZERO&lt;/strong&gt; ! See the test case included.&lt;br class='manualbr' /&gt;This is definitely VERY WRONG :-( and the multiplication result is not usable.&lt;/li&gt;&lt;li&gt; Multiplying a 8-bits signed vector by 1000 (decimal) produces an incorrect result (actually V * 232) and the result is limited to 16 bits anyway.&lt;br class='manualbr' /&gt;This is also very wrong.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Note that simulators will typically issue truncation warnings &lt;em class=&#034;spip&#034;&gt;during the simulation&lt;/em&gt; (run-time) in the most offending cases, or refuse to compile if the result width is not what the user believed (which is how I uncovered the issue).&lt;br class='manualbr' /&gt;But Synthesis tools will compile and generate hardware which can potentially produce incorrect results, and this is not acceptable.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Are these functions useful ?&lt;/h2&gt;
&lt;p&gt;Certainly. They are required by the principle of numeric_std which is to extend arithmetic operators to vectors that represent numbers (signed and unsigned).&lt;/p&gt;
&lt;p&gt;Moreover, Synthesis tools are usually relatively smart when they see multiplications by constants, in which case they know how to replace the multiplication by adder(s).&lt;/p&gt;
&lt;p&gt;However, their use has been limited (which explains why the incorrect implementation hasn't been reported heavily before).
One can note that the older Synopsys library &#8220;std_logic_arith&#8221; did not provide the multiplication of signed/unsigned vector by integers, and therefore could not have the same problem.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Repairing NUMERIC_STD ?&lt;/h2&gt;
&lt;p&gt;Fixing the affected functions is not complicated : it suffices to convert the natural or integer into a &lt;strong class=&#034;caractencadre-spip spip&#034;&gt;32-bits&lt;/strong&gt; vector !
The resulting width at least starts making some sense (=Operand width + 32) and no truncation / incorrect result can occur.
If the result is still too large for you (like when you multiply by an integer &lt;em class=&#034;spip&#034;&gt;range&lt;/em&gt;), you just have to resize the result. If you lose information in the resize (you resized into a too short vector), YOU WILL NOT GET A WARNING.&lt;/p&gt;
&lt;p&gt;&lt;strong class=&#034;caractencadre-spip spip&#034;&gt;BUT, the issue is that numeric_std will probably never be fixed !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So you have to take care of your code and make sure you are not affected by the library errors, as explained below.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In spite of the library clumsiness (shift operators, resize issue, and this bug in particular), I still keep recommending using numeric_std instead of other non-IEEE libraries.&lt;/p&gt;
&lt;p&gt;My &lt;a href='http://www.alse-fr.com/VHDL-Coding-Guide.html' class=&#034;spip_in&#034;&gt;&lt;strong&gt;VHDL Coding Style Guide&lt;/strong&gt;&lt;/a&gt; is updated :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Do not multiply signed/unsigned vectors by Integers.
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Use slices and adders if you multiply by an integer constant&lt;/li&gt;&lt;li&gt; Convert the integer in a properly sized signed or unsigned vector before multiplying.&lt;/li&gt;&lt;li&gt; Keep in mind that if resize creates an incorrect value due to truncation, you will NOT be warned !&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;and the older recommendation remains :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Avoid using shift/rotate operators from numeric_std (use slices &amp; concatenation)&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And finally : kudos to the brilliant Technical Support at Mentor / Model Technology !&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>VHDL Coding Guide</title>
		<link>http://www.alse-fr.com/VHDL-Coding-Guide.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/VHDL-Coding-Guide.html</guid>
		<dc:date>2016-11-08T18:34:05Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		



		<description>&lt;p&gt;This &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; Coding Guide can significantly help improve your coding style as well as the quality of your designs !&lt;/p&gt;

-
&lt;a href="http://www.alse-fr.com/-VHDL-Coding-Guide-40-.html" rel="directory"&gt;VHDL Coding Guide&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;By our (long) experience, many designers code without using any Coding Guide. &lt;br class='manualbr' /&gt;From the smallest one-man operation to the largest multi-national company, this is never a good thing.&lt;br class='manualbr' /&gt;However, we have also seen some totally &lt;em class=&#034;spip&#034;&gt;counter-productive&lt;/em&gt; Coding Guides ! (usually in large companies).&lt;br class='manualbr' /&gt;This was the motivation in creating this document in 2004. Surprisingly, this Guide has remained extremely stable, it has been unsed with permission in a lot of companies throughout the world, and the 2018 edition is very close to the original version, which is an indication of its quality !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;These rules and coding style are the result of more than 25 years of &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; design and teaching experience, hundreds of complex &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; &amp; &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; projects, hundreds of thousands of lines of code, and the development of a very rich portfolio of complex IPs serving customers all over the world.&lt;/p&gt;
&lt;p&gt;This Coding Guide is &#8220;reasonable&#8221;: small and simple enough to be easily remembered, &#8220;no-nonense&#8221; in that only useful rules have been kept. However it is covering a lot of the usual mistakes and it can significantly enhance the quality of the &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; code.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Caveat&lt;/h2&gt;
&lt;p&gt;It is probably useful to remind at this stage that :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Following the rules is not sufficient &lt;em class=&#034;spip&#034;&gt;per se&lt;/em&gt;: this Coding Guide is in no way teaching the fundamental principles that any HDL designer must master to create efficient and reliably working designs.&lt;br class='manualbr' /&gt;It is the purpose of our &lt;em class=&#034;spip&#034;&gt;Training Courses&lt;/em&gt; and especially our &#8220;FPGA Design Reliability&#8221; course !&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The other way around is also true: some of these rules can be bent while a correct, working, design is achieved, if there is a good understanding of the potential issues that may result.&lt;/li&gt;&lt;/ul&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; The Naming Conventions proposed here are not absolute rules. You may decide to adopt other naming conventions, but it is not acceptable to not have any naming convention enforced at all!&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;In summary, this document is only proposing a number of recommendations that, if followed, will reduce the design risks and globally augment the code quality and reliability.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Copyright ALSE&lt;/h2&gt;
&lt;p&gt;These Coding Rules are copyright ALSE. If you want to reproduce them or use them by any means, you must contact ALSE and request an authorization.
However, strictly personal use is allowed.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Obtaining the full document&lt;/h2&gt;
&lt;p&gt;You can view the complete Guide using the link below.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/pdf/vhdl_coding_v4_eng.pdf" length="201881" type="application/pdf" />
		

	</item>
<item xml:lang="en">
		<title>Do I need SystemVerilog ?</title>
		<link>http://www.alse-fr.com/Do-I-need-SystemVerilog.html</link>
		<guid isPermaLink="true">http://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="http://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>
<item xml:lang="en">
		<title>Utilities</title>
		<link>http://www.alse-fr.com/Utilities.html</link>
		<guid isPermaLink="true">http://www.alse-fr.com/Utilities.html</guid>
		<dc:date>2016-09-20T21:44:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		
		



		<description>
&lt;p&gt;&#169; 2009 ALSE. All rights reserved. NOTICE OF DISCLAIMER about Free IPs and other information on the ALSE Web site. ALSE is providing design, code, or information &#8220;as is.&#8221; By providing the design, code, or information ALSE makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. You are entirely responsible with any use you make of the provided information, code or design. (&#8230;)&lt;/p&gt;


-
&lt;a href="http://www.alse-fr.com/-VHDL-helper-.html" rel="directory"&gt;VHDL helper&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;div class=&#034;texteencadre-spip spip&#034;&gt;&lt;em class=&#034;spip&#034;&gt;&#169; 2009 ALSE. All rights reserved.
NOTICE OF DISCLAIMER about Free IPs and other information on the ALSE Web site.
ALSE is providing design, code, or information &#8220;as is.&#8221; By providing the design, code, or information ALSE makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. You are entirely responsible with any use you make of the provided information, code or design.
ALSE expressly disclaims any warranty whatsoever with respect to the adequacy of the information, or to the suitability to any use beyond education, including but not limited to any warranties or representations that this information is free from claims of infringement and any implied warranties of merchandability or fitness for a particular purpose.&lt;/em&gt;&lt;/div&gt;
&lt;p&gt;These utilities are free to use, with the usual disclaimer above: use this at your own risk.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href='http://www.alse-fr.com/sites/alse-fr.com/IMG/7z/crimson_sv.7z' class=&#034;spip_in&#034; title=&#034;SystemVerilog definition files for Crimson Editor. &#8211; 7 Zip (3.3 KiB)&#034; type='application/x-7z-compressed'&gt;SystemVerilog definition files for Crimson Editor.&lt;/a&gt;&lt;br class='manualbr' /&gt;unzip into Crimson's base installation directory.&lt;/p&gt;
&lt;p&gt;&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; &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; ROM Generator&lt;br class='manualbr' /&gt;This Tcl/Tk utility reads in a memory contents file in Intel-Hex format and produces synthesizable Verilog code for the ROM.&lt;/p&gt;
&lt;p&gt;&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; Quick Reference sheet.&lt;br class='manualbr' /&gt;Standard RTL &amp; Test bench templates and Numeric_std reminder, all in one sheet.&lt;/p&gt;
&lt;p&gt;Numeric_std cheat sheet.&lt;/p&gt;
&lt;p&gt;CPU_Time.&lt;br class='manualbr' /&gt;Utility (Tcl) to capture the current Date &amp; Time information (&#8220;wall clock time&#8221;) from within a VHDL simulation. (c) ALSE, for use with ModelSim. Your batch simulation can record start and end time in the VHDL output. Great also for simulation run-time optimization.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="http://www.alse-fr.com/sites/alse-fr.com/IMG/7z/crimson_sv.7z" length="3346" type="application/x-7z-compressed" />
		

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