Les opérateurs arithmétiques binaire

Imaginez que vous souhaitez réaliser quelques calculs dans votre solution robotisée comme additionner deux lots comptés ou connaître le nombre de mètres à affranchir encore pour atteindre le deuxième robot, ... Pour cela, vous aurez besoin d'un composant particulier dont la fonction est de réaliser une opération mathématique, non ? En effet, additionner deux lots revient à réaliser la formule \(S = a + b \) et déterminer le nombre de mètres à encore avancer revient à calculer \( distance_{restant} = distance_{rob1} - distance_{rob} \).

En électronique numérique, vous pouvez implémenter ces formules mathématiques comme vous pouvez les retrouver dans des circuits électroniques logiques prêts à être utilisés. Durant ce cours proposé par electro-robot, vous allez découvrir les opérateurs arithmétiques, ces composants électroniques qui permettent de réaliser des fonctions simples comme des fonctions avancées à citer les additions, soustractions, les multiplicateurs et les diviseurs.

L'additionneur binaire

Un additionneur binaire est une solution électronique qui nous permet de réaliser une addition mathématique dans un système de numérotation donné. Dans la suite de ce cours, nous allons nous focaliser sur le système binaire afin de comprendre comment deux éléments binaires ou plus sont additionnés.

Le demi-additionneur

Le demi-addition; appelé aussi Half-Adder en anglais, de deux nombres binaires \( a \) et \( b \) donne la somme \( S \), la retenue \( R_{+1} \) si cela est présent sinon la valeur de la retenue restera \( R_{-1} = 0 \) et le résultat sera uniquement la valeur \( S \). Pour mieux comprendre cela, la table suivante vous résume cela pour les différentes combinaisons possibles de \( a \) et \( b \) :

a b Résultat de l'addition (binaire) S = a + b (sortie) R+1 (retenue)
0 0 0 0 0
0 1 1 1 0
1 0 1 1 0
1 1 10 0 1

Avec :

  • \( S \) est le résultat de la somme des deux digits \( a \) et \( b \) à la sortie du demi-additionneur,
  • \( R_{+1} \) représente la retenue de envoyé vers la colonne N+1

Les équations logiques d'un demi-additionneur binaire

Comme nous remarquons, la valeur binaire 10 résultante de l'addition \( a = 1 \) et \( b = 1\) nécessite deux digits (2 bits) pour écrire la valeur à la sortie de notre additionneur. C'est pour cela que nous aurons besoin d'envoyer la valeur 0 vers la sortie \( S \) et la valeur 1 vers la sortie \( R \). Pour déterminer les deux équations logiques de ces deux sorties, créons alors les deux tables de Karnaugh respectives :

Table de Karnaugh de la sortie S d'un opérateur arithmétique binaire : le demi-additionneur Table de Karnaugh de la sortie R d'un opérateur arithmétique binaire : le demi-additionneur
Table de Karnaugh pour la sortie S d'un demi-additionneur binaire Table de Karnaugh pour la sortie R d'un demi-additionneur binaire

 

A partir, maintenant, de la première table de Karnaugh, nous pouvons écrire la fonction logique suivante pour la sortie \( S = \overline{a} b + a \overline{b} = a \oplus b \)

Et pour la sortie \( R = a \cdot b \)

Logigramme de demi-additionneur (Half-Adder)

Le logigramme de ce demi-additionneur sera donc comme suit :

Logigramme du demi-additionneur binaire (Half-Adder)

Ainsi, cet additionneur binaire est appelé un demi-additionneur car il ne gère pas la retenue de l'étage précédente (la retenue précédente \(R_{-1} \) est systématiquement null).

 

Les travaux dirigés avec Electro & Robot

Activité dirigé : Le demi-additionneur (Half-Adder)

Pour démarrer avec une première activité, Electro & Robot vous propose de réaliser ensemble un demi-additionneur durant une activité dirigée pas à pas :

 

L'additionneur binaire avec la retenue à son entrée

Pour compléter un additionneur binaire, notre système doit prendre en considération à son entrée le retenue de \(R_{-1} \) :

R-1 a b Résultat de l'addition (binaire) S = a + b (sortie) R+1 (retenue)
0 0 0 0 0 0
0 0 1 1 0 0
0 1 0 1 1 0
0 1 1 10 0 1
1 0 0 1 1 0
1 0 1 10 1 0
1 1 0 10 1 0
1 1 1 11 1 1

 

telles que :

  • \( R_{-1} \) représente la retenue reçue de la colonne N-1
  • \( R_{+1} \) représente la retenue à envoyer vers la colonne N+1

Les équations logiques des deux sorties S et R d'un additionneur binaire

Pour déterminer les deux équations logiques de ces deux sorties, créons alors les deux tables de Karnaugh respectives :

