Application of Addition Algorithms Joe Cavallaro Overview Addition algorithms – core operation Fixed-point core algorithms easy to implement Basic adder design from full adder cell Ripple carry addition – O(n) Carry propagation bottleneck “Fast” algorithms control carry transport Wireless Communications Applications Key to all matrix algorithms. GPP and DSP processors use a given algorithm Flexible choice in ASIC and FPGA designs Multiuser Detection – Addition bottleneck since multiplications can be eliminated via hard decisions Area-time complexity in choice of Adders Redundant Arithmetic and On-Line Addition Traditional number systems have “0” and “1” and work from LSB to MSB. Redundant arithmetic allows “-1”, “0” and “1” bits per digit – implies multiple representations and “error correction” On-Line arithmetic is bit serial from MSB to LSB Allows for efficient pipelines and allows quick sign detection Challenge is to quantify speedup Adder Equations Full Adder Cell S_I = x_I XOR y_I XOR c_I C_I+1 = x_I AND y_I OR c_I AND (x_I OR y_I) Ripple Carry Adder Carry look-ahead Adder (f,r) Gate Tree Tree Structure Adder – T > log 2n Manchester Carry Chain Carry Skip Adder – comparable to CLA Counter Cell – Multi-operand -> Multiplication Carry-Save Adders Basic cell generate c and s output S = (x + y + z) mod 2 C = ((x + y + z) – s) / 2 Final carry-propagate adder at bottom of tree Carry Save Adder – 4 Operands Carry Save Adder Tree for 6 Operands Levels in the CSA Tree Pipelined Design Timing Diagram for Pipeline Summary Overview of addition algorithms Block structures for RCA, CLA, CSA Introduction to Redundant arithmetic and On-line arithmetic Application to ASICs for Multiuser Detection Reference: Israel Koren