180 likes | 576 Views
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.
E N D
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 the implementation of co-processors Hardware Description Language 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
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 Co-Processors • http://www.altera.com/literature/wp/wp_use_of_pld_as_cp5.pdf