Fpgas in DSP Applications: Haibo Wang Ece Department Southern Illinois University Carbondale, Il 62901
Fpgas in DSP Applications: Haibo Wang Ece Department Southern Illinois University Carbondale, Il 62901
=
- =
15
0
] [ ] [
i
i
i k x a k y
13-23
IIR Filter Implementation
Example:
] 2 [ ] 1 [ ] 1 [ ] [ ] [
2 1 1 0
- + - + - + - = n x a n y a n x b n x b n y
Direct Implementation:
D
+ +
D D
+
a
1
a
2
b
0
b
1
x[n]
y[n]
Clock frequency
adder mult
clk
t t
f
- +
s
3
1
13-24
IIR Filter Implementation
Pipelined Implementation 1:
D
+ +
+
a
1
a
2
b
0
b
1
x[n]
y[n-3]
D D
D
D
D
D
Clock frequency
mult
clk
t
f
1
s
(assume t
mult
> t
add
)
13-25
Pipelined Implementation 2:
IIR Filter Implementation
+
D
+
D
D
+
a
1
a
2
b
0
b
1
x[n]
y[n-1]
adder mult
clk
t t
f
- +
s
2
1
13-26
LUT-Based Multiplier
In many DSP circuits, multipliers always have one constant input.
x[n] y[n]
C
i
(constant)
For the above multiplier, y[n] purely depends on x[n]. Thus,
a look-up table (LUT) can be used to implement the multiplier
X[n]
address
y[n]
For example, a 25616 bit memory
can be used to implement a 8-bit
multiplier if one of its input is
always constant.
13-27
Distributed Arithmetic
Multiplication by using shift-and-add technique
13-28
Distributed Arithmetic
Calculate A-Y
0
+ B-Y
1
+ C-Y
2
+ D-Y
3
13-29
Distributed Arithmetic
Serial Distributed Arithmetic for Computing A-Y
0
+ B-Y
1
+ C-Y
2
+ D-Y
3
13-30
Distributed Arithmetic
LUT-Based SDA for Computing A-Y
0
+ B-Y
1
+ C-Y
2
+ D-Y
3
13-31
Distributed Arithmetic
LUT Technique for Distributed Arithmetic
13-32
Distributed Arithmetic
SDA 16-MAC Circuit
13-33
Distributed Arithmetic
SDA 16-Tap FIR Filter
13-34
Parallel Distributed Arithmetic