1 / 31

ECE 301 – Digital Electronics

Multiple-bit Adder Circuits (Lecture #13). ECE 301 – Digital Electronics. The slides included herein were taken from the materials accompanying Fundamentals of Logic Design, 6 th Edition , by Roth and Kinney, and were used with permission from Cengage Learning. .

fremont
Download Presentation

ECE 301 – Digital Electronics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multiple-bit Adder Circuits (Lecture #13) ECE 301 – Digital Electronics The slides included herein were taken from the materials accompanying Fundamentals of Logic Design, 6th Edition, by Roth and Kinney, and were used with permission from Cengage Learning.

  2. ECE 301 - Digital Electronics How do you design a combinational logic circuit to add two 4-bit binary numbers? Multiple-bit Adder Circuits

  3. ECE 301 - Digital Electronics A 4-bit Adder Circuit

  4. ECE 301 - Digital Electronics A 4-bit Adder Circuit • Design a two-level logic circuit • Construct a truth table • 9 inputs (A3..A0, B3..B0, Cin) • 5 outputs (S3..S0, Cout) • Derive minimized Boolean expressions • What is the problem with this design approach? • What happens when n gets large?

  5. ECE 301 - Digital Electronics A 4-bit Adder Circuit • Use a hierarchical design approach. • Design a logic circuit (i.e. module) to add two 1-bit numbers and a carry-in. • 3 inputs (A, B, Cin) • 2 outputs (S, Cout) • Connect 4 modules to form a 4-bit adder. • This design approach can easily be extended to n bits.

  6. ECE 301 - Digital Electronics Two designs for multiple-bit adders: 1. Ripple Carry Adder 2. Carry Lookahead Adder Multiple-bit Adder Circuits

  7. ECE 301 - Digital Electronics Ripple Carry Adder

  8. ECE 301 - Digital Electronics Carry ripples from one column to the next 1 1 1 Carry-in 1 0 1 0 + 1 0 0 1 1 0 1 0 0 Carry-out Ripple Carry Adder

  9. ECE 301 - Digital Electronics Ripple Carry Adder • An n-bit RCA consists of n Full Adders. • The carry-out from bit i is connected to the carry-in of bit (i+1). • Simple design • Relatively slow • Each sum bit can be calculated only after the previous carry-out bit has been calculated. • Delay ~ (n) * (delay of FA)

  10. ECE 301 - Digital Electronics Carry-out An-1 Bn-1 A2 B2 A1 B1 A0 B0 Carry-in FAn-1 FA2 FA1 FA0 … Cn Cn-1 C3 C2 C1 C0 Sn-1 S2 S1 S0 MSB position LSB position Carry ripples from one stage to the next Ripple Carry Adder

  11. ECE 301 - Digital Electronics Multiple-bit Adder Circuits • The Ripple Carry Adder (RCA) may become prohibitively slow as the number of bits to add becomes large. • The Carry Lookahead Adder (CLA) provides a significant increase in speed at the cost of additional hardware (i.e. logic gates).

  12. ECE 301 - Digital Electronics Carry Lookahead Adder

  13. ECE 301 - Digital Electronics Carry Propagate 1 1 1 1 1 A 1 0 0 1 0 1 1 1 0 0 B + 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 Carry End Carry Generate Carry Lookahead Adder

  14. ECE 301 - Digital Electronics Carry Lookahead Adder • A CLA uses the carry generate and carry propagate concepts to produce the carry bits. • A carry is generated iff both A and B are 1. • Generate: G(A,B) = A.B • A carry is propagated if either A or B is 1. • If Cin = 1 and (A or B) = 1 then Cout = 1 • Propagate: P(A,B) = A + B • Alternate Propagate: P*(A,B) = A xor B

  15. ECE 301 - Digital Electronics A xor B = P*(A,B) A.B = G(A,B) Source: Wikipedia – Adder (Electronics) (http://en.wikipedia.org/wiki/Adder_electronics) The Full Adder Circuit

  16. ECE 301 - Digital Electronics Carry Lookahead Adder Source: Wikipedia – Adder (Electronics) (http://en.wikipedia.org/wiki/Adder_electronics)

  17. ECE 301 - Digital Electronics For each bit (or stage) of the multiple-bit adder, the carry-out can be defined in terms of the generate and propagate functions, and the carry-in: Ci+1 = Gi + (Pi . Ci) Carry Lookahead Adder Ai+Bi Ai.Bi carry-in carry-out Pi* can also be used.

  18. ECE 301 - Digital Electronics Carry Lookahead Adder • For bit 0 (LSB): C1 = G0 + (P0 . C0) C1 = (A0 . B0) + ((A0 + B0) . C0) C1 = (A0 . B0) + ((A0 xor B0) . C0) • C1 is a function of primary inputs • Three-level circuit, therefore 3-gate delay • Not a function of previous carries (except C0), therefore no ripple carry. using Pi*

  19. ECE 301 - Digital Electronics Carry Lookahead Adder • For bit 1: C2 = G1 + (P1 . C1) C2 = (A1 . B1) + ((A1 + B1) . C1) C2 = (A1 . B1) + ((A1 + B1) . ((A0 . B0) + ((A0 + B0) . C0)) • C2 is a function of primary inputs • Three-level circuit, therefore 3-gate delay • Not a function of previous carries (except C0), therefore no ripple carry.

  20. ECE 301 - Digital Electronics Carry Lookahead Adder • For bit 2: C3 = G2 + (P2 . C2) C3 = G2 + (P2 . (G1 + (P1 . C1)) C3 = G2 + (P2 . (G1 + (P1 . (G0 + (P0 . C0))) • C3 is a function of primary inputs • Three-level circuit, therefore 3-gate delay • Not a function of previous carries (except C0), therefore no ripple carry.

  21. ECE 301 - Digital Electronics Carry Lookahead Adder • For bit i: Ci+1 = F(G0..Gi, P0..Pi, C0) • For i > 4, the silicon area required for the carry circuits becomes prohibitively large. • Tradeoff: speed vs. area. • How, then, do you build a bigger adder?

  22. ECE 301 - Digital Electronics A15-12 B15-12 A11-8 B11-8 A7-4 B7-4 A3-0 B3-0 CLA3 CLA2 CLA1 CLA0 C12 C8 C4 C0 C16 S15-12 S11-8 S7-4 S3-0 Ripple carry (between CLAs) A 16-bit Adder Circuit

  23. ECE 301 - Digital Electronics (Standard Component) A 4-bit CLA

  24. ECE 301 - Digital Electronics Multiple-bit Adder/Subtractor Circuit

  25. ECE 301 - Digital Electronics Multiple-bit Adder/Subtractor • Build separate binary adder and subtractor • Not common. • Use 2's Complement representation • Addition uses binary adder • Subtraction uses binary adder with 2's Complement representation for subtrahend • Issues • Cannot represent a positive number with the same magnitude as the most negative n-bit number • Must detect overflow

  26. ECE 301 - Digital Electronics A 4-bit Subtractor A – B = A + (-B) represent with 2's complement

  27. ECE 301 - Digital Electronics y y y n – 1 1 0  Add Sub control x x x n – 1 1 0 c c n -bit adder 0 n s s s n – 1 1 0 Multiple-bit Adder/Subtractor

  28. ECE 301 - Digital Electronics Detecting Overflow

  29. ECE 301 - Digital Electronics Detecting Overflow for Addition • Overflow occurs if the result is out of range. • Overflow cannot occur when adding a positive number and a negative number. • Overflow occurs when adding two numbers with the same sign. • Two positive numbers → negative number • Two negative numbers → positive number • Can you write a Boolean expression to detect overflow?

  30. ECE 301 - Digital Electronics Detecting Overflow for Subtraction • Overflow occurs if the result is out of range. • Overflow cannot occur when subtracting two numbers with the same sign. • Overflow occurs when subtracting a positive number from a negative number or a negative number from a positive number. • positive # - negative # → negative # • negative # - positive # → positive # • Can you write a Boolean expression to detect overflow?

  31. ECE 301 - Digital Electronics Questions?

More Related