200 likes | 1.9k Views
Carry-Select Adders. Consider the Following Partitioned Addition:. 101 +110. 101 +111. 110 +001. 1 011 0. 100 0. 111 0. 1 100 1. 101 1. 000 1. 1 100 100 111. 4-Bit Carry Select. X = 1 0 1 1 0 1 1 0 +Y = 0 0 1 0 1 1 0 1
E N D
Carry-Select Adders • Consider the Following Partitioned Addition: 101 +110 101 +111 110 +001 1 011 0 100 0 111 0 1 100 1 101 1 000 1 1 100 100 111
4-Bit Carry Select X = 1 0 1 1 0 1 1 0 +Y = 0 0 1 0 1 1 0 1 sum 1 1 0 1 0 0 1 1 cout 0 1 sum 1 1 1 0 cout 0 } cin = 0 } cin = 1 • Answer: 1110 0011 • cin 1 for Least Significant Nibble • Must Wait for 4 “Ripples” to Select • Can Divide into Groups of Two
2-Bit Carry Select X = 1 0 1 1 0 1 1 0 +Y = 0 0 1 0 1 1 0 1 sum 1 0 0 1 0 0 1 1 cout 0 1 1 0 sum 1 1 1 0 0 1 cout 0 1 1 } cin = 0 } cin = 1 • Answer: 11 10 00 11 • cin 1 for Least Significant 2 Bits • Must Wait for 2 “Ripples” to Select • Can Divide into Groups of One – Carry Select
1-Bit Carry-Select/Cond. Sum X = 1 0 1 1 0 1 1 0 +Y = 0 0 1 0 1 1 0 1 sum 1 0 0 1 1 0 1 1 cout 0 0 1 0 0 1 0 0 sum 0 1 1 0 0 1 0 cout 1 0 1 1 1 1 1 } cin = 0 } cin = 1 • Answer: 11 10 00 11 • cin 1 for Least Significant 1 Bit • Must Wait for 1 “Ripples” to Select • Can Divide into Groups of One – Conditional Sum
Optimizations/Implementation • Carry Select/Conditional Sum Implemented as Adders with MUX Tree (1-bit Cells for Conditional Sum) • Carry Select is Conditional Sum with One Set of Groups - Not Necessarily with Group Size = 1 • CLA/Conditional Sum Approximately Same Speed • CLA Generally has More Efficient Layout • Trees are Hard (irregular) – CLA More Popular • Prefix Generators are Optimal in speed/area Tradeoff