Digital Signal Processing and Field Programmable Gate Arrays

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
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
FPGA Coprocessor for High-Definition
H.264 Encoding
FPGAs Parallel Approach to DSP Enables Higher Computational
Consider a 256-tap FIR filter:
Conventional DSP Processor – Serial
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
FFT implementation with only the TI DSP
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
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
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
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 process;
accum_out <= (adder_out);
Performance of FPGA versus
BDTI’s benchmark is based on a simplified OFDM
(Orthogonal Frequency Division Multiplexing) receiver
DSP processor implementation
FPGA Implementation of BDTI
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
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
The benefits of FPGA coprocessing
Implementing FFT in an FPGA Co-Processor
FPGAs rapidly replacing high-performance DSP capability
DSP Co-Processing in FPGAs:
Embedding High-Performance Low-Cost DSP Functions
Comparing FPGAs and DSPs for High-Performance DSP Applications
FPGAs as Coprocessors for DSP Applications
Increase Bandwidth in Medical & Industrial Applications With FPGA CoProcessors