Lookahead Carry Unit

From Self-sufficiency
Jump to: navigation, search

A Lookahead Carry Unit (LCU) is a logical unit in digital circuit design used to decrease calculation time in adder units and used in conjunction with carry look-ahead adders (CLAs).

4-bit adder

A single 4-bit CLA is shown below:

File:4-bit carry lookahead adder.svg
4-bit adder with Carry Look Ahead (CLA)

16-bit adder

By combining four 4-bit CLAs, a 16-bit adder can be created but additional logic is needed in the form of an LCU.

The LCU accepts the group propagate (<math>P_G</math>) and group generate (<math>G_G</math>) from each of the four CLAs. <math>P_G</math> and <math>G_G</math> have the following expressions for each CLA adder:[1]

<math>P_G = P_3 \cdot P_2 \cdot P_1 \cdot P_0</math>
<math>G_G = G_3 + P_3 \cdot G_2 + P_3 \cdot P_2 \cdot G_1 + P_3 \cdot P_2 \cdot P_1 \cdot G_0</math>

The LCU then generates the carry input for each CLA.

Assume that <math>P_i</math> is <math>P_G</math> and <math>G_i</math> is <math>G_G</math> from the ith CLA then the output carry bits are

<math>C_{4} = G_0 + P_0 \cdot C_0</math>
<math>C_{8} = G_{4} + P_{4} \cdot C_{4}</math>
<math>C_{12} = G_{8} + P_{8} \cdot C_{8}</math>
<math>C_{16} = G_{12} + P_{12} \cdot C_{12}</math>

Substituting <math>C_{4}</math> into <math>C_{8}</math>, then <math>C_{8}</math> into <math>C_{12}</math>, then <math>C_{12}</math> into <math>C_{16}</math> yields the expanded equations:

<math>C_{4} = G_0 + P_0 \cdot C_0</math>
<math>C_{8} = G_4 + G_0 \cdot P_4 + C_0 \cdot P_0 \cdot P_4</math>
<math>C_{12} = G_8 + G_4 \cdot P_8 + G_0 \cdot P_4 \cdot P_8 + C_0 \cdot P_0 \cdot P_4 \cdot P_8</math>
<math>C_{16} = G_{12} + G_8 \cdot P_{12} + G_4 \cdot P_8 \cdot P_{12} + G_0 \cdot P_4 \cdot P_8 \cdot P_{12} + C_0 \cdot P_0 \cdot P_4 \cdot P_8 \cdot P_{12}</math>

<math>C_{4}</math> corresponds to the carry input into the second CLA; <math>C_{8}</math> to the third CLA; <math>C{12}</math> to the fourth CLA; and <math>C_{16}</math> to overflow carry bit.

In addition, the LCU can calculate its own propagate and generate:

<math>P_{LCU} = P_0 \cdot P_4 \cdot P_8 \cdot P_{12}</math>
<math>G_{LCU} = G_{12} + G_8 \cdot P_{12} + G_4 \cdot P_8 \cdot P_{12} + G_0 \cdot P_4 \cdot P_8 \cdot P_{12} + C_0 \cdot P_0 \cdot P_4 \cdot P_8 \cdot P_{12} = C_{16}</math>

64-bit adder

By combining 4 CLAs and an LCU together creates a 16-bit adder. Four of these units can be combined to form a 64-bit adder. An additional (second-level) LCU is needed that accepts the propagate (<math>P_{LCU}</math>) and generate (<math>G_{LCU}</math>) from each LCU and the four carry outputs generated by the second-level LCU are fed into the first-level LCUs.

File:64-bit lookahead carry unit.svg
64-bit adders with a second-level LCU

References

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />

ko:예측 자리올림수 장치

ru:Схема ускоренного переноса
  1. http://www.seas.upenn.edu/~ese171/lab/CarryLookAhead/CarryLookAheadF01.html