<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Art of FPGA Design - Post 3</title><link>/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design---post-3</link><description>Two Free VHDL Books If you installed Vivado WebPACK, the free version of Xilinx FPGA design tools, you are ready now to start creating your first hardware design. There are at least three different ways to program a Xilinx FPGA today, using a ha...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: The Art of FPGA Design - Post 3</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design---post-3</link><pubDate>Tue, 10 Nov 2020 10:18:45 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:dda6bcfd-8494-43e4-87f7-192e0182ed32</guid><dc:creator>gustavovelascoh</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Catalin, thanks for your series of posts on FPGA. I will give FPGA a try (again). On this post you mentioned that HLS design flow is good in terms of abstraction, simulation time and time to market, but poor in performance. Is this still the case today (2 years after)? Thanks&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5218&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: The Art of FPGA Design - Post 3</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design---post-3</link><pubDate>Thu, 26 Jul 2018 16:16:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:dda6bcfd-8494-43e4-87f7-192e0182ed32</guid><dc:creator>johnbeetem</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Oh goody, Language Wars!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We&amp;#39;ve had some interesting discussions of the years here in the FPGA Group about Verilog and VHDL.&amp;nbsp; Here are a couple of 2014 discussions I found this morning:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-blog-small" href="/technologies/fpga-group/b/blog/posts/alternatives-to-vhdl-verilog-for-hardware-design"&gt;Alternatives to VHDL/Verilog for hardware design&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-thread-small" href="https://www.element14.com/community/thread/37205/l/connecting-verilog-to-synthesis"&gt;Connecting Verilog to Synthesis&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m going to repeat part of a comment I made in the first discussion:&lt;/p&gt;&lt;blockquote class="jive-quote"&gt;&lt;p&gt;I don&amp;#39;t like Verilog or VHDL.&amp;nbsp; Given the choice, I mostly use Verilog since I don&amp;#39;t want to type more than necessary and I have limited storage space for listings.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My main problem with Verilog and VHDL is that they were designed for &lt;em&gt;simulation&lt;/em&gt;.&amp;nbsp; Synthesis was added as an afterthought.&amp;nbsp; It&amp;#39;s quite difficult for an inexperienced user to know how to write Verilog to get the synthesizer (I mostly use Xilinx&amp;#39;s XST) to create the logic the user wants.&amp;nbsp; XST matches &amp;quot;language templates&amp;quot; to find things like flip-flops, registers, and RAMs.&amp;nbsp; &amp;quot;Language templates&amp;quot; are hidden in ISE&amp;#39;s Edit menu.&amp;nbsp; Many new users don&amp;#39;t know about the templates, and merrily write Verilog or VHDL from textbooks and it simulates fine.&amp;nbsp; Then they try to synthesize and get frustrated.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Here&amp;#39;s how I write Verilog: I imagine what hardware I want, and then I write my Verilog to match the template for each piece of hardware.&amp;nbsp; This is basically compiling &lt;em&gt;in reverse&lt;/em&gt;: you imagine the object code, and then write your source code so that the compiler does the right thing.&amp;nbsp; I&amp;#39;m probably better at this than most designers since I&amp;#39;ve written compilers and digital design tools, so it&amp;#39;s easy for me to guess at what Xilinx tools do.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The second discussion is a typical example of what happens when a new user takes Verilog that simulates correctly and tries to synthesize.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Of the commercial HDLs I&amp;#39;ve used over the years, my favorite is AHDL (Altera&amp;#39;s HDL).&amp;nbsp; It let me describe the hardware I wanted more easily and I didn&amp;#39;t have to jump through hoops to cajole the synthesizer into doing what I wanted.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5218&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: The Art of FPGA Design - Post 3</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design---post-3</link><pubDate>Tue, 24 Jul 2018 18:17:37 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:dda6bcfd-8494-43e4-87f7-192e0182ed32</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Yes, I remember the wars well.&lt;/p&gt;&lt;p&gt;The die hard hardware folks were very biased about any &amp;quot;software&amp;quot; like description language for implementing the sacred hardware circuits.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To be fair, their were equal battles among the various software languages and passions ran very high.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As a systems engineer, I readily saw the value of circuit description languages, and as the lines of software and hardware blurred, I found it very useful that everyone was using similar constructs to describe what the entire system was intended to do. The similarities allowed both sides to easily agree to where the logic transitioned between subsystems.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DAB&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5218&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>