1 / 51

Conditional-Sum Adders and Parallel Prefix Network Adders FPGA Optimized Adders

ECE 645: Lecture 3. Conditional-Sum Adders and Parallel Prefix Network Adders FPGA Optimized Adders. Required Reading. Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design. Chapter 7 .4, Conditional-Sum Adder Chapter 6 .4, Carry Determination as Prefix Computation

Download Presentation

Conditional-Sum Adders and Parallel Prefix Network Adders FPGA Optimized Adders

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE 645: Lecture 3 Conditional-Sum Adders and Parallel Prefix Network Adders FPGA Optimized Adders

  2. Required Reading Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design Chapter 7.4, Conditional-Sum Adder Chapter 6.4, Carry Determination as Prefix Computation Chapter 6.5, Alternative Parallel Prefix Networks

  3. Add-Add-Multiplex Carry Select Adder

  4. Two-level k-bit Carry Select Adder

  5. Add-Add-Multiplex (AAM) Carry Select Adder + stands for the Ripple Carry Adder CCC stands for the Carry Computation Circuit CR stands for the Carry Recovery Circuit

  6. Carry Computation Circuit

  7. Carry Recovery Circuit

  8. Carry & Control Logic in Virtex 4

  9. Carry & Control Logic in Virtex 5

  10. Homework 2 - Bonus Analytical Problem: Find analytically an optimal value of the word size, w, for which a 1024-bit AAM Carry Select Adder has the smallest latency. Implementation Problem: Find experimentally an optimal value of the word size, w, for which a 1024-bit AAM Carry Select Adder has the smallest latency.

  11. Conditional-Sum Adders

  12. One-level k-bit Carry-Select Adder

  13. Two-level k-bit Carry Select Adder

  14. Conditional Sum Adder • Extension of carry-select adder • Carry select adder • One-level using k/2-bit adders • Two-level using k/4-bit adders • Three-level using k/8-bit adders • Etc. • Assuming k is a power of two, eventually have an extreme where there are log2k-levels using 1-bit adders • This is a conditional sum adder

  15. Conditional Sum Adder:Top-Level Block for One Bit Position

  16. Three Levels of a Conditional Sum Adder xi xi+3 yi+3 yi+2 yi+1 yi xi+2 xi+1 branch point 1-bit conditional sum block concatenation c=1 c=1 c=1 c=1 c=0 c=0 c=0 c=0 2 2 2 2 2 2 2 2 1 1 1+1 1 1 2 2 1 1 2 2 1 1 c=0 c=0 c=1 c=1 3 3 3 3 1 2+1 1 2 2 3 3 block carry-indetermines selection 5 4+1 5 c=0 c=1

  17. 16-Bit Conditional Sum Adder Example

  18. Conditional Sum Adder Metrics

  19. Parallel Prefix Network Adders

  20. Parallel Prefix Network Adders Basic component - Carry operator (1) g p B” B’ B g” g’ p” p’ g = g” + g’p” p = p’p” (g, p) = (g’, p’) ¢ (g”, p”) = (g” + g’p”, p’p”)

  21. Parallel Prefix Network Adders Basic component - Carry operator (2) g p overlap okay! B” B’ B g” g’ p” p’ g = g” + g’p” p = p’p” (g, p) = (g’, p’) ¢ (g”, p”) = (g” + g’p”, p’p”)

  22. Properties of the carry operator ¢ Associative [(g1, p1) ¢ (g2, p2)] ¢ (g3, p3) = (g1, p1) ¢ [(g2, p2) ¢ (g3, p3)] Not commutative (g1, p1) ¢ (g2, p2)  (g2, p2) ¢ (g1, p1)

  23. Parallel Prefix Network Adders Major concept Given: (g0, p0) (g1, p1) (g2, p2) …. (gk-1, pk-1) Find: (g[0,0], p[0,0]) (g[0,1], p[0,1]) (g[0,2], p[0,2]) … (g[0,k-1], p[0,k-1]) block generate from index 0 to k-1 ci = g[0,i-1] + c0p[0,i-1]

  24. Similar to Parallel Prefix Sum Problem Parallel Prefix Sum Problem Given: x0 x1 x2 … xk-1 Find: x0 x0+x1 x0+x1+x2 … x0+x1+x2+ …+ xk-1 Parallel Prefix Adder Problem Given: x0 x1 x2 … xk-1 Find: x0 x0 ¢ x1 x0 ¢ x1 ¢ x2 … x0 ¢ x1 ¢ x2 ¢ … ¢ xk-1 where xi = (gi, pi)

  25. Parallel Prefix Sums Network I

  26. Parallel Prefix Sums Network II (Brent-Kung)

  27. 8-bit Brent-Kung Parallel Prefix Network

  28. 4-bit Brent-Kung Parallel Prefix Network x7’ x5’ x3’ x1’ 2 –bit B-K PPN s3’ s1’ s7’ s5’

  29. 8-bit Brent-Kung Parallel Prefix Network Adder

  30. GP c C S Critical Path gi = xi yi pi = xi yi 1 gate delay g= g” + g’ p” p = p’ p” 2 gate delays ci+1 = g[0,i] + c0 p[0,i] 2 gate delays si = pi ci 1 gate delay

  31. Brent-Kung Parallel Prefix Graph for 16 Inputs

  32. Kogge-Stone Parallel Prefix Graph for 16 Inputs

  33. Parallel Prefix Network Adders Comparison of architectures Hybrid Network 2 Brent-Kung Kogge-Stone Delay(k) 2 log2k - 2 log2k log2k+1 Cost(k) 2k - 2 - log2k k/2 log2k k log2k - k + 1 6 5 Delay(16) 4 32 49 Cost(16) 26 Delay(32) 8 6 5 80 129 57 Cost(32)

  34. Latency vs. Area Tradeoff

  35. Hybrid Brent-Kung/Kogge-Stone Parallel Prefix Graph for 16 Inputs

  36. Parallel Prefix Sums Network I

  37. Parallel Prefix Sums Network I – Cost (Area) Analysis Cost = C(k) = 2 C(k/2) + k/2 = = 2 [2C(k/4) + k/4] + k/2 = 4 C(k/4) + k/2 + k/2 = = …. = = 2 log k-1C(2) + k/2 (log2k-1) = = k/2 log2k 2 C(2) = 1 Example: C(16) = 2 C(8) + 8 = 2[2 C(4) + 4] + 8 = = 4 C(4) + 16 = 4 [2 C(2) + 2] + 16 = = 8 C(2) + 24 = 8 + 24 = 32 = (16/2) log2 16

  38. Parallel Prefix Sums Network I – Delay Analysis Delay = D(k) = D(k/2) + 1 = = [D(k/4) + 1] + 1 = D(k/4) + 1 + 1 = = …. = = log2k D(2) = 1 Example: D(16) = D(8) + 1 = [D(4) + 1] + 1 = = D(4) + 2 = [D(2) + 1] + 2 = = 4 = log2 16

  39. Parallel Prefix Sums Network II (Brent-Kung)

  40. Parallel Prefix Sums Network II – Cost (Area) Analysis Cost = C(k) = C(k/2) + k-1 = = [C(k/4) + k/2-1] + k-1 = C(k/4) + 3k/2 - 2 = = …. = = C(2) + (2k - 2k/2(log k-1)) - (log2k-1) = = 2k - 2 - log2k 2 C(2) = 1 Example: C(16) = C(8) + 16-1 = [C(4) + 8-1] + 16-1 = = C(2) + 4-1 + 24-2 = 1 + 28 - 3 = 26 = 2·16 - 2 - log216

  41. Parallel Prefix Sums Network II – Delay Analysis Delay = D(k) = D(k/2) + 2 = = [D(k/4) + 2] + 2 = D(k/4) + 2 + 2 = = …. = = 2 log2k - 1 D(2) = 1 Example: D(16) = D(8) + 2 = [D(4) + 2] + 2 = = D(4) + 4 = [D(2) + 2] + 4 = = 7 = 2 log2 16 - 1

  42. High-Radix Parallel Prefix Network Adders (GMU CERG Research)

  43. Traditional Parallel-Prefix Network Adder

  44. Kogge-Stone Parallel-Prefix Network

  45. Brent-Kung Parallel-Prefix Network

  46. High-Radix Parallel-Prefix Network Adder

  47. Generate-Propagate-Sum (GPS) Unit

  48. Sum Unit

  49. Modular Addition

  50. High-Radix Parallel-Prefix Network Modular Adder

More Related