next up previous contents
Next: Additionneur à saut de Up: Addition Previous: Additionneur à retenue anticipée

Mise en oeuvre de l'additionneur à anticipation de retenue

Un moyen d'implanter l'additionneur obtenu est de réaliser un circuit calculant la propagation et la génération de retenue pour un étage en fonction de la propagation et la génération des étages précédents.

Il y a propagation à l'étage j si dans les étages i à j il y a toujours eu propagation :


\begin{displaymath}P_{j,i} = p_j \wedge p_{j-1} \ldots p_{i+1} \wedge p_i\end{displaymath}

Il y a génération à l'étage j si c'est l'étage j lui même qui génère, ou si les étages d'avant ont tous généré et propagé :


\begin{displaymath}G_{j,i} = g_j \vee p_j \wedge g_{j-1} \vee p_j \wedge p_{j-1}...
...} \vee \ldots
\vee
p_j \wedge p_{j-1} \ldots p_{i+1} \wedge g_i\end{displaymath}

Donc la retenue à l'étage j peut s'exprimer en fonction de la retenue à l'étage i, i<j :


\begin{displaymath}r_{j+1}= G_{j,i} \vee P_{j,i} \wedge r_i\end{displaymath}

Utilisons un circuit pouvant générer les signaux P1,0, G1,0 et les retenues r1, r2 en fonction des couples (p0, g0), (p1, g1) et de la retenue entrante r0.

Pour un tel circuit :


\begin{displaymath}G_{1,0} = g_1 \vee p_1 \wedge g_0\end{displaymath}


\begin{displaymath}P_{1,0} = p_1 \wedge p_0\end{displaymath}


\begin{displaymath}r_1 = g_0 \vee p_0 \wedge r_0\end{displaymath}

Supposons qu'un additionneur un bit nous calcule aussi la propagation et la génération. Il est possible d'organiser un générateur de retenue en arbre, qui permet d'anticiper chaque retenue avant d'additionner.


 \begin{figure}
\leavevmode
\epsfxsize = 12 true cm
\epsfysize = 12 true cm
\epsfbox{addAnt.eps}\end{figure}


! Un additionneur à anticipation de retenue sur n bits fonctionne en log(n) étapes pour le calcul des n retenues + 1 étape pour l'addition finale.



? Faire fonctionner cet additionneur sur 00101011 + 10110111



next up previous contents
Next: Additionneur à saut de Up: Addition Previous: Additionneur à retenue anticipée
Patrick Marcel
2001-01-24