Design Article
Making design choices between DSP and FPGA
Bamdad Afra and Amit Kapadiya
5/13/2008 11:45 AM EDT
System designers face a number of key questions during the architecture phase of their project. Increasingly, one of those questions is whether to use a field-programmable gate array or a digital signal processor.
There is no global recipe for making the right choice, and there are always trade-offs. It is an understanding of those trade-offs that guides an architect to choose the platform that best meets the requirements of a specific system.
The team's skill set also may drive the choice between FPGA and DSP. Nuvation worked on an algorithm acceleration project in which the algorithm lent itself to wide parallel implementation in an FPGA. However, classic FPGA approaches were ruled out because of the lack of FPGA skills in the client's engineering team and the potential barriers presented to product maintenance.
Most engineers and system architects are more familiar with DSP technology because of the simplicity of designing with DSPs. However, developer familiarity varies widely across design teams, so it is difficult say how important this issue is to a "generic" design team.
Click here for larger image
Here, we consider DSP devices from Texas Instruments and FPGAs from Altera to guide us through this process.
FPGAs and DSPs were created for different purposes. DSPs were created to provide an optimized platform for signal processing algorithms implemented in software, while FPGAs were initially created to provide glue logic. FPGAs are by far the superior choice for networking applications that move traffic at gigabit/second data rates. DSPs, meanwhile, are the superior choice for video applications such as surveillance. However, today there are many overlapping applications for the two device types.
The different features of FPGAs and DSPs must be kept in mind while considering their cost/performance values. Blindly choosing an FPGA for its cost advantage (as low as 0.2 cent/MMAC, or million multiply-accumulate operations) would be a mistake.
DSPs often come with bundled features that can translate into cost savings. Therefore, a DSP with application-specific features has an advantage over an FPGA with similar cost/performance value.
Click here for larger image
For designs with MMAC requirements below 300, DSPs are generally the best solution from a cost/performance perspective. For designs requiring between 300 and 1,000 MMACs, a DSP is generally ideal when it comes with application-specific resources (video/audio ports, ARM processor, etc., as with DaVinci digital media processors). When a DSP with application-specific resources does not exist, other design aspects must be considered.
For applications with requirements above 1,000 MMACs, FPGA/DSP hybrids can be the ideal solution. These applications often include multiple signal processing algorithms, some of which have low performance requirements. Here, relatively inexpensive DSPs can implement the algorithms with low to medium performance requirements, leaving the higher-performance algorithms to FPGAs.
Signal processing
A DSP is a specialized CPU for signal processing applications. Its core is designed to optimally execute signal processing algorithms for which the principal operation (multiply and accumulate) is similar across almost all algorithms. DSPs are also packaged with many peripherals and different types of memory in the same device, similar to microcontrollers.
In a sense, DSPs concurrently offer all flexibilities and functionalities offered by microcontrollers, in addition to being optimal for signal processing in low- and medium-performance applications. Therefore, DSPs become the device of choice for system architects for a wide range of applications, given the combination of microcontroller functionality, optimization for signal processing, and bundling of on-chip peripherals in the same package.