Table de Karnaugh de la sortie S d'un opérateur arithmétique binaire : l'addition avec retenue (R-1) à son entrée

Table de Karnaugh de la sortie R+1 d'un opérateur arithmétique binaire : l'addition avec retenue (R-1) à son entrée
Table de Karnaugh pour la sortie S de l'additionneur binaire avec un R-1 à son entrée Table de Karnaugh pour la sortie R+1 de l'additionneur binaire avec un R-1 à son entrée

 

A partir de la première table de Karnaugh, la sortie S de notre additionneur  présente l'équation logique suivante : \( S = \overline{R_{-1}} \cdot (\overline{a} b + a \overline{b}) + R_{-1} \cdot (\overline{a}\overline{b} + ab) = \overline{R_{-1}} \cdot (a \oplus b) + R_{-1} \cdot (\overline{a \oplus b}) = R_{-1} \oplus a \oplus b \).

Et pour la sortie \( R_{+1} =  ab + R_{-1} \cdot b +  R_{-1} \cdot a = ab + R_{-1} (a + b ) \)

Il est aussi à noter qu'un additionneur binaire complet peut être réalisé à partir de deux demi-additionneurs. Pour cela, nous allons placer en série telle que la première étage calcule la somme de \( a + b \) et la deuxième étage calcule la somme entre le premier résultat obtenu et la retenue reçue de l'étage précédent \(R_{-1} \) afin de déterminé la valeur de la somme finale \( S \) et la valeur binaire de la retenue \( R_{+1} \) à envoyer vers l'étage suivant. L'image ci-dessous nous explique cela :

Schéma d'un additionneur complet à partir de deux demi-additionneurs

Comment implémenter un additionneur binaire ?

Pour implémenter un additionneur binaire dans nos conceptions et dans nos circuits électriques, il est recommandé de trouver un circuit intégré. Dans la famille TTL 74xx ou la famille CMOS 40xx, nous pouvons facilement trouver la référence de l'additionneur complet (appelé aussi full adder en anglais) qui nous convient, voire même circuits avec des fonctionnalités avancées. Pour vous aider à débuter, nous vous partageons, à titre d'exemple, ces références les plus courantes :

  • 74LS83 : un additionneur binaire à 4 bits avec entrées pour chaque mot binaire A ou B et des entrées pour la retenue d’entrée, et la retenue de sorties ainsi que la sortie S.
  • 74HC283 : une deuxième référence d'un additionneur binaire à 4 digits, présentant les mêmes fonctionnalités que le 74LS83, mais dans sa version CMOS à haute vitesse.

Le soustracteur binaire

Un soustracteur binaire est aussi un composant binaire qui nous permet de réaliser une soustraction en mathématique. Dans ce cours, nous allons vous présenter ce composant dans le système binaire pour vous initier à l'électronique numérique.

Le demi-soustracteur

Un demi-soustracteur, appelé aussi Half-Subtractor, de deux nombres binaires \( a \) et \( b \) est une fonction logique qui nous permet de réaliser le résultat de la soustractrion \( D \), l'emprunteur \( E_{+1} \) si la soustraction est impossible sinon la valeur de \( B = 0 \). Pour vous expliquer ce mode de fonctionnement, la table suivante nous détaille cela pour les différentes combinaisons possibles de \( a \) et \( b \) :

a b Résultat de la soustraction (binaire) D = a - b (sortie) E+1 (emprunt)
0 0 0 0 0
0 1 1 et emprunte 1 1 1
1 0 1 1 0
1 1 0 0 0

telles que :

  • \( D \) est le résultat de la soustraction des deux bits \( a \) et \( b \) à la sortie du demi-soustracteur,
  • \( E_{+1} \) représente la valeur binaire emprunté à la colonne  N+1 pour résoudre l'équation arithmétique.

Les équations logiques d'un demi-soustracteur binaire

Comme nous le saviez parfaitement, si la soustraction de deux nombres n'est pas possible, nous avons à empruter à la colonne N+1 pour résoudre l'équation mathématique. Supposons donc si nous souhaitons réaliser \( D = a - b \), nous allons ajouter une fonction logique pour prendre en considération l'emprunt logique si besoin; le cas ou nous aurons à réaliser la soustraction de \( a - b \) avec \( a < b \). Ce qui nous représente un résultat \( D = 1 \) et un emprunt \( E = 1\). Pour déterminer les deux équations logiques de ces deux sorties, créons alors les deux tables de Karnaugh respectives :

 

Table de Karnaugh de la sortie D d'un opérateur arithmétique binaire : le demi-soustracteur Table de Karnaugh de la sortie E d'un opérateur arithmétique binaire : le demi-soustracteur
Table de Karnaugh pour la sortie D d'un demi-soustracteur binaire Table de Karnaugh pour la sortie E d'un demi-soustracteur binaire

 

