next up previous contents
Next: Mise en oeuvre de Up: Addition Previous: Additionneur à propagation simple

Additionneur à retenue anticipée (CLA : carry look-ahead adder)

Le principe de cet additionneur est, pour chaque étage d'addition, d'anticiper (to look ahead) la retenue avant de calculer la somme.

Le fait d'obtenir une retenue sortante à un étage d'addition est due à

Ce qui se retrouve dans l'expression de la retenue pour un étage i :


\begin{displaymath}r_{i+1} = (a_i \wedge b_i) \vee (a_i \wedge r_i) \vee (b_i \wedge r_i)
= (a_i \wedge b_i) \vee (a_i \vee b_i) \wedge r_i\end{displaymath}

Ainsi

Donc

\begin{displaymath}r_{i+1} = g_i \vee (p_i \wedge r_i)\end{displaymath}

ce qui, si on développe les ri, donne :


\begin{displaymath}r_{i+1} = g_i \vee (p_i \wedge (g_{i-1} \vee (p_{i-1} \wedge ( \ldots g_0 \vee (p_0 \wedge r_0)\ldots)\end{displaymath}

En développant encore :


\begin{eqnarray*}r_{i+1} = g_i &\vee &(p_i \wedge g_{i-1}) \\
& \vee & (p_i \we...
...i \wedge p_{i-1} \wedge \ldots \wedge p_1 \wedge p_0 \wedge r_0)
\end{eqnarray*}


Ceci permet de calculer chaque retenue en fonction de r0 et des ai, bi des étages précédents.



Patrick Marcel
2001-01-24