Solution additionneur logique
Solution :
Essayons d’abord de créer le signal S. A B C R S
Imaginons d’abord que nous n’avons pas de 0 0 0 0 0
report (donc pas de colonne C). 0 0 1 0 1
S vaut 1 quand un seul des deux chiffres à 0 1 0 0 1
additionner vaut 1, ce qui correspond à un OU- 0 1 1 1 0
Exclusif comme dans l’additionneur logique 1 0 0 0 1
« partiel ». 1 0 1 1 0
1 1 0 1 0
Donc on a (A ⊕B). Maintenant, prenons en 1 1 1 1 1
compte C. Si C vaut zéro, alors rien ne change,
S = (A ⊕B). Mais si (A ⊕B) vaut 0 et que C vaut1, alors S vaut 1. Et si C vaut 1 et (A ⊕B)
vaut 1, alors S vaut 0.
On doit donc faire un OU-Exclusif entre C et la somme de A et B, donc un OU-Exclusif
avec (A ⊕B). Donc, S = (A ⊕B) ⊕C.
B
S
C
Maintenant, voyons pour R… Il y a un report si au moins deux des trois signaux valent 1.
Divisons ces cas de figure en deux :
- Soit C vaut 1 et on veut qu’un seul des deux autres soit égal à 1
- Soit A et B valent 1, tous les deux
A B C R S
Ces deux cas ci 0 0 0 0 0
correspondent à C=1 et 0 0 1 0 1
un seul des deux autres 0 1 0 0 1
est égal à 1 0 1 1 1 0
1 0 0 0 1
1 0 1 1 0 Ces deux cas ci
1 1 0 1 0 correspondent à A=1 et
1 1 1 1 1 B=1.
Remettons tout ça en une phrase : R vaut 1 si (A=1 ET B=1) OU si (C=1 ET (parmi A et B,
un seul vaut 1)).On a là quasiment une formule : (A ∧ B) ∨ (C ∧ (A ⊕ B)), qui nous donne
un circuit : A
B
C R
Les deux circuits peuvent être mis ensemble pour pouvoir supprimer une porte, car les
deux formules utilisent « A ⊕ B », ce qui nous donne l’additionneur logique complet :
A
B
S
C
Ce circuit permet de réaliser n’importe quelle addition de deux bits avec report, en
début, milieu ou fin d’opération.
Toute la puissance de ce circuit réside dans le fait qu’il peut être combiné à lui-
même : si on ajoute deux autres entrées, A1 et B1, et qu’on prend la sortie R1 pour en
faire l’entrée R1 du circuit suivant, on obtient un circuit qui est capable
d’additionner deux nombres binaires de deux chiffres chacun. Le premier nombre
est composé de A1 et A0 (A1 est le chiffre binaire de rang 1 et A0 le chiffre de rang 0), le
second de B1 et B0 :
Premier nombre, A1A0
Deuxième nombre, B1B0
Sens de la lecture
du résultat
Si vous essayez de réaliser ce circuit, vous obtiendrez, pour A1A0=10 et B1B0=11 les trois
sorties suivantes, à lire de bas vers le haut : 101. Et en effet, en binaire, 10+11=101 (en
décimal, cela donne 2+3=5).
Voici ensuite un additionneur « 4 bits », qui est capable de faire la somme de deux
nombres de 4 chiffres binaires chacun, avec pour exemple 1100+1011=10111
(12+11=23), et encore après, un additionneur 8 bits qui nous dit que
10111100+01111010=100110110 (soit 188+122=310).
Si ces circuits semblent gigantesques sur papier, la miniaturisation permet en
réalité aux ordinateurs de réaliser des additions binaires avec très peu d’espace.