Ainsi, à partir de la première table de Karnaugh, nous pouvons écrire l'équation logique suivante pour la sortie \( D = \overline{a}b + a\overline{b} = a \oplus b\)

Et pour l'emprunt réalisé à l'étage binaire N+1 : \( E = \overline{a} \cdot b \)

Logigramme de demi-soustracteur (Half-Subtractor)

Le logigramme de ce demi-soustracteur sera donc comme suit :

Logigramme du demi-soustracteur binaire (Half-Subtractor)

Comme le demi-additionneur, ce soustracteur binaire est appelé aussi un demi-soustracteur puisqu'il ne gère pas l'emprunt de l'étage binaire précédente; l'emprunt réalisé à l'étape précédenten \(E_{-1} \).

 

Les travaux dirigés avec Electro & Robot

Activité dirigé : Le demi-soustracteur (Half-subtractor)

Pour vous initier à la logique arithmétique binaire, nous vous proposons de réaliser ensemble un demi-soustracteur binaire durant une activitée dirigé :

 

Le soustracteur binaire complet avec un emprunt E-1

Pour qu'un soustracteur binaire soit complet, il doit prendre en considération la valeur de l'emprunt reçu de l'étage précédente \(R_{-1} \) :

E-1(emprunt) a b D = a - b (sortie) E+1 (emprunt)
0 0 0 0 0
0 0 1 1 1
0 1 0 1 0
0 1 1 0 0
1 0 0 1 1
1 0 1 0 1
1 1 0 0 0
1 1 1 1 1

 

avec :

  • \( E_{-1} \) représente l'emprunt reçu de la colonne N-1
  • \( D \) est la différence calculée \( b - a \)
  • \( E_{+1} \) représente l'emprunt envoyé vers la colonne N+1

Les équations logiques des deux sorties D et R d'un soustracteur binaire

Pour déterminer les deux équations logiques des deux sorties \( D \) et \( R \) de notre soustracteur, créons alors les deux tables de Karnaugh respectives :

Table de Karnaugh de la sortie D d'un opérateur arithmétique binaire : le soustracteur avec emprunt (E-1) à son entrée Table de Karnaugh de la sortie E+1 d'un opérateur arithmétique binaire : le soustracteur avec emprunt (E-1) à son entrée
Table de Karnaugh pour la sortie D du soustracteur binaire avec un E-1 à son entrée Table de Karnaugh pour la sortie E+1 de l'additionneur binaire avec un E-1 à son entrée

 

A partir de la première table de Karnaugh, la sortie \( D \) de ce soustracteur est forumlée par l'équation logique suivante : \( D = \overline{E_{-1}}\overline{a} b + \overline{E_{-1}} a \overline{b} + E_{-1}\overline{a}\overline{b} + E_{-1}a b \)

Mettons en commun : \( D =\overline{E_{-1}}(\overline{a} b + a  \overline{b}) + E_{-1}(\overline{a}\overline{b}+ a b) = \overline{E_{-1}}(\overline{a} b + a \overline{b}) + E_{-1}\overline{(\overline{a} b + a \overline{b})} \)

ce qui nous donne finalement \( D = E_{-1} \oplus a \oplus b \)

Et pour la sortie \( E_{+1} \), nous pouvons écrire \( E_{+1} = \overline{a} \overline{b} E_{-1} + \overline{a} b + a b E_{-1} \)

Simplifions maintenant cette équation \( E_{+1} = E_{-1}( \overline{a} \overline{b}  + a b) + \overline{a} b =  E_{-1} \overline{(a \oplus b)} + \overline{a} b \)

Et comme pour l'additionneur, il est également possible de réaliser un soustracteur binaire complet à partir de deux demi-soustracteurs que nous allons plaçer en série telle que nous l'explique le schéma de montage ci-dessous :

Schéma d'un soustracteur complet à partir de deux demi-soustracteurs

Comment implémenter un soustracteur binaire ?

Pour mettre en place un soustracteur binaire, nous allons faire appel à l'une des deux références proposées pour les additionneurs : 74LS83 ou 74HC283 pour réaliser un soustracteur. Mais comment on réalise un soustracteur à partir d'un additionneur ? Ce n'est pas difficile du tout, on vous explique tout !

Si \( D = A - B \)  alors \( D = A + (-B) = A + (\overline{B} + 1) \) puisque \( -B = \overline{B} + 1 \)  d'après le principe du complément à deux.

Donc pour faire un soustracteur, nous allons faire un \( \overline{B} \) que nous allons lui rajouter la valeur logique 1 additionnér à la valeur A. Et pour réaliser le \( \overline{B} \), une porte logique NON est nécessaire pour chaque entrée \( b_{i} \) pour réaliser ce complément. Le schéma ci-dessous nous détaille ce montage :

Schéma d'un soustracteur 4 bits créé à partir d'un additionneur 4 bits et des fonctions logiques NON