Digital Signal Processing and Field Programmable Gate Arrays By: Peter Holko What are FPGAs Field Programmable Gate Arrays (FPGAs) are programmable semiconductor devices that are based around a matrix of configurable logic blocks (CLBs) connected via programmable interconnects. Background First FPGA was released in 1985 by Xilinx with a mere 1,000 logic gates primarily used for interconnections, buses and other peripherals, by 2006 it had increased by over 10,000 times. FPGAs allow for highly parallel processing through inherent hardware nature. Xilinx and Altera are the two leaders in FPGA and hold over 90% of the market. Markets for intensive DSP applications include: wireless communications, video/image processing, and aerospace/defense industry. Co-processing with a FPGA FPGA co-processors are an extremely cost-effective means of off-loading computationally intensive algorithms from a DSP processor. FPGA Coprocessor for WiMAX Baseband Processing FPGA Coprocessor for High-Definition H.264 Encoding DSP and FPGA FPGAs Parallel Approach to DSP Enables Higher Computational Throughput Consider a 256-tap FIR filter: Conventional DSP Processor – Serial Implementation FPGA – Fully parallel implementation Flexibility of FPGAs Different ways of implementing four multiply-accumulate (MAC) functions. FFT Co-Processing Example FFT co-processor implemented within an Altera Stratix FPGA and connected to a Texas Instruments DSP via the 32-bit external memory interface (EMIF) Develop co-processor from intellectual property (IP) such as FFT MegaCore FFT implementation with only the TI DSP processor TI DPS running at 720 MHz completed the 1024-point 16-bit FFT in 9.06 μs FPGA Co-processor implementation At 278 MHz completed the transform in only 4.64 μs FFT Co-processor on Stratic FPGA DSP Development For the DSP-only approach, functions like FIR filters, FFTs and Correlators are available as pre-built, assembly optimized, C-callable library functions. Challenges arise while trying to optimize the performance of a function for a particular DSP requiring an in-depth knowledge of the processor architecture. However, DSP designers in general are more comfortable with the DSP-only approach due to ease of implementation. FPGA Development FPGA co-processor approach requires hardware knowledge to assemble the various components of the FPGA co-processing system (EMIF/FIFO interface, transmit and receive FIFO buffers, and co-processing function). The availability of architecturally optimized pre-built IP functions from FPGA vendors like Altera & Xilinx aid in Hardware Description Language the implementation of co-processors PROCESS (clk) BEGIN IF (clk'event and clk = '1') THEN a_reg <= (a); b_reg <= (b); pdt_reg <= a_reg * b_reg; adder_out <= adder_out + pdt_reg; END IF; END process; accum_out <= (adder_out); Performance of FPGA versus DSP BDTI’s benchmark is based on a simplified OFDM (Orthogonal Frequency Division Multiplexing) receiver DSP processor implementation FPGA Implementation of BDTI Benchmark Exploits three-levels of parallelism: • Within each receiver block, multiple operations are executed concurrently • All receiver blocks operate concurrently • Multiple receiver modules are used on the same chip FPGA implementation on Xilinx Virtex-4 of a single receiver module BDTI Benchmarks Performance Evolution of FPGA versus DSP Processors Conclusions FPGAs can out perform DSP processors on certain DSP tasks; computation intensive, highly parallelizable tasks DSP processors have the advantage for development infrastructure, time-to-market, developer familiarity DSP processors are still easier to use Many engineers possess DSP processor development skills Ultimate speed is not always the first priority Combination of FPGA and DSP processor is an excellent solution if performance requirements cannot be met by the processor alone The “Best” architecture depends on the requirements of the applications References The benefits of FPGA coprocessing http://www.dsp-fpga.com/pdfs/Xilinx.RG06.pdf Implementing FFT in an FPGA Co-Processor http://www.altera.com/literature/cp/gspx/fft-in-fpga.pdf FPGAs rapidly replacing high-performance DSP capability http://www.dsp-fpga.com/articles/ekas/ DSP Co-Processing in FPGAs: Embedding High-Performance Low-Cost DSP Functions http://www.xilinx.com/bvdocs/whitepapers/wp212.pdf Comparing FPGAs and DSPs for High-Performance DSP Applications http://www.bdti.com/articles/20061101_gspx06_fpgas.pdf FPGAs as Coprocessors for DSP Applications http://www.altera.com/technology/dsp/devices/fpga/dsp-fpga_coprocessor.html Increase Bandwidth in Medical & Industrial Applications With FPGA CoProcessors http://www.altera.com/literature/wp/wp_use_of_pld_as_cp5.pdf