Spezielle Anwendungen des VLSI – Entwurfs Applied VLSI design Course and contest Adder structures Sebastian Kruse Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 1 Types of adders • Redundant • Carry-Save (CSA) • Redundant-Binary (RBA) • Not redundant (CPA) • Ripple-Carry (RCA), Manchester-Carry-Chain (MCC) • Carry-Skip (CSK), Carry-Select (CSEL) • Carry-Lookahead (CLA), Conditional-Sum (CSUM) • Asynchronous adder Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 2 Ripple-Carry adder • • • Serialization of full adders Small area but slow speed In general the best adder for FPGA • FPGA uses LUTs instead of AND, OR, XOR, NOT • Optimized logic which speeds up RCA an-1 bn-1 cout FA sn-1 a1 b1 cn-1 c2 FA s1 a0 b0 c1 FA s0 cin Delay time Area Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 3 Carry-Skip adder • Adder with square timing complexity and low area • Area compared to RCA: 1 πππ /πππ‘, 1 π΄ππ·/ππππ’π, 1 πππ/ππππ’π • Idea: parallel calculation CPA CPA π π−1:π 0 1 CPA 0 1 π π−1:π Delay time Area Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 4 Carry-Lookahead adder • Fast adder with logarithm complexity but high area • Idea: carry is calculated in advance CLA-Block π0 = π0′ π1 = π0 ∨ π0 ∧ π0′ π2 = π1 ∨ π1 ∧ π1′ = π1 ∨ π1 ∧ π0 ∨ π1 ∧ π0 ∧ π0′ … π3′ = π3 ∧ π2 ∧ π1 ∧ π0 π3′ = π3 ∨ π3 ∧ π2 ∨ π3 ∧ π2 ∧ π1 ∨ π3 ∧ π2 ∧ π1 ∧ π0 • Types of implementation (for carry generation) • Slansky • Kogge-Stone • Brent-Kung • Han-Carlson Delay time Area Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 5 Brent-Kung • Idea: use binary tree for carry propagation (π0 , π0 ) π0 (π1 , π1 ) carry tree π1 (π2 , π2 ) (π3 , π3 ) inverse carry tree • Two tree structures π2 π4 π3 π5 (π4 , π4 ) (π5 , π5 ) π6 (π6 , π6 ) (π7 , π7 ) π7 • Carry collection • Carry redistribution Delay time Area Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 6 Comparison on FPGA • RCA • • Area : 103 Max. frequency : 431,779 MHz • CSK • • Area : 125 Max. frequency : 384,025 MHz • Brent Kung • • Area : 109 Max. frequency : 409,500 MHz Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 7 Comparison on ASIC • RCA • • • • Core size : 4634,45 µm² Max. frequency : 3180 MHz Pdyn : 22,154 mW Pleak : 9,875 µW • CSK • • • • Core size: 4324,63 µm² Max. frequency : 2910MHz Pdyn : 18,651 mW Pleak : 8,346 µW • Brent Kung • • • • Core size : 4392,61 µm² Max. frequency : 2980 MHz Pdyn : 19,406 mW Pleak : 8,716 µW Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 8 Thank you for your attention! Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 9 Half / full adder • Half adder ((2,2)-counter) a b cout π =πο π πΆππ’π‘ = π ∧ π HA s • Full adder ((3,2)-counter) a b cout FA cin π = π ο π ο πππ πΆππ’π‘ = (π ∧ π) ∨ (π ∧ πππ ) ∨ (π ∧ πππ ) s Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 10 Comparison of adders CSK 60 tp(nsec) Brent-Kung RCA 40 Brent-Kung 20 0 0 10 Area (mm2) 80 0.4 RCA CSK 0.2 0 20 0 10 20 Number of bits Number of bits Source: mountains.ece.umn.edu (2006) Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 11 Kogge-Stone Institute of Applied Microelectronics and Computer Engineering College of Computer Science and Electrical Engineering, University of Rostock Slide 12