Des portes logiques à l'addition
Le demi-additionneur et l'additionneur complet
Additionner deux bits
Comment un circuit fait-il une addition ? Commençons par le cas le plus simple : additionner deux bits A et B. Le résultat tient sur deux chiffres, une somme S et une retenue C (carry). En binaire : 0+0=00, 0+1=01, 1+0=01, 1+1=10. En regardant ces cas, on remarque que la somme S est exactement le XOR de A et B, et la retenue C est exactement le ET de A et B.
Le demi-additionneur
Demi-additionneur (half adder) :
A ---+----[ XOR ]---- S (somme = A XOR B)
| /
B ---+--/
| \
+---[ ET ]----- C (retenue = A ET B)
verification : 1 + 1 -> S = (1 XOR 1) = 0, C = (1 ET 1) = 1 -> resultat binaire 10 (= 2)
Ce circuit s'appelle un demi-additionneur, car il lui manque une chose : il ne sait pas tenir compte d'une retenue entrante, venue de l'addition du bit précédent.
L'additionneur complet
Pour additionner des nombres de plusieurs bits, chaque étage doit accepter trois entrées : A, B, et la retenue entrante C_in. C'est l'additionneur complet (full adder). On l'obtient en assemblant deux demi-additionneurs et une porte OU.
Additionneur complet, colonne par colonne (addition de 1011 + 0110) :
retenue : 1 1 1 0
1 0 1 1
+ 0 1 1 0
---------
1 0 0 0 1 (chaque colonne : A + B + retenue entrante)
(chaque colonne produit un bit de somme et une retenue vers la colonne de gauche)
En chaînant n additionneurs complets, la retenue de sortie de chacun alimentant la retenue d'entrée du suivant, on additionne des nombres de n bits.
Piège classique
Avec un demi-additionneur seul, on ne peut additionner qu'à la toute première colonne (celle de droite), où il n'y a pas encore de retenue entrante. Toutes les colonnes suivantes exigent un additionneur complet : oublier la retenue entrante est l'erreur classique qui donne un résultat faux dès qu'une retenue apparaît.

