<?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 Season 2 - Post 11</title><link>/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design-season-2---post-11</link><description>The Single Rate Half-Band FIR Decimator A decimating filter will reduce the sample rate of a signal, while preventing aliasing. Decimation by a factor of 2x is achieved by simply throwing out every second input sample. For this to work the input...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: The Art of FPGA Design Season 2 - Post 11</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design-season-2---post-11</link><pubDate>Sun, 31 Jan 2021 16:09:32 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:53072042-c558-4170-bb1a-e527ee66c0e9</guid><dc:creator>fpgaguru</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Rod,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;There are three main ways you can do DSP hardware design with FPGAs.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1. Classic HDL design flow, using either Verilog (or rather SystemVerilog) or VHDL&lt;/p&gt;&lt;p&gt;2. With SysGen, which requires Matlab and Simulink from Mathworks&lt;/p&gt;&lt;p&gt;3. Using HLS, which means programming in C/C++&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;All three require of course Vivado if you are targetting a Xilinx FPGA but that&amp;#39;s free if you can live with the limited number of parts supported by the free edition. Note that there are no other limitation, the free edition is a full blown one and includes SysGen and HLS.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The first option requires HDL design expertise. It is the best one if you want to maximize the performance of your design implementation. The second option is not free, but Mathworks provides a version of Matlab and Simulink for personal use for about $200.&amp;nbsp; Finally, the third version, which is also free, might make sense if you have software development experience with the C/C++ languages. However, you pay a price in design size and speed and you still need to have a good understanding of hardware design principles, the idea that you take some arbitrary C code, push a button and magically get an efficient FPGA implementation is still a pipe dream.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My posts in this second season might give give you the wrong idea that you need to explicitly configure the DSP48 primitives to do DSP designs in XIlinx FPGAs, that&amp;#39;s definitely not the case. I am going into the details of the DSP48s because the goal for this series of posts is to show how to go from a mathematical algorithm to an efficient hardware implementation, using various FIR architectures as a teaching vehicle. While understanding all these DSP48 details will do you no harm, you can still do good DSP hardware design using either one of the three flows mentioned above, without ever configuring a single DSP48 primitive. They can be inferred from behavioral HDL code or C/C++, there is a lot of free IP like FIR Compiler, FFTs and so on which you can instantiate in your HDL or in SysGen and so on.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you tell me which one of the three design flows is the one you are most familiar with, maybe I can make further suggestions.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The main barrier into becoming an expert in this field is not the lack of tools, even if you insist on completely free. You can definitely get a board and tools for less than the price of a university course book. But this is not something that can be learned in a week or even a couple of months, it requires a lot of time and effort. Maybe not the proverbial &lt;a class="jive-link-external-small" href="https://problogservice.com/2012/03/15/what-malcolm-gladwell-really-said-about-the-10000-hour-rule/" rel="nofollow ugc noopener" target="_blank"&gt;10,000 hours&lt;/a&gt;, but not a lot less than that either.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Catalin&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10718&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: The Art of FPGA Design Season 2 - Post 11</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design-season-2---post-11</link><pubDate>Tue, 26 Jan 2021 16:30:17 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:53072042-c558-4170-bb1a-e527ee66c0e9</guid><dc:creator>14rhb</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi &lt;span&gt;[mention:6df0c41b821640f88ccc622506c3eacd:e9ed411860ed4f2ba0265705b8793d05]&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Your latest post was very timely as I have been looking (and failing) at DSP under my roadtest &lt;a class="jive-link-roadTest" href="https://www.element14.com/community/roadTests/2234/l/usb104-a7-artix-7-fpga-development-board"&gt;USB104 A7: Artix-7 FPGA Development Board&lt;/a&gt;&amp;nbsp; : although a complete beginner I found the topic very exciting and will be reading your series of reports closely to see what I can create. You mention in one of your posts you undertake this work yourself but have links to Xilinx and you may be best placed to help me understand a few very basic issues. As a hobbyist I&amp;#39;m using the free software (although I do have a Xilinx license for Vivado that came with a higher specification board).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Is the only way of credibly configuring the DSP slices to use Xilinx System Generator and Simulink ? I see some of the IP I do have available such as IIR and FIR Compiler use the DSP48 slices.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Without wanting to get you in trouble, are you aware of any open source approaches ? There seems to be several contenders for testing out the DSP algorithms such as Octave, R-Studio maybe, Scibus. I guess the missing part is creating a verilog script from those packages that makes use of the DSP slices in the 7-series FPGAs ?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As mentioned, I&amp;#39;m a novice here but pointers to material would be greatly appreciated to allow me to experiment with these powerful devices.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=10718&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>