Carry Look-Ahead Adders in Digital Systems

 
 
 
ECE 352
Digital System Fundamentals
 
Carry Look-Ahead Adders
 
 
Optimize The Slow Part: Carry Chain
 
For big adders, the carry chain is very long…
Separate the carry and sum logic in a full adder
so that we can optimize the carry logic
Partial Full Adder (PFA): a full adder without carry logic
Modify the carry-chain logic to be a 2-level function
instead of a multi-level function
 
PFA
 
Carry
Chain
 
Carry Look-Ahead Adder (CLA)
 
As usual, can trade area/power for speed
Multi-level logic (ripple carry) reduces area
Flattening carry logic increases speed
Make carry logic a 2-level function of:
Generate (G)
“Based on the operand values at just this bit position, will the
carry-out for this position be 1 regardless of the carry-in?”
Propagate (P)
“Based on the operand values at just this bit position, will the
carry-out for this position be equal to the carry-in?”
 
Ripple-Carry Adder
Each carry bit is a 
multi-level
 function of the
generates and propagates of the lower positions
 
C
3
 = G
2
 + P
2
 C
2
    = G
2
 + P
2
 (G
1
 + P
1
 C
1
)
    = G
2
 + P
2
 (G
1
 + P
1
 (G
0
 + P
0
 C
0
))
 
Carry Look-Ahead Adder
Each carry bit is a 
two-level
 function of the
generates and propagates of the lower positions
 
Getting There Algebraically
“Flatten” the ripple-carry equation to two levels
 
C
3
 = G
2
 + P
2
 (G
1
 + P
1
 (G
0
 + P
0
 C
0
))
 
    = G
2
 + P
2
 G
1
 + P
2
 P
1
 (G
0
 + P
0
 C
0
)
 
    = G
2
 + P
2
 G
1
 + P
2
 P
1
 G
0
 + P
2
 P
1
 P
0
 C
0
 
Carry Look-Ahead Logic
You do not need to memorize
the function for each carry bit!
Instead, remember what
generate
 and 
propagate
mean, and how 
MATH
 works
C
3
 
C
3
 =
 
C
3
 will be 1 if
 
G
2
 
bit 2 generates a carry
,
 
+     
G
1
 
or if 
bit 1 generates a carry
 
and 
it propagates at bit 2
,
 
P
2
 
+         
G
0
 
or if 
bit 0 generates a carry
 
and 
it propagates at bit 1
 
P
1
 
P
2
 
and 
bit 2
,
 
+             
C
0
 
or if 
the carry-in at the least-significant bit is 1
 
P
0
 
and 
it propagates at bit 0
 
P
1
 
and 
bit 1
 
P
2
 
and 
bit 2
.
 
Extending Carry Look-Ahead
 
Higher carry indices require more AND gates and
a bigger OR gate
There is a practical limit on the size of gates…
 
How can we make wider adders? 
Hierarchy!
Add look-ahead outputs indicating if the 4-bit 
group
 of
PFAs generate or propagate a carry to the next 
group
A higher-level look-ahead block uses group generates
and propagates to determine carry-ins for each 
group
 
Same idea as before, but for a 
group
 of bits
“Does this 
GROUP
 generate a carry?”
“Does this 
GROUP
 propagate a carry?”
 
Extending Carry Look-Ahead
Replace C
4
 output with a group generate output 
G
G
,
and a group propagate output 
P
G
 
16-Bit Carry Look-Ahead Adder
Entire 4-bit carry look-ahead adders (instead of
PFAs) are connected to a top-level look-ahead
Top-level look-ahead produces carry-in bits for
each 4-bit CLA block based on group generates
and propagates of the lower CLA blocks
 
16-Bit Carry Look-Ahead Adder
Entire 4-bit carry look-ahead adders (instead of
PFAs) are connected to a top-level look-ahead
Top-level look-ahead produces carry-in bits for
each 4-bit CLA block based on group generates
and propagates of the lower CLA blocks
 
16-Bit Carry Look-Ahead Adder
Entire 4-bit carry look-ahead adders (instead of
PFAs) are connected to a top-level look-ahead
Top-level look-ahead produces carry-in bits for
each 4-bit CLA block based on group generates
and propagates of the lower CLA blocks
 
Extending Further…
 
We can make even larger carry look-ahead
adders by adding more levels of hierarchy
Build a 64-bit CLA with four 16-bit CLAs plus
another look-ahead block
Each 16-bit CLA would need a group generate and a
group propagate output in its top-level look-ahead
Does this 
group
 of 16 bits 
generate
 a carry?
Does this 
group
 of 16 bits 
propagate
 a carry?
 
Hierarchical CLA carry chain is no longer two-level
But far fewer levels than if it were a ripple-carry adder!
 
CLA delay grows more slowly with operand size
 
 
 
ECE 352
Digital System Fundamentals
 
Carry Look-Ahead Adders
Slide Note

In this presentation, we will be discussing the carry look-ahead adder.

