Design Article
Using FPGAs to solve tough DSP design challenges
Reg Zatrepalek, Hardent Inc.
7/23/2012 8:37 AM EDT
DECIDING BETWEEN TRADITIONAL DSP AND FPGA
Conventional digital signal processors have been around for many years, and there are certainly instances where they present the best solution to a particular problem. If the system sample rate is below a few kilohertz and is a single-channel implementation, the DSP may be the obvious choice. However, as sample rates increase beyond a couple of megahertz, or if the system requires more than a single channel, FPGAs become more and more attractive. At high data rates the DSP may struggle to capture, process and output the data without any loss. This is due to the many shared resources, buses and even the core within the processor. The FPGA, however, can dedicate resources to each of these functions.
DSPs are instruction based, not clock based. Typically, three to four instructions are required for any mathematical operation on a single sample. The data must first be captured at the input, then forwarded to the processing core, cycled through that core for each operation and then released through the output. In contrast, the FPGA is clock based, so every clock cycle has the potential ability to perform a mathematical operation on the incoming data stream.
Since the DSP operates on instructions or code, the programming mechanism is standard C or, for higher performance, low-level assembly. This code may have high-level decision trees or branching operations, which may prove difficult to implement in an FPGA. A wide variety of legacy code exists to perform predefined functions or standards like audio and telephony codecs, for example.
FPGA vendors and third-party partners have realized the advantages of using FPGAs for high-performance DSP systems, and today many IP cores are available across most vertical markets including video, image-processing, communications, automotive, medical and military applications. Often it is simpler to break a high-level system block diagram into FPGA modules and IP cores than it is to map it into C code for DSP implementation.
MOVING FROM DSP TO FPGA
Examining a few key criteria may facilitate the decision between conventional DSP and FPGA (see Table 1).


It is widely accepted that software programmers outnumber hardware designers by a significant margin. The same is true for DSP programmers vs. FPGA designers. However, the transition for system architects or DSP designers to FPGA is not as difficult as software-to-hardware migration. Many resources are available to dramatically decrease the learning curve for DSP algorithm development and implementation in FPGAs.
The main hurdle is a paradigm shift from a sample- and event-based approach toward a clock-based problem description and solution. This transition is much easier to comprehend and apply if it is made at the system architecture and definition stage of the design process. It is not unusual for different engineers and mathematicians to be defining system architecture, DSP algorithms and FPGA implementation somewhat isolated from one another. This process is, of course, much smoother if each member has some knowledge of the challenges the other team members face.
In order to appreciate FPGA implementations, an architect need not be highly proficient at FPGA design. A fundamental understanding of the devices, resources and tools is all that is required. These steps can be reduced through the many focused courses that are available.
The exact steps will vary depending on an engineer’s background and expertise. Specifically in the DSP category are classes in algorithm development, efficient implementation and System Generator design. If you wish to become proficient with DSP design in FPGA, a great starting point would be three courses offered by Hardent and other Xilinx Authorized Training Partners: DSP Primer, Essential DSP Implementation Techniques for Xilinx FPGAs and DSP Design Using System Generator.
Hardent also offers general courses describing Xilinx devices, HDL design entry languages, optimization techniques, and design and debug strategies. Specialized courses and workshops focus on high-speed I/O considerations, embedded processing and DSP design techniques.
Consult www.hardent.com/training for more on the Hardent training schedule.
----------------------
If you found this article to be of interest, visit Military/Aerospace Designline where you will find the latest and greatest design, technology, product, and news articles with regard to all aspects of military, defense and aerospace. And, to register to our weekly newsletter, click here.
Conventional digital signal processors have been around for many years, and there are certainly instances where they present the best solution to a particular problem. If the system sample rate is below a few kilohertz and is a single-channel implementation, the DSP may be the obvious choice. However, as sample rates increase beyond a couple of megahertz, or if the system requires more than a single channel, FPGAs become more and more attractive. At high data rates the DSP may struggle to capture, process and output the data without any loss. This is due to the many shared resources, buses and even the core within the processor. The FPGA, however, can dedicate resources to each of these functions.
DSPs are instruction based, not clock based. Typically, three to four instructions are required for any mathematical operation on a single sample. The data must first be captured at the input, then forwarded to the processing core, cycled through that core for each operation and then released through the output. In contrast, the FPGA is clock based, so every clock cycle has the potential ability to perform a mathematical operation on the incoming data stream.
Since the DSP operates on instructions or code, the programming mechanism is standard C or, for higher performance, low-level assembly. This code may have high-level decision trees or branching operations, which may prove difficult to implement in an FPGA. A wide variety of legacy code exists to perform predefined functions or standards like audio and telephony codecs, for example.
FPGA vendors and third-party partners have realized the advantages of using FPGAs for high-performance DSP systems, and today many IP cores are available across most vertical markets including video, image-processing, communications, automotive, medical and military applications. Often it is simpler to break a high-level system block diagram into FPGA modules and IP cores than it is to map it into C code for DSP implementation.
MOVING FROM DSP TO FPGA
Examining a few key criteria may facilitate the decision between conventional DSP and FPGA (see Table 1).


