®
Altera Corporation 1
Implementing FIR Filters
in FLEX Devices
February 1998, ver. 1.01 Application Note 73
A-AN-073-01.01
Introduction
The finite impulse response (FIR) filter is used in many digital signal
processing (DSP) systems to perform signal preconditioning, anti-
aliasing, band selection, decimation/interpolation, low-pass filtering, and
video convolution functions. Only a limited selection of off-the-shelf FIR
filter circuits is available; these circuits often limit system performance.
Therefore, programmable logic devices (PLDs) are an ideal choice for
implementing FIR filters.
Altera FLEX devices, including the FLEX 10K and FLEX 8000 families, are
flexible, high-performance devices that can easily implement FIR filters.
For example, you can use a FLEX device for one or more critical filtering
functions in a DSP microprocessor-based application, freeing the DSP
processor to perform the lower-bit-rate, algorithmically complex
operations. A DSP microprocessor can implement an 8-tap FIR filter at
5 million samples per second (MSPS), while an off-the-shelf FIR filter
circuit can deliver 30 MSPS. In contrast, FLEX devices can implement the
same filter at over 100 MSPS.
This application note describes how to map the mathematical operations
of the FIR filter into the FLEX architecture and compares this
implementation to a hard-wired design. Implementation details—
including performance/device resource tradeoffs through serialization,
pipelining, and precision—are also discussed.
Conventions
Parentheses are used to show which tap or coefficient is being referenced.
The variable
x
(
n
) refers to the
n
th input sample, e.g.,
x
(6) refers to tap
number 6. The variable
h
(
n
) refers to the
n
th coefficient of the FIR filter,
e.g.,
h
(4) refers to coefficient 4. Subscripts are used to distinguish which bit
in the binary word is being referenced, e.g.,
x
(6)
1
denotes the least
significant bit (LSB) in the sixth tap. All numbering begins with 1 rather
than 0.