Embed
Share

Explore the concept of Carry Look-Ahead Adders in digital system fundamentals. Learn how to optimize the carry chain, implement Partial Full Adders, and enhance speed by flattening carry logic. Dive into the mathematics behind Ripple-Carry Adders and Carry Look-Ahead Adders, unraveling multi-level functions and two-level functions for carry bits. Discover the algebraic approach to flattening ripple-carry equations for improved efficiency in adder circuits.

  • Digital Systems
  • Carry Look-Ahead Adders
  • Ripple-Carry Adder
  • Adder Circuits
  • Algebraic Approach

Uploaded on Oct 02, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. ECE 352 Digital System Fundamentals Carry Look-Ahead Adders Carry Look-Ahead Adders 1 1 1

  2. Optimize The Slow Part: Carry Chain For big adders, the carry chain is very long Separate the carry and sum logic in a full adder so that we can optimize the carry logic Partial Full Adder (PFA): a full adder without carry logic Modify the carry-chain logic to be a 2-level function instead of a multi-level function Carry Look-Ahead Adders A B Carry Chain Cout Cin G P Cin Cout Cin PFA A B S S 2 2 2

  3. Carry Look-Ahead Adder (CLA) As usual, can trade area/power for speed Multi-level logic (ripple carry) reduces area Flattening carry logic increases speed Make carry logic a 2-level function of: Generate (G) Based on the operand values at just this bit position, will the carry-out for this position be 1 regardless of the carry-in? Propagate (P) Based on the operand values at just this bit position, will the carry-out for this position be equal to the carry-in? Carry Look-Ahead Adders 3 3 3

  4. Ripple-Carry Adder Each carry bit is a multi-level function of the generates and propagates of the lower positions C3 = G2 + P2 C2 = G2 + P2 (G1 + P1 C1) = G2 + P2 (G1 + P1 (G0 + P0 C0)) Carry Look-Ahead Adders Ripple-carry adder C3 equation C4 C4 C0 C0 G3 G3 P3 P3 C3 C3 G2 G2 P2 P2 C2 C2 G1 G1 P1 P1 C1 C1 G0 G0 P0 P0 G G P P Cin Cin G G P P Cin Cin G G P P Cin Cin PFA PFA PFA PFA PFA PFA A A B B S S A A B B S S A A B B S S A3 A3 B3 B3 S3 S3 A2 A2 B2 B2 S2 S2 A1 A1 B1 B1 S1 S1 A0 A0 B0 B0 S0 S0 4 4 4

  5. Carry Look-Ahead Adder Each carry bit is a two-level function of the generates and propagates of the lower positions Carry Look-Ahead Adders C4 C0 G3 P3 C3 G2 P2 C2 G1 P1 C1 G0 P0 G P Cin G P Cin G P Cin PFA PFA PFA A B S A B S A B S A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 5 5 5

  6. Getting There Algebraically Flatten the ripple-carry equation to two levels C3 = G2 + P2 (G1 + P1 (G0 + P0 C0)) = G2 + P2 G1 + P2 P1 (G0 + P0 C0) = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0 Carry look-ahead adder C3 equation Carry Look-Ahead Adders C4 C4 C0 C0 6 6 6 G3 G3 P3 P3 C3 C3 G2 G2 P2 P2 C2 C2 G1 G1 P1 P1 C1 C1 G0 G0 P0 P0

  7. Carry Look-Ahead Logic You do not need to memorize the function for each carry bit! Instead, remember what generate and propagate mean, and how MATH works C3 C0 A3 A2 A1 A0 + B3 B2 B1 B0 Carry Look-Ahead Adders + G1 P2 + C0 P1 P2 C3 = G2 + G0 P1 P2 P0 C3 will be 1 if or if bit 1 generates a carry and it propagates at bit 2, or if bit 0 generates a carry and it propagates at bit 1 or if the carry-in at the least-significant bit is 1 and it propagates at bit 0 bit 2 generates a carry, and bit 2, and bit 1 and bit 2. 7 7 7

  8. Extending Carry Look-Ahead Higher carry indices require more AND gates and a bigger OR gate There is a practical limit on the size of gates Carry Look-Ahead Adders How can we make wider adders? Hierarchy! Add look-ahead outputs indicating if the 4-bit group of PFAs generate or propagate a carry to the next group A higher-level look-ahead block uses group generates and propagates to determine carry-ins for each group Same idea as before, but for a group of bits Does this GROUP generate a carry? Does this GROUP propagate a carry? 8 8 8

  9. Extending Carry Look-Ahead Replace C4 output with a group generate output GG, and a group propagate output PG GG is 1 if the group will generate a carry PG is 1 if the group will propagate the carry Carry Look-Ahead Adders GG PG C4 C0 C0 9 9 9 G3 G3 P3 P3 C3 C3 G2 G2 P2 P2 C2 C2 G1 G1 P1 P1 C1 C1 G0 G0 P0 P0

  10. 16-Bit Carry Look-Ahead Adder Entire 4-bit carry look-ahead adders (instead of PFAs) are connected to a top-level look-ahead Top-level look-ahead produces carry-in bits for each 4-bit CLA block based on group generates and propagates of the lower CLA blocks 4-bit look-ahead block Carry Look-Ahead Adders Look-Ahead C2 G2 P2 C16 C4 C0 G3 P3 C3 G1 P1 C1 G0 P0 GG3 PG3 C12 GG2PG2 GG C8 GG1 PG1 GG C4 GG0 PG0 GG PG PG GG PG PG Look-Ahead C2 G2 P2 C0 C0 C0 C0 C0 G3 P3 C3 G1 P1 C1 G0 P0 G7 P7 C7 G6 P6 C6 G5 P5 C5 G4 P4 4-Bit Carry Look-Ahead Adder 4-Bit Carry Look-Ahead Adder 4-Bit Carry Look-Ahead Adder G P Cin G P Cin G P Cin G P Cin PFA B PFA B PFA B PFA B A S A S A S A S A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A15 B15 S15 A14 B14 S14 A13 B13 S13 A12 B12 S12 A11 B11 S11 A10 B10 S10 A9 B9 S9 A8 B8 S8 A7 B7 S7 A6 B6 S6 A5 B5 S5 A4 B4 S4 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 4-bit carry look-ahead adders 10 10 10

  11. 16-Bit Carry Look-Ahead Adder Entire 4-bit carry look-ahead adders (instead of PFAs) are connected to a top-level look-ahead Top-level look-ahead produces carry-in bits for each 4-bit CLA block based on group generates and propagates of the lower CLA blocks 4-bit look-ahead block Carry Look-Ahead Adders Look-Ahead C2 G2 P2 C16 C4 C0 G3 P3 C3 G1 P1 C1 G0 P0 C4 = GG0 + PG0C0 GG3 PG3 C12 GG2PG2 GG C8 GG1 PG1 GG C4 GG0 PG0 GG PG PG GG PG PG Look-Ahead C2 G2 P2 C0 C0 C0 C0 C0 G3 P3 C3 G1 P1 C1 G0 P0 G7 P7 C7 G6 P6 C6 G5 P5 C5 G4 P4 4-Bit Carry Look-Ahead Adder 4-Bit Carry Look-Ahead Adder 4-Bit Carry Look-Ahead Adder G P Cin G P Cin G P Cin G P Cin PFA B PFA B PFA B PFA B A S A S A S A S A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A15 B15 S15 A14 B14 S14 A13 B13 S13 A12 B12 S12 A11 B11 S11 A10 B10 S10 A9 B9 S9 A8 B8 S8 A7 B7 S7 A6 B6 S6 A5 B5 S5 A4 B4 S4 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 11 11 11

  12. 16-Bit Carry Look-Ahead Adder Entire 4-bit carry look-ahead adders (instead of PFAs) are connected to a top-level look-ahead Top-level look-ahead produces carry-in bits for each 4-bit CLA block based on group generates and propagates of the lower CLA blocks 4-bit look-ahead block Carry Look-Ahead Adders Look-Ahead C2 G2 P2 C16 C4 C0 G3 P3 C3 G1 P1 C1 G0 P0 GG3 PG3 C12 GG2PG2 GG C8 GG1 PG1 GG C4 GG0 PG0 GG PG PG GG PG PG Look-Ahead C2 G2 P2 C0 C0 C0 C0 C0 G3 P3 C3 G1 P1 C1 G0 P0 G7 P7 C7 G6 P6 C6 G5 P5 C5 G4 P4 4-Bit Carry Look-Ahead Adder 4-Bit Carry Look-Ahead Adder 4-Bit Carry Look-Ahead Adder G P Cin G P Cin G P Cin G P Cin PFA B PFA B PFA B PFA B A S A S A S A S A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 A15 B15 S15 A14 B14 S14 A13 B13 S13 A12 B12 S12 A11 B11 S11 A10 B10 S10 A9 B9 S9 A8 B8 S8 A7 B7 S7 A6 B6 S6 A5 B5 S5 A4 B4 S4 A3 B3 S3 A2 B2 S2 A1 B1 S1 A0 B0 S0 C12 = GG2 + PG2GG1 + PG2PG1GG0 + PG2PG1PG0C0 12 12 12

  13. Extending Further We can make even larger carry look-ahead adders by adding more levels of hierarchy Build a 64-bit CLA with four 16-bit CLAs plus another look-ahead block Each 16-bit CLA would need a group generate and a group propagate output in its top-level look-ahead Does this group of 16 bits generate a carry? Does this group of 16 bits propagate a carry? Carry Look-Ahead Adders Hierarchical CLA carry chain is no longer two-level But far fewer levels than if it were a ripple-carry adder! CLA delay grows more slowly with operand size 13 13 13

  14. ECE 352 Digital System Fundamentals Carry Look-Ahead Adders Carry Look-Ahead Adders 14 14 14

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#