It is widely accepted that software programmers outnumber hardware designers by a significant margin. The same is true for DSP programmers vs. FPGA designers. However, the transition for system architects or DSP designers to FPGA is not as difficult as software-to-hardware migration. Many resources are available to dramatically decrease the learning curve for DSP algorithm development and implementation in FPGAs.
The main hurdle is a paradigm shift from a sample- and event-based approach toward a clock-based problem description and solution. This transition is much easier to comprehend and apply if it is made at the system architecture and definition stage of the design process. It is not unusual for different engineers and mathematicians to be defining system architecture, DSP algorithms and FPGA implementation somewhat isolated from one another. This process is, of course, much smoother if each member has some knowledge of the challenges the other team members face.
In order to appreciate FPGA implementations, an architect need not be highly proficient at FPGA design. A fundamental understanding of the devices, resources and tools is all that is required. These steps can be reduced through the many focused courses that are available.
The exact steps will vary depending on an engineer’s background and expertise. Specifically in the DSP category are classes in algorithm development, efficient implementation and System Generator design. If you wish to become proficient with DSP design in FPGA, a great starting point would be three courses offered by Hardent and other Xilinx Authorized Training Partners: DSP Primer, Essential DSP Implementation Techniques for Xilinx FPGAs and DSP Design Using System Generator.
Hardent also offers general courses describing Xilinx devices, HDL design entry languages, optimization techniques, and design and debug strategies. Specialized courses and workshops focus on high-speed I/O considerations, embedded processing and DSP design techniques.
Consult www.hardent.com/training for more on the Hardent training schedule.
----------------------
If you found this article to be of interest, visit Military/Aerospace Designline where you will find the latest and greatest design, technology, product, and news articles with regard to all aspects of military, defense and aerospace. And, to register to our weekly newsletter, click here.
Navigate to related information


anne-francoise.pele
7/23/2012 10:30 AM EDT
Another piece, originating from the first quarter edition 2012 of the Xcell Journal, is "Embedded Vision: FPGAs’ Next Notable Technology Opportunity".
To access the article, click here: http://www.eetimes.com/design/military-aerospace-design/4376567/Embedded-vision--FPGAs--next-technology-opportunity
Sign in to Reply
Dr DSP
7/23/2012 1:48 PM EDT
There are some very useful concepts covered here and the summary is generally spot on, however it is important to consider the DSP function in the system context.
If other functions are required in addition to the DSP it may push the solution of choice into an FPGA. For example, a low performance DSP function that is part of a sensor or motor control system need not be implemented in a stand alone DSP device. An FPGA might be the right solution in this case.
Sign in to Reply
ReneCardenas
7/26/2012 11:44 AM EDT
Dr. DSP,
COuldn't the same be said in the other direction?, if there are other considerations more suitable for a DSP processor then the tilt can be as well move the other direction.
In my opinion, it has to be a case by case decision of the designer, given a set of resources and time constraints.
Just another point of view
Sign in to Reply
Greg.Dee
7/26/2012 5:02 PM EDT
no offence but "For example, a low performance DSP function that is part of a sensor or motor control system need not be implemented in a stand alone DSP device. An FPGA might be the right solution in this case." doesn't make sense to me, if it's low performance you go down the performance chain, not up it. So one would consider a general micro-controller with it's obvious advantages.
Sign in to Reply
glen.herrmannsfeldt
7/26/2012 3:10 AM EDT
The FIR equation is wrong.
Sign in to Reply
ReneCardenas
7/26/2012 11:32 AM EDT
Glen,
It is too easy to critisize and rush to jugment in haste, when it is so easy to offer the correction of such typo that appears in many publications that are transcribed by non-technical people.
Simply stating the transgression in this case that the index coefficients are transposed for the constatnt term and the discrete variable term, would have accomplished more and been more informative to others that may not have see this simple transgression. Article as good merits otherwise, in my opinion.
Sign in to Reply
nicolas.mokhoff
7/26/2012 11:51 AM EDT
ReneCardenas: your comment on striving toward positive criticism is welcome.
Sign in to Reply
ReneCardenas
7/27/2012 4:29 PM EDT
Thanks Nic, that is my motto, be wise enough to know that in no way we can master the universe alone, but each of us should attempt to make the universe much friendlier place to everyone. Specially new commers to engineering.
There are lots of complexities and tough problems in the world, and nothing is gained by been destructive.
Sign in to Reply
Medina
7/26/2012 11:42 AM EDT
Glen, would you care to point out the anomaly in the equation? It wasn't very evident when I looked at it.
Thanks
Sign in to Reply
EricC
7/26/2012 8:52 AM EDT
Further information on how Xilinx System Generator and MathWorks HDL Coder enable Model-Based Design for targeting Xilinx FPGAs is available at http://www.mathworks.com/xilinx.
Sign in to Reply
EricC
7/26/2012 8:56 AM EDT
Further information on how Xilinx System Generator and other HDL code generation tools may be used with MATLAB and Simulink -- including examples, demos, and videos -- are available from http://www.mathworks.com/fpga.
Sign in to Reply
EricC
7/26/2012 10:09 AM EDT
Corrected link is http://www.mathorks.com/fpga
Sign in to Reply
Krutsch
7/26/2012 4:05 PM EDT
If only one would have to do FIR filters only…? Fact is the software stack is more complicated and it is really a pain to do it on an FPGA. For radar, some high end medical applications it might be a good choice.. For many , many applications it is a pain, try to get a solution certified for some automotive and avionics applications and you will see.
Sign in to Reply
Alxx123
7/27/2012 12:48 AM EDT
Thats all well and good but no mention or comparison on the power used in dsp vs fpga
Sign in to Reply
agk
7/29/2012 6:56 AM EDT
With FPGA's we can create massively large parallel processing so that DSP algorithms can bring useful results.
Sign in to Reply
kinnar
7/29/2012 2:37 PM EDT
Actually what we are trying to implement using the FPGA is already there in DSP Processor, but what matters is the portability and the size reduction of the final product by implementing some functionality of DSP using FPGA, this way one will be able to reduce the use of DSP in many designs, but the real disadvantage of this method is it totally depends hardware dependent.
Sign in to Reply