Les Additionneurs Binaires
Les additionneurs binaires sont des circuits arithmétiques sous forme de demi-additionneurs et d’additionneurs complets utilisés pour additionner deux chiffres binaires.
Un autre circuit logique combinatoire commun et très utile qui peut être construit à l’aide de quelques portes logiques de base permettant d’additionner deux ou plusieurs nombres binaires est l’additionneur binaire.
Un circuit d’additionneur binaire de base peut être constitué de portes AND et Ex-OR standards, ce qui nous permet d’« ajouter » ensemble deux nombres binaires à un seul bit, A et B.
L’addition de ces deux chiffres produit une sortie appelée SOMME de l’addition et une seconde sortie appelée PORTÉE ou Carry-out, ( COUT ) bit selon les règles de l’addition binaire. L’un des principaux usages de l’additionneur binaire est dans les circuits arithmétiques et de comptage. Considérons l’addition simple des deux nombres décimaux (base 10) ci-dessous.
123 | A | (Augend) |
+ 789 | B | (Addend) |
912 | SOMME |
Dans nos leçons de mathématiques à l’école, nous avons appris que chaque colonne de chiffres est additionnée en commençant par le côté droit et que chaque chiffre a une valeur pondérée selon sa position dans les colonnes.
Lorsque chaque colonne est additionnée, une portée est générée si le résultat est supérieur ou égal à 10, le nombre de base. Cette portée est ensuite ajoutée au résultat de l’addition de la colonne suivante à gauche, et ainsi de suite, une simple addition scolaire, ajoutez les chiffres et portez.
L’addition de nombres binaires suit exactement la même idée que celle de l’addition de nombres décimaux, mais cette fois, une portée est générée uniquement lorsque le résultat dans une colonne est supérieur ou égal à « 2 », le nombre de base binaire. En d’autres termes, 1 + 1 crée une portée.
Addition Binaire
L’Addition Binaire suit ces mêmes règles de base que pour l’addition décimale ci-dessus, sauf qu’en binaire, il n’y a que deux chiffres, le plus grand chiffre étant « 1 ». Donc, lors de l’addition de nombres binaires, une portée est générée lorsque la « SOMME » est égale ou supérieure à deux (1+1) et devient un bit « CARRY » pour toute addition subséquente transférée à la colonne suivante pour additionner et ainsi de suite. Considérez l’addition d’un bit ci-dessous.
Addition Binaire de Deux Bits
0 | 0 | 1 | 1 |
+ 0 | + 1 | + 0 | + 1 |
0 | 1 | 1 | (carry) 1←0 |
Lorsque les deux bits uniques, A et B sont ajoutés ensemble, l’addition de « 0 + 0 », « 0 + 1 » et « 1 + 0 » donne soit un « 0 » soit un « 1 » jusqu’à ce que vous arriviez à la dernière colonne de « 1 + 1 » puis la somme est égale à « 2 ». Mais le nombre deux n’existe pas en binaire, cependant, 2 en binaire est égal à 10, en d’autres termes, un zéro pour la somme plus un bit de portée supplémentaire.
Ensuite, l’opération d’un simple additionneur nécessite deux entrées de données produisant deux sorties, la Somme (S) de l’équation et un bit de portée (C) comme indiqué.
Schéma Bloc d’un Additionneur Binaire
Pour le problème simple d’addition à 1 bit ci-dessus, le bit de portée résultant pourrait être ignoré mais vous avez peut-être remarqué autre chose concernant l’addition de ces deux bits, la somme de leur addition binaire ressemble à celle d’une Porte Exclusive-OR. Si nous étiquetons les deux bits comme A et B, alors la table de vérité résultante est la somme des deux bits mais sans la portée finale.
Porte Exclusive-OR à 2 Entrées
Symbole | Table de Vérité | ||
![]() Porte Ex-OR à 2 entrées
|
B | A | S |
0 | 0 | 0 | |
0 | 1 | 1 | |
1 | 0 | 1 | |
1 | 1 | 0 |
Nous pouvons voir à partir de la table de vérité ci-dessus que la porte Exclusive-OR ne produit une sortie « 1 » que lorsque l’un des deux entrées est à la logique « 1 », mais pas les deux, à l’instar de l’addition binaire des deux bits précédents. Cependant, afin d’effectuer l’addition de deux nombres, les microprocesseurs et les calculatrices électroniques nécessitent du bit de portée supplémentaire pour calculer correctement les équations, donc nous devons réécrire la somme précédente pour inclure deux bits de données en sortie comme indiqué ci-dessous.
00 | 00 | 01 | 01 |
+ 00 | + 01 | + 00 | + 01 |
00 | 01 | 01 | 10 |
À partir des équations ci-dessus, nous savons maintenant qu’une Porte Exclusive-OR produira uniquement une sortie « 1 » lorsque « UN » des entrées est à la logique « 1 ». Donc, nous avons besoin d’une sortie supplémentaire pour produire le bit de portée lorsque les deux entrées A et B sont à la logique « 1 ». Une porte numérique qui convient parfaitement et qui produit une sortie « 1 » lorsque ses deux entrées A et B sont « 1 » (HAUT) est la Porte AND standard.
Porte AND à 2 Entrées
Symbole | Table de Vérité | ||
![]() Porte AND à 2 entrées
|
B | A | C |
0 | 0 | 0 | |
0 | 1 | 0 | |
1 | 0 | 0 | |
1 | 1 | 1 |
En combinant la Porte Exclusive-OR avec la Porte AND, nous obtenons un circuit d’additionneur binaire numérique simple connu couramment sous le nom de « Demi Additionneur ».
Circuit d’un Demi Additionneur
Un demi-additionneur est un circuit logique qui effectue une opération d’addition sur deux chiffres binaires. Le demi-additionneur produit une somme et une valeur de portée qui sont toutes deux des chiffres binaires.
Table de Vérité du Demi Additionneur avec Sortie de Portée
Symbole | Table de Vérité | |||
![]() |
B | A | SOMME | PORTÉE |
0 | 0 | 0 | 0 | |
0 | 1 | 1 | 0 | |
1 | 0 | 1 | 0 | |
1 | 1 | 0 | 1 |
À partir de la table de vérité du demi-additionneur, nous pouvons voir que la sortie SOMME (S) est le résultat de la Porte Exclusive-OR et la sortie de portée (Cout) est le résultat de la Porte AND. Ensuite, l’expression booléenne pour un demi-additionneur est la suivante.
Pour le bit SOMME :
SOMME = A XOR B = A ⊕ B
Pour le bit PORTÉE :
PORTÉE = A AND B = A.B
Un inconvénient majeur du circuit Demi Additionneur lorsqu’il est utilisé comme additionneur binaire est qu’il n’y a pas de provision pour un « Carry-in » provenant du circuit précédent lorsqu’il s’agit d’additionner plusieurs bits de données.
Par exemple, supposons que nous souhaitons additionner deux octets de données de 8 bits, toute portée résultante devra pouvoir « se propager » ou se déplacer à travers les motifs de bits en commençant par le bit le moins significatif (LSB). L’opération la plus compliquée que le demi-additionneur peut effectuer est « 1 + 1 », mais comme le demi-additionneur n’a pas d’entrée de portée, la valeur ajoutée résultante serait incorrecte. Un moyen simple de surmonter ce problème est d’utiliser un circuit d’additionneur binaire de type Additionneur Complet.
Circuit d’un Additionneur Complet
La principale différence entre l’Additionneur Complet et le précédent Demi Additionneur est qu’un additionneur complet a trois entrées. Les mêmes deux entrées de données à un bit A et B comme auparavant, plus une entrée Carry-in (C-in) supplémentaire pour recevoir la portée d’un stade précédent comme illustré ci-dessous.
Schéma Bloc d’Additionneur Complet
Alors, l’additionneur complet est un circuit logique qui effectue une opération d’addition sur trois chiffres binaires et tout comme le demi-additionneur, il génère également une portée pour la colonne d’addition suivante. Donc, un Carry-in est une portée possible d’un chiffre moins significatif, tandis qu’une Carry-out représente un transport vers un chiffre plus significatif.
D’une certaine manière, l’additionneur complet peut être considéré comme deux demi-additionneurs connectés ensemble, le premier demi-additionneur passant sa portée au deuxième demi-additionneur, comme montré.
Diagramme Logique d’un Additionneur Complet
Comme le circuit d’additionneur complet ci-dessus est fondamentalement deux demi-additionneurs connectés ensemble, la table de vérité pour l’additionneur complet inclut une colonne supplémentaire pour tenir compte de l’entrée Carry-in, CIN ainsi que de la sortie sommé, S et le bit de portée, COUT.
Table de Vérité d’un Additionneur Complet avec Portée
Symbole | Table de Vérité | ||||
![]() |
C-in | B | A | Somme | C-out |
0 | 0 | 0 | 0 | 0 | |
0 | 0 | 1 | 1 | 0 | |
0 | 1 | 0 | 1 | 0 | |
0 | 1 | 1 | 0 | 1 | |
1 | 0 | 0 | 1 | 0 | |
1 | 0 | 1 | 0 | 1 | |
1 | 1 | 0 | 0 | 1 | |
1 | 1 | 1 | 1 | 1 |
Ensuite, l’expression booléenne pour un additionneur complet est la suivante.
Pour le BIT SOMME (S) :
SOMME = (A XOR B) XOR Cin = (A ⊕ B) ⊕ Cin
Pour le BIT de PORTÉE (Cout) :
PORTÉE = A AND B OR Cin(A XOR B) = A.B + Cin(A ⊕ B)
Un Additionneur Binaire à n-bits
Nous avons vu ci-dessus que des additionneurs binaires à 1 bit uniques peuvent être construits à partir de portes logiques de base. Mais que se passerait-il si nous voulions additionner deux nombres n-bits, alors n additionneurs complets de 1 bit doivent être connectés ou « en cascade » pour produire ce qu’on appelle un Additionneur à Propagation de Portée.
Un « additionneur à portée de propagation » est simplement « n », des additionneurs complets de 1 bit en cascade, chaque additionneur complet représentant une colonne pondérée unique dans une longue addition binaire. Il est appelé additionneur à portée de propagation car les signaux de portée produisent un effet de « propagation » à travers l’additionneur binaire de droite à gauche, (de LSB à MSB).
Par exemple, supposons que nous souhaitons « additionner » deux nombres de 4 bits, les deux sorties du premier additionneur complet fourniront le chiffre des unités de la somme (S) de l’addition plus un bit de portée qui agit comme le chiffre de portée du prochain additionneur binaire.
Le deuxième additionneur binaire de la chaîne produit également une sortie sommaire (le 2e bit) plus un autre bit de portée et nous pouvons continuer à ajouter plus d’additionneurs complets à la combinaison pour ajouter de plus grands nombres, reliant la sortie du bit de portée du premier additionneur binaire complet au suivant, et ainsi de suite. Un exemple d’un additionneur de 4 bits est donné ci-dessous.
Un Additionneur Binaire à Propagation de Portée de 4 bits
Un inconvénient principal de « l’enchaînement » de plusieurs additionneurs binaires à 1 bit pour additionner de grands nombres binaires est que si les entrées A et B changent, la somme à sa sortie ne sera pas valide jusqu’à ce que toute portée d’entrée ait « propagé » à travers chaque additionneur complet de la chaîne car le bit le plus significatif (MSB) de la somme doit attendre tout changement de l’entrée de portée du bit le moins significatif (LSB). Par conséquent, il y aura un délai fini avant que la sortie de l’additionneur réagisse à tout changement dans ses entrées, entraînant un délai accumulé.
Lorsque la taille des bits additionnés n’est pas trop grande, par exemple, 4 ou 8 bits, ou que la vitesse d’addition de l’additionneur n’est pas importante, ce délai peut ne pas être significatif. Cependant, lorsque la taille des bits est plus grande, par exemple 32 ou 64 bits utilisés dans des additionneurs multi-bits, ou qu’une sommation est requise à une vitesse d’horloge très élevée, ce délai peut devenir prohibitif avec les processus d’addition qui ne sont pas complétés correctement dans un cycle d’horloge.
Ce temps de retard indésirable est appelé Délai de Propagation. Un autre problème appelé « dépassement de capacité » se produit lorsqu’un additionneur n-bits additionne deux nombres parallèles dont la somme est supérieure ou égale à 2n.
L’avantage des additionneurs d’anticipation de portée est que la durée nécessaire à un additionneur d’anticipation de portée pour produire la SOMME correcte est indépendante du nombre de bits de données utilisés dans l’opération, contrairement au temps de cycle qu’un additionneur à propagation parallèle a besoin pour compléter la SOMME, qui est une fonction du nombre total de bits dans l’addendum.
Les circuits d’additionneur complet de 4 bits avec des fonctionnalités d’anticipation de portée sont disponibles sous forme de packages CI standard sous la forme de l’additionneur binaire 74LS83 ou 74LS283 TTL et le CMOS 4008 qui peuvent additionner ensemble deux nombres binaires de 4 bits et générer une SOMME et une sortie PORTÉE comme indiqué.
Symbole Logique 74LS83
Résumé sur l’Additionneur Binaire
Nous avons vu dans ce tutoriel sur les Additionneurs Binaires que les circuits d’additionneurs peuvent être utilisés pour « additionner » ensemble deux nombres binaires produisant un « Carry-out ». Dans sa forme la plus basique, les additionneurs peuvent être réalisés en reliant ensemble une Porte Exclusive-OR avec une Porte AND pour produire un circuit de Demi Additionneur. Deux demi-additionneurs peuvent ensuite être combinés pour produire un Ajouter Complet.
Il existe un certain nombre de CI d’additionneur complet de 4 bits disponibles tels que le 74LS283 et le CD4008, qui additionneront deux nombres binaires de 4 bits et fourniront un bit d’entrée de portée supplémentaire, ainsi qu’un bit de sortie de portée, vous permettant de les enchaîner pour produire des additionneurs de 8 bits, 12 bits, 16 bits, mais le délai de propagation peut être un problème majeur dans les additionneurs à propagations de portée de grande n-bits.