Digital Signal Processing (DSP) has a huge global market that is growing fast day by day with rapidly evolving sophisticated modern electronics applications like 3G wireless, voice over internet protocol (VoIP), multimedia systems, radar and satellite systems, medical systems, image-processing applications and consumer electronics. These sophisticated DSP applications pose many conflicting challenges to system designers and application developers in terms of cost and performance which are usually hard to balance.
The choice of hardware platform for implementation of DSP applications is one of the fundamental hardware architecture issues that need many factors to take into consideration like cost, performance, reliability, ease of maintenance, available expertise, chip count and power consumption .These issues have been addressed in this article.
FPGA or DSP Processor - The Two Choices
DSP functions are usually implemented on two types of hardware platforms: Digital Signal Processors and Field Programmable Gate Arrays (FPGAs).DSP processors are a specialized form of reprogrammable microprocessor, while FPGAs are an uncommitted sea of logic gates that may be reconfigured according to the application requirements.
The DSP Processor is a specialized form of microprocessor which is continuously reconfigured and reprogrammed according to the requirements of different tasks some related with DSP and others related with control or communication protocol. In a DSP processor, different resources like processor core registers, internal and external memory, DMA engine and I/O peripherals are all shared by all the tasks, which are usually referred to as “threads”. Due to the shared resources these tasks or threads interact often in unexpected or unusual ways that may cause unexpected delays and latencies resulting in system failures in real-time applications where DSP processors are usually deployed. Microprocessor, Digital Signal Processor and Operating System (OS) vendors have attempted to address these problems by creating different levels of protection or isolation between tasks or threads. But, despite being software programmable, the fixed hardware architecture of DSP processor along with limited resources shared among different ongoing tasks, the required level of protection or isolation between different tasks is pretty challenging and hard to practically achieve in meeting the requirements of rapidly evolving DSP applications.
FPGAs, due to their flexible and reconfigurable hardware architecture, allow large scale parallel processing and pipelining of dataflow. Latest FPGAs provide plenty of processing resources, huge on-chip RAM and support very high clock speeds. Efficient and effective pipelining in FPGAs is possible due to high I/O capability that allows FPGAs to access multiple RAM banks simultaneously. FPGAs use multiple distributed memory banks for partitioning and pipelining of algorithms thus bringing about significant improvements in performance compared to the processor based implementation. The use of multiple memory banks removes a significant performance bottleneck.
In the past, the DSP Processors were predominantly the most suitable choice for implementation of DSP applications, but as the requirements of DSP applications grew with evolution of modern electronics, the processing capabilities of the DSP Processors, measured in Millions of Instructions per Second (MIPS), fell short of the requirements of modern DSP applications. As a result, the FPGAs, due to their flexible hardware architecture, emerged as the most suitable alternative to DSP processors and the use of FPGAs is growing rapidly. The MIPs requirements, flexibility of hardware architecture, product reliability and maintainability of the application being developed are the most crucial and governing factors in swaying the decision of the application developer towards FPGAs instead of DSP processors.
Parameters to Make the Right Choice
In the recent times the FPGAs have gained much popularity among system designers and engineers due to their flexibility, re-configurability and parallel processing capabilities. Here are some important parameters that may help a DSP application developer in choosing the appropriate hardware platform for his particular DSP application:
Performance: The resources hungry DSP applications demand high speed and high performance hardware platforms for development and implementation of sophisticated DSP based electronics systems. Sampling rate of the system to be designed is an important parameter to be identified for development of the DSP application. DSP processor is more suitable for low sampling rate DSP applications, otherwise if sampling rate of the system under consideration is higher than a few MHz then FPGA is better as a hardware platform for implementation of DSP application. Identify the data rate of the system to be designed; if it is roughly more than 20-30MByte/Sec then FPGA is a better hardware platform. The DSP processors handle conditional operations better than FPGAs. If there is no conditional operation in the DSP application to be developed then FPGA is a better choice otherwise DSP processor is a better option. If your system uses floating point then FPGA is not a good choice, in such a case a DSP processor is better option. Availability of ready-made libraries for common DSP applications for the system you need to develop is a parameter that must be taken into consideration while choosing the hardware platform. Both FPGAs and DSP processor provide libraries for common DSP functions like FIR filter design and FFTs but more complex functions are not usually available.In terms of cost-performance values, DSP and FPGA are compared in three MMAC (Millions of Multiply-Accumulate Operations per Second) performance categories i.e., High, Medium and Low.MMAC is the number of fixed-point-32-bit or single-precision floating-point multiply-and-accumulate operations that can be executed in units of millions per second. In terms of MMAC, the table  given below can help the design engineers and embedded system developers in making the right selection between a DSP processor and an FPGA: For applications with performance requirements above 1000 MMAC, FPGA/DSP Hybrid solutions are often the ideal solution. For designs with MMAC requirement below 300 MMAC, DSP processors are in general the optimum solution from cost/performance perspective. For designs with MMAC requirement between 300 and 1000 MMAC, the DSP is generally preferable when it comes with application specific resources.
Power Consumption:In development of a DSP application, power consumption and power dissipation are important parameters to be considered, especially for portable DSP based electronics applications where source of power is usually a rechargeable battery. In some high-performance and complex signal processing applications, FPGAs, due to their highly flexible architecture, are capable of providing much higher throughput than that of DSP processors. That’s why, FPGAs' overall energy consumption may be significantly lower than that of DSP processors, despite their usually higher chip-level power consumption. If, in the design of a DSP application, FPGAs are used as a hardware platform in place of clusters of DSP chips, it will result in much lower power dissipation and much higher levels of integration, that are clear advantages for designing portable equipment. A major share of the power dissipated in any electronic system is accounted for driving the signal traces on printed circuit boards that are used to interconnect various components. For example, systems based on DSP chip technology must drive heavily loaded buses that are used to connect the DSP chips to the memory chips. The extra clock cycles needed to fetch the instructions and the operands from off-chip memory, over these buses, further add to the total power requirements needed to execute an algorithm. Because the power consumption of a chip is directly proportional to its clock frequency, the ability of an FPGA to split an incoming data stream and process it as several parallel data streams, at correspondingly lower clock rates, also becomes an important part of the total power equation.
Form Factor and Size: Size, component count and Form Factor are important parameters in development of DSP applications. The FPGAs add design flexibility and adaptability with optimal device utilization while conserving both board space and system power, which is often not the case with DSP chips. FPGAs, unlike a DSP processor, provide single-chip solution by integrating all the DSP function and all of the system logic in a single chip.An FPGA, which is In-System Programmable (ISP), can also be reconfigured on the board during system operation. Taking advantage of the re-configurability feature means a minimal chip solution can be transformed to perform multiple functions. For example, an FPGA could be the basis for a system that performs one of several DSP functions. Suppose, for instance, one function is to compress a data stream in transmit mode and another function is to decompress the data in receive mode. The FPGA can be reconfigured on-the-fly to switch, or toggle, from one function to another. This capability of the FPGA adds functionality and processing power to a minimum-chip DSP system controlled with an internal or an external controller. This“Reconfigurable Computing” technique is beginning to impact design methodologies.A DSP is optimized for use of external memory, so a large data set can be used in the processing. FPGAs have a limited amount of internal storage so need to operate on smaller data sets. However FPGA modules with external memory can be used to eliminate this restriction.
Design Reliability and Ease of Maintenance:If design reliability and ease of maintenance are a point of concern in developing a DSP based application then FPGAs, due to the engineering development process, are believed to be the better choice than a DSP processor. In developing complex software for any type of processor, there are many conflicting factors that are usually pretty hard to balance and this leaves room for potential bugs in the system development. The digital signal processor is a specialized processing engine, which is constantly reconfigured for many different tasks, some DSP related, others more control or protocol oriented. Irrespective of it whether DSP processer or an FPGA is used in system design, each task is more or less equally complex. Both the hardware implementations offer the option to use third-party implementations of common signal processing algorithms, interfaces, and protocols. Each also offers the ability to reuse existing intellectual property (IP) on future designs. FPGAs offer a more efficient and native implementation for most DSP algorithms. Each task is allocated its own resources, and runs independently. It intuitively seems more logical to process each step of a continuously streaming signal processing chain in an assembly line-like process, where each step is allocated its dedicated resources. By comparison, FPGA designs tend to be updated much less frequently, and it is generally an unusual event for a manufacturer to issue a field upgrade of a FPGA configuration file. So in terms of reliability and ease of maintenance an FPGA is a better option than a DSP processor.
Cost and Development Time:Cost, development time and time-to-market are some critical factors that greatly influence the choice of hardware platform for implementation of DSP applications, and to meet the challenges of competitive and fast growing market of DSP. Some technical experts believe that programming FPGAs is difficult, as this requires knowledge and skill in a hardware-oriented language such as Verilog or VHDL. FPGAs offer much more superior performance than DSP processors, but this enormous improvement in performance comes at a cost. The efficient utilization of flexible hardware architecture offered by FPGAs, to support parallel processing and pipelining of dataflow, requires a thorough understanding of hardware specific design methods. The performance of FPGA-based DSP system is primarily dependent on the skills and expertise of the design engineer to tailor the algorithm to efficient hardware implementation. FPGA solutions, due to their longer development cycle, can take an order of magnitude longer to code than DSP solutions which impacts development costs and increases time-to-market. The DSP processor can take a standard C program and run it. This C code supports a high level of branching and decision making – for example, the protocol stacks of communications systems. This is difficult to implement within an FPGA. But at the same time one can argue with the fact that most signal processing systems start life as a block diagram of some sort. Actually translating the block diagram to the FPGA may well be simpler than converting it to C code for DSP. So it seems like it all depends on availability of skill and expertise.
Choosing between an FPGA and a DSP processor depends on several other factors apart from those discussed above. As a matter of fact, there is no hard and fast rule, as there are many conflicting factors that are usually hard to balance, so it’s a tradeoff business. It is solely the job of the system architect to choose a hardware platform that best meets the requirements of a particular system or application. In fact, most electronics systems are made up of numerous different blocks that pose different design contraints to the system architect. Some of those blocks are best implemented in FPGAs, and others in DSP.Lower sampling rates and increased complexity suit the DSP approach; higher sampling rates, especially combined with rigid, repetitive tasks, suit the FPGA.
Most engineering managers and system architects understand that the rate of software updates to fix the bugs far exceeds the rate of comparable FPGA updates in nearly all cases. It is not unusual and unexpected to release bug fixes on embedded software on a regular basis. With the availability of both low-cost and high-end DSP-optimized FPGA devices, extensive IP cores, availability of high-level design entry methods, and the inherent robustness of the design and verification process, FPGAs will increasingly be the preferred choice for implementing DSP.
FPGA vs. DSP Design Reliability and Maintenance – Altera’s White Paper
Developing FPGA coprocessors, By Paul Ekas and Brian Jentz, Embedded Computing Design.
Xilinx FPGA Implementation of a Pixel Processor for Object Detection Applications, by Peter Mc Curry, Fearghal Morgan, Liam Kilmartin Communications and Signal Processing Research Unit, Department of Electronic Engineering, National University of Ireland, Galway.
DSP or FPGA – 5 parameters to make a choice, experts-linked.com
Choosing DSP or FPGA for your Application, by HUNT ENGINEERING
How to Make Right Selection Between Fpga and Dsp, articlesbase.com
FPGAs: THE HIGH-END ALTERNATIVE FOR DSP APPLICATIONS, By Dr. Chris Dick
White Paperby Altera - FPGAs Provide Reconfigurable DSP Solutions
A Guide to Using Field Programmable Gate Arrays (FPGAs) for Application-Specific Digital Signal Processing Performance Gregory Ray Goslin Digital Signal Processing Program Manager Xilinx, Inc. 2100 LogicDr.San Jose, CA 95124
Choosing the Right Central Logic Device for Your Portable Design, by Amit Kapadiya, Marketing Manager, Nuvation, published on EE Times
FPGAs vs. DSPs: A look at the unanswered questions, published on EE Times
Digital Signal Processing Designing for FPGA Architectures, by Mariusz Rawski, Bogdan J. Falkowski, and Tadeusz
Using Programmable Logic to Accelerate DSP Functions,by Steven K. Knapp, Corporate Applications Manager, Xilinx Inc
DSP or FPGA? How to choose the right device,by Bamdad Afra and Amit Kapadiya,Nuvation,published in EE Times
Choosing FPGA or DSP for your Application, from www.expertcore.org