element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Blog The Art of FPGA Design Season 2 - Digital Signal Processing, from Algorithm to FPGA Bitstream
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
FPGA requires membership for participation - click to join
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: fpgaguru
  • Date Created: 17 Oct 2020 3:51 PM Date Created
  • Views 6841 views
  • Likes 14 likes
  • Comments 5 comments
  • xilnx
  • fpgafeatured
  • fpga
  • dsp
  • guest writer
Related
Recommended

The Art of FPGA Design Season 2 - Digital Signal Processing, from Algorithm to FPGA Bitstream

fpgaguru
fpgaguru
17 Oct 2020

Hi,

 

This is season 2 of the Art of FPGA Design blog. I plan to add a new post every Tuesday but depending on how long it will take me to create the content some posts could appear every other week. I have outlined below the first few posts I am planning to make so you can have an idea on what to expect, As I create the content, they will turn into links to actual posts.

 

This is a change of direction from the first season of The Art of FPGA Design blog. While not a prerequisite for following along with this second season, reading it cannot hurt either.

 

I will turn my focus on Digital Signal Processing using FPGAs this time. However, this is neither a DSP gentle introduction, nor a primer on FPGA design. There are numerous good resources available for both subjects, including many free ones and there is no need to reinvent the wheel. So at least some level of familiarity with both areas is expected. If this feels to you like a dive into the deep end on either subject please comment and I will try to compile a list of resources that could be used to quickly get up to speed. If you think you can suggest something please comment and I will add the links to this blog post.

 

What this blog will try to address instead is how to cross the gap between a DSP algorithm and its efficient implementation in an FPGA, something that is rarely explained or even discussed. How do you go from an algorithm specification, which is essentially mathematics to an actual hardware implementation, where you have to live within the constraints imposed on you by the laws of physics. Normally, in a larger organization the two roles are filled by two different persons, a DSP System Architect and a Hardware Designer. They are highly specialized roles, requiring two different skills sets and using different design tools. Even if the same person is wearing both hats, the question still remains, how do you bridge the chasm between mathematics and physics?

 

If you happen to find yourself on either side of that precipice wondering how are you going to get to the other side, I invite you to accompany me on this trip.

 

Full disclosure:

 

While I do work for Xilinx, this is my personal blog. The ideas expressed here are my own and do not represent the views or opinions of my employer. Although I will talk about Xilinx FPGAs among other things, this is not a hidden marketing promotional campaign - this is a technical blog about the Art of FPGA Design.

 

The algorithms and code examples that will be used here are placed in the public domain and can be freely used by anybody without any restrictions, although providing attribution would be nice. On the other hand they come with no warranty of any kind, they are provided "as is" and you use them at your own risk.

 

The Art of FPGA Design Season 2 Post 1 - Crossing the gap between mathematics and physics

The Art of FPGA Design Season 2 Post 2 - The basic building blocks on the DSP algorithm side

The Art of FPGA Design Season 2 Post 3 - The basic building blocks on the FPGA implementation side

The Art of FPGA Design Season 2 Post 4 - Register pushing and the pipeline cut

The Art of FPGA Design Season 2 Post 5 - The Single Rate non-symmetric FIR, direct and transpose architectures

The Art of FPGA Design Season 2 Post 6 - The Single Rate even-symmetric FIR

The Art of FPGA Design Season 2 Post 7  - The Single Rate odd-symmetric FIR

The Art of FPGA Design Season 2 Post 8 - The Single Rate symmetric FIR, low latency transposed architecture

The Art of FPGA Design Season 2 Post 9 - The Single Rate Half-Band FIR

The Art of FPGA Design Season 2 Post 10 - The Single Rate Half-Band FIR Interpolator

The Art of FPGA Design Season 2 Post 11 - The Single Rate Half-Band FIR Decimator

The Art of FPGA Design Season 2 Post 12 - Polyphase FIRs

The Art of FPGA Design Season 2 Post 13 - Polyphase Interpolators

The Art of FPGA Design Season 2 Post 14 - Polyphase Decimators

The Art of FPGA Design Season 2 Post 15 - Taking advantage of coefficient symmetry in Polyphase FIRs

The Art of FPGA Design Season 2 Post 16 - Multichannel and Overclocking FIRs - The Single Rate Non-Symmetric Case

The Art of FPGA Design Season 2 Post 17 - Multichannel and Overclocking FIRs - The Single Rate Symmetric Case

The Art of FPGA Design Season 2 Post 18 - Multichannel Symmetric FIRs

 

and so on, I plan to do at least 40 posts showing how to turn various DSP Algorithms into efficient hardware implementations.

 

Previously on the Art of FPGA Design:

 

The Art of FPGA Design Season 1 - A 36-post blog on advanced VHDL design topics for Xilinx FPGAs

  • Sign in to reply

Top Comments

  • fpgaguru
    fpgaguru over 2 years ago in reply to miki +1
    What kind of filters would you like to see discussed further? Potential subjects could be non-symmetric and symmetric FIRs where the sample rate is higher than the system clock rate, for example FIRs with…
  • scotthuynh
    scotthuynh 14 days ago in reply to LenSDR

    I have very recently discovered fpgaguru's blog series and have started to create example code. You can find my attempts to create example code here: Art of FPGA Season 2 Example Code

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • LenSDR
    LenSDR over 1 year ago

    Hi fpgaguru,

    I'm a DSP FPGA guy and I'd like to sharpen my rtl skills in the area of high performance DSP algorithm implementation using FPGA devices.  To that end, I was looking at your DSP FPGA related posts above (e.g. FIR filters, Polyphase FIRs, Polyphase Interpolators & Decimators, etc...) and was wondering if the rtl source code is available.  I'd like to see how you actually implemented the DSP blocks discussed in the various Posts above.  Is that code available and if so where can I find it??

    Regards,

    Len  

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • fpgaguru
    fpgaguru over 2 years ago in reply to miki

    What kind of filters would you like to see discussed further? Potential subjects could be non-symmetric and symmetric FIRs where the sample rate is higher than the system clock rate, for example FIRs with sample rates of 1Gsps and higher. Another major subject matter could be IIR filters and their efficient implementation in FPGA hardware. Finally, we could talk about FFTs, although that subject could fill an entire new season by itself. Another potential subject matter could be systolic architectures for large matrix multiplications, which are a fundamental building block for a lot of linear algebra algorithms.

    Finally, I could talk about the use of the Versal DSP58 primitive new single precision floating point support. You should never implement filters with floating point arithmetic but using that for FFTs and matrix multiplication could make sense.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • miki
    miki over 2 years ago

    Great series of articles, is the the plan still to make at least 40 posts?
    I promise that if you write them I'll read all of them :-)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 4 years ago

    I am very glad that you decided to do this series.

     

    There are a lot of useful tips for MCU user who want to do signal processing algorithms.

     

    Thanks

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube