Do's and Don'ts of Architecting the Right FPGA Solution for DSP Design
EE Times: Design News Do's and Don'ts of Architecting the Right FPGA Solution for DSP Design Finally a Practical "Do and Don't" primer on architecting FPGA solutions for DSP design. With more do's than don’ts, the article is a down-to-basics look at how to avoid the pitfalls and realize device benefits. | |
Alex Soohoo, Altera Corporation (09/13/2005 2:02 PM EDT) URL: http://www.eetimes.com/showArticle.jhtml?articleID=170702837 | |
Designing a flexible, programmable DSP system architecture is a daunting task. Considering evolving mobile standards to the newest video compression techniques, the latest algorithms are rapidly growing in complexity. For example, a customer that was previously satisfied with standard definition resolution MPEG-2 video compression might now demand that the next product support high definition resolution H.264, which requires more than an order of magnitude increase in system performance. At the same time, the pressure to increase system channel count is unrelenting as network capabilities continue to grow. Consequently when starting a new design, engineers must consider not just today's requirements, but understand that this system might also be soon called upon to address unforeseen challenges. So what are the design options? Historically, the choices for building a high-performance DSP design for high-speed digital communications or real-time video processing were limited. A typical approach was to populate a board with as many DSP processors as possible (colloquially known as a DSP farm) and then hope that the software engineers would not write applications that outstripped the maximum processing capacity. Such issues as high design complexity and total system power limited the scalability of this method. Further, this design methodology hinged on the assumption that DSP processor vendors could continue to increase clock speeds and reduce power consumption, which was never guaranteed. Now, however, thanks to remarkable improvements over the last few years in FPGA performance, and the incorporation of hard embedded multipliers in the devices, there are new architectural options that address the issues of performance, flexibility, and scalability. An FPGA co-processing architecture can be an ideal approach to tackle these challenges. By intelligently partitioning a DSP algorithm between a DSP processor and an FPGA co-processor, a number of benefits can be realized including dramatically boosted performance and a reduction in total system costs. However, there are numerous issues to consider before heading down this path. Specific system requirements and preferences of the engineering team will play a large role in final architecture decision. Some of the do's and don'ts system designers should consider when designing a FPGA co-processor solution for a high performance DSP system follow (See Figure 1). DON'T To realize the benefits of FPGA co-processing, the datapath must be re-architected and implemented in a parallel manner, not in a serial, sequential DSP processor coding style. While a DSP processor and an FPGA both have embedded multipliers, FPGA-based designs can potentially execute a much greater number of multiply-accumulate (MAC) operations per cycle than traditional DSP processors. Evaluate your DSP system and the required algorithms and consider how they might be "parallelized." Careful architectural planning and development of the FPGA co-processor can provide an order of magnitude performance boost over DSP processor based designs. DO Perhaps the team is more comfortable using a simulation environment to quickly model and simulate the algorithms that are specified for the project. This may be a welcome approach for a team with more DSP software implementation experience. Does the team have a background with an ASIC or FPGA design flow? If so, it is also possible to develop the DSP datapath by directly writing VHDL or Verilog and bypass the use of higher-level design abstraction tools. While potentially the most labor intensive and time consuming path to follow, the final design can then be optimized for size and performance. What about a C-to-gates methodology? A few EDA vendors have introduced C-entry tools specifically targeted for DSP applications that generate HDL code ready to be synthesized and incorporated into FPGA design software. All of these approaches can be incorporated into DSP design flows to implement an FPGA co-processor. DO Remember, flexibility is a key benefit of this architectural approach. It may be reasonable that for a first FPGA-based design, a conservative approach is taken and only a small portion of the processing is implemented on the FPGA with the rest executed on DSP processors in the system. For the next generation design, shift more of this processing to the FPGA and boost system performance without having to redesign the current board architecture. Providing this kind of extensibility will require careful planning. DO Using off-the-shelf cores may be a less expensive, faster option compared with building a block from scratch, assuming they are well supported and have the correct feature set. The next question is whether you can identify a provider to meet the design requirements. Certainly a large 3rd party IP network exists around DSP processors to fulfill this need. A similar ecosystem has exists around FPGAs in the last few years to accommodate the large number of FPGA-based DSP designs. The most common blocks such as FIR filters, fast Fourier transforms (FFTs), and forward error correction (FEC) cores are readily supplied and are successfully deployed. Even more exotic or specialized IP such as an H.264 video codec are available from IP vendors as packaged FPGA cores. Finally, make sure that the seller provides complete documentation, performance benchmarks, verification test benches, and a well-staffed support organization to address any issues. DO Depending on the processing partition between the devices, the interface with the appropriate throughput will need to be selected. Perhaps the FPGA will be called upon to create an ad hoc bridge for proprietary audio or video data buses in the system. FPGAs can be used to increase the capabilities of the DSP processor by providing peripheral and memory expansion. This can be especially useful when trying to adapt a design to meet emerging industry standards not previously envisioned by DSP processor vendors. Now that a preferred hardware interface is selected, does the FPGA design flow incorporate a seamless method to integrate the interface into the design? While it is possible to create a custom block to perform the function, there are comprehensive system integration tools that can perform the potentially tedious task of connecting it all together. This software typically includes libraries of peripheral components to address a wide range of connectivity options. Secondly, will this design tool generate an application-programming interface (API) or a memory-mapped header file that can be incorporated into the DSP software integrated development environment? Don't underestimate the value of this step. The integration of hardware-accelerated algorithms into the DSP software architecture is critical to extracting the benefits of the FPGA co-processor architecture. DO'’T About the Author |
Related Articles
- ''Do's and Don'ts" when considering an FPGA to structured ASIC design methodology
- What's your sine? Finding the right algorithm for digital frequency synthesis on a DSP
- DSP or FPGA? How to choose the right device
- It's Just a Jump to the Left, Right? Shift Left in IC Design Enablement
- SoC Interconnect: Don't DIY!
New Articles
Most Popular
E-mail This Article | Printer-Friendly Page |