Applications of Distributed
Arithmetic to Digital Signal
Processing:
A Tutorial Review
Ref: Stanley A. White, “Applications ofDistributed Arithmetic to Digital Signal
Processing: A Tutorial Review,” IEEE ASSP Magazine, July, 1989
Outline:
Outline:
• Distributed Arithmetic (DA) Introduction • Technical overview of DA
• Increasing the speed of DA multiplication
• Application of DA to a biquadratic digital filter
Introduction
Introduction
• The most-often encountered form of computation in DSP:
– Sum of product – Dot-product – Inner-product
– Executed most efficiently by DA
• By careful design one may reduce gate count in a signal processing arithmetic unit by a number
Technical overview of DA
Technical overview of DA
• Advantage of DA: efficiency of mechanization • A frequently argued:
– slowness because of its inherent bit-serial nature (not true)
• Some modifications to increase the speed by employing techniques:
– Plus more arithmetic operations
Technique overview
Technique overview
-continued I-continued I• The sum of product:
– where xk is a 2’s-complement binary number scale
d such that | xk |<1 Ak is fixed coefficients
• xk : {bk0, bk1, bk2……, bk(N-1) } , word length=N
– where bk0 is the sign bit
– Express each xk as:
• (2) 代入 (1) => K k k kx A y 1 (1)
1 1 0 2 N n n kn k k b b x (2) K N n kn k k b b A y 0 1 2 (3)Technique overview
Technique overview
-continued II-continued II• Critical step
– where K=No. of taps (inputs), N: Wordlength of Data K k N n n kn k k b b A y 1 1 1 0 2 (3) 1 1 1 0 1 ) ( 2 N n K k k k n K k kn kb A b A y (4)
Technique overview
Technique overview
-continued III-continued III• Consider the equation (4)
– has only 2K possible values
– has only 2K possible values
– We can store it in a lookup-table(ROM): size=2*2K
1 1 1 0 1 ) ( 2 N n K k k k n K k kn kb A b A y K k kn kb A 1 K k k k b A 1 0) (
Technique overview
Technique overview
-continued IV-continued IV• Example
– Let no. of taps K=4
– and the fixed coefficients are A1=0.72, A2=-0.3,
A3=0.95, A4=0.11
– We need 22K = 32-word ROM (k=4)
1 1 1 0 1 ) ( 2 N n K k k k n K k kn kb A b A y
Example
Example
• Unfolding n n n n k kn kb Ab A b A b A b A 1 1 2 2 3 3 4 4 4 1 ) ( ) ( ) ( ) ( ) ( 0 , 4 4 0 , 3 3 0 , 2 2 0 , 1 1 4 1 0 b A b A b A b A b A k k k Example
Example
-continued I-continued IExample
Example
-continued II-continued II• Shorten the table
– eq. (4) n n n n k kn kb Ab A b A b A b A 1 1 2 2 3 3 4 4 4 1 4 1 0 4 1 0) ( ) ( k k k k k k b A b A 1 1 1 0 1 ) ( 2 N n K k k k n K k kn kb A b A y (5)
Example
Example
-continued II-continued IIHardware architecture
Only 16 words of ROM are required,now.
Technique overview
Technique overview
-advanced-advanced• Input 1 1 ) 1 ( 0 2 2 N n N n kn k k b b x
1 1 0 2 N n n kn k k b b x 2‘s-complement
1 ( 1) 0 0 2 2 1 N N n kn kn k k k b b b b x (7) (6) } ,... , { )] ( [ 2 1 ) 1 ( 1 0 k k k k k n k x x b b b xTechnique overview
Technique overview
-advanced I-advanced I
1 1 ) 1 ( 0 0 2 2 2 1 N n N n kn kn k k k b b b b x 1 0 ) 1 ( 2 2 2 1 N n N n kn k c x K k k kx A y 1 代入 1 0 ) 1 ( 1 ) 1 ( 1 0 0 2 2 2 2 2 1 N n N n n K k N n kn N n k c Q b Q A y Where and K k c A b Q( ) { 1,1} 0 , 0 , ) ( kn kn kn kn kn kn where c n n b b b b c K Ak Q(0)Technique overview
Technique overview
-advanced II-advanced IImultiplication
multiplication
• The way I:
– Plus more arithmetic operations
1 0 ) 1 ( 0 2 2 N n N n n Q b Q y Initial condition 1 0 ) 1 ( 1 ) 2 ( 2 1 1 0 0 2 2 .... 2 2 2 N n N N N N n n Q b Q b Q b Q b b Q
multiplication
multiplication
• Hardware architecture of way I
-at the expense of linearly
increased memory & arithmetic operation
Initial Condition 1/2*Q(0) N 1Q b 2 n 2 (N 1)Q 0 y Odd part(sign} Even part
multiplication
multiplication
• The way II:
- at the expense of exponentially
increased memory
• ROM : 2*7 words => 1*128 words
digital filter
digital filter
• Transfer function of a typical biquadratic digital filter:
• The time-domain description:
2 2 1 1 2 2 1 1 0 1 ) ( ) ( z B z B z A z A A z X z Y T n n n n nx x y y x B B A A A z Y( ) [ 0 1 2 1 2][ 1 2 1 2]
digital filter
digital filter
digital filter
digital filter
• The vector matrix equation
• The relationships between two equations 1 1 1 2 1 0 2 2 2 1 1 1 n n n n n n v u x d d a b c a c b a y v u 2 1 1 2 1 1 1 2 1 2 2 2 1 2 1 2 1 0 2 2 1 0 2 2 1 1 1 0 0 ) ( ) ( ) ( ) ( b b B d b d c a d b d c a c c b b a A b b a d a d a A a A
digital filter
digital filter
• Normal form biquadratic filter
b 1 z- 1 c 1 a1 d 1 z- 1 d 2 a 0 c 2 z- 1 a2 xn yn vn un
digital filter
digital filter
digital filter
digital filter
digital filter
digital filter
• Increase speed II – 2048 word/ROM – require 4 ROM – 4 operationsdigital filter
digital filter
• Increase speed III
– 32 word/ROM – require 8 ROM – 8 operations
Conclusions
Conclusions
• DA is a very efficient means to
mechanize computations that are dominated by inner products
• If performance/cost ratio is critical, DA should be seriously considered as a contender
• When a many computing methods are compared, DA should be considered. It is not always (but often) best, and never poorly.