Adders & Subtractors

Adders & Subtractors

ADDERS & SUBTRACTORS Arithmetic Blocks • We’ll first look at adder and multiplier • Look at in “full” non-iterative view, but hardware may require smaller area and less performance so we can then “time-multiplex” a portion of the datapath m an iterative potentially m functionally-identical “full view” m m implementation m © B. Baas 131 Adders • One of the most fundamental arithmetic units • Signal Growth Rule: width of sum = width of input + 1 – for a 2-input adder – both inputs are of equal width • Different styles produce faster or smaller circuits; many types are useful, not just the fastest ones – Ex: add two 3-bit numbers. Likely choose the simplest (slowest) architecture – Ex: 32-bit adder in critical path of a datapath. Likely choose the fastest architecture © B. Baas 132 Two Broad Classes of Adders • Carry-propagate adder (CPA) – What we think of as normal addition – Output is a single word + – Carry must effectively propagate across the entire word • Carry-save adder (sometimes CSA) ... – Sum is not in a “normal” single-word format • Output is in a redundant “carry-save” format • Output consists of 2+ words + • Input consists of 3+ words ... © B. Baas 133 Full Adder • A fundamental adder A B C building block • Adds three bits of equal weight Full adder • Carry has a 2× higher-significance or (3:2) adder positional weight than Sum Carry Sum © B. Baas 134 1) Ripple Carry Adder • We can chain together or “bit slice” full adders to add two numbers • Note the extra input in the LSB position a a a a 3 b3 2 b2 1 b1 0 b0 Carry FA FA FA FA sum sum sum sum © B. Baas 3 2 1 0 135 1) Ripple Carry Adder • The carry ripples through the chain of full adders Carry FA FA FA FA critical path sum3 sum2 sum1 sum0 © B. Baas 136 1) Ripple Carry Adder • Simplest adder • Smallest adder • Slowest adder (for wide words) – However, for narrow word-widths, it can be fast! • We can view most (all?) other CPAs as improved ripple-carry adders © B. Baas 137 Faster Adders • The entire goal to make faster adders is to resolve the carry across the entire adder structure more quickly • A few common faster CPAs: 1) Carry Select − Speculatively add and select later 2) Carry Lookahead − Look at how a carry propagates through a group of bits 3) Conditional-sum (recursive carry select) 4) Carry skip 5) Other parallel prefix adders • Kogge-Stone, 1973 • Brent-Kung, 1982 • etc. © B. Baas 138 Subtraction • Subtraction requires a signed number format – Ex: 2 – 3 = –1 • 2’s complement is the preferred format for fixed-point because subtraction with it is straightforward • 2’s complement subtraction is implemented with a slightly-modified normal adder – A – B = A + (-B) – Recall that for 2’s complement numbers, -B = (~B) + 1 – So now we have A – B = A + (~B) + 1 • Signal growth is the same as with addition © B. Baas 139 Subtraction • It is typically easy to find a place to add a “1” in the LSB position A ~B 00000001 A ~B adder adder cin = 1 A – B A – B © B. Baas 140.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us