350 likes | 544 Views
Unrolling Carry Recurrence. Carry-Lookahead Equations. 4-Bit CLA. Circuit Structure. CLA Complexity. Managing CLA Complexity. Multilevel CLA Example. Radix-16 Addition. Two Binary Numbers Grouped into Hex Digits Block Generate and Propagate Signals in Each radix-16 Digit
E N D
Radix-16 Addition • Two Binary Numbers Grouped into Hex Digits • Block Generate and Propagate Signals in Each radix-16 Digit • Replace c4 Position of CLA Network with Block Signals g[i,i+3] and p[i,i+3] • Results in 4-bit “Lookahead Carry Generator”
Block Generate and Propagate • Assume i0 < i1 < i2 • Example: g[0,3] is Generate Signal of Block for bits 0-3 • Relationships Allow for Merging of Blocks • Can Allow Merged Block to Overlap
Example Merged LAG x15-12 y15-12 x11-8 y11-8 x7-4 y7-4 x3-0 y3-0 CLA 3 CLA 2 CLA 1 CLA 0 c12 c8 c4 c0 g15-12 p15-12 g11-8 p11-8 g7-4 p7-4 g3-0 p3-0 s15-12 s11-8 s7-4 s3-0 Lookahead Carry Generator g15-0 p15-0
Overlapped LAGs • Overlap Blocks [i1,j1] and [i0,j0] • Relationships Become: • Useful for Building Trees of Different Shapes
CLA Latency Example: 64-bit CLA in 13 gate levels since 43 = 64 Generates final carry out for Fig. 6.5
Carry Determination as Prefix Computations • Two Contiguous (or Overlapping) Blocks (g, p) and (g, p) • Merged Block (g, p)g = g + gp p = pp • Large Group Generates Carry if: • left group generates carry • right group generates and left group propagates
Carry Operator, ¢ • Define Operator Over (g, p) Pairs (g, p) = (g, p ) ¢ (g, p) • g = g + gpp = pp • ¢ is Associative (g, p) ¢ (g, p) ¢ (g, p)= [(g, p) ¢ (g, p) ] ¢ (g, p)= (g, p) ¢ [(g, p) ¢ (g, p)]
Carry Operator, ¢ (cont) • ¢ is NOT Commutative (g, p) ¢ (g, p) (g, p)¢ (g, p) • This is Easy to See Because:g = g+ gp g+ g p
Carry Determination • Assume Adder with NO cINci+1 = g[0,i] • Carry Enters i+1 Block iff Generated in Block [0,i] • Assume Adder with cIN = 1 • Viewed as Generated Carry from Stage -1p-1 = 0, g-1 = cIN • Compute g[-1,i] For All i • Formulate Carry Determination as:
Prefix Sums Analogy • Designs for Prefix Sums Can be Converted to Carry Computation • Replace Adder with ¢ Operator • Addition IS Commutative, Order Doesn’t Matter • Can Group (g, p) In Anyway to Combine Into Block Signals (as long as order is preserved) • (g, p) Allow for Overlapping Groups, Prefix Sums Does Not (sum would contain some values added two or times)
Prefix Sum Network (adder levels) (# of adders)
Another Way for Prefix Sums • Compute the Following First:x0+x1x2+x3x4+x5 ... xk-2+xk-1 • Yields the Partial Sums, s1, s3, s5, ..., sk-1 • Next, Even Indexed Sums Computed As:s2j = s2j-1 + x2j
Comparison of Prefix Sum Networks • First Design Faster: lg2(k) versus 2lg2(k)-2 (levels) • First Design has High Fan-out Requirements • First Design Requires More Cells (k/2)lg2k versus 2k-2-lg2k • Second Design is Brent-Kung Parallel Prefix Graph • First Design is Kogge-Stone Parallel Prefix Graph (fan-out can be avoided by distributing computations)
Brent-Kung Network independent,so single delay