2.2.4. Circuit additionneur complet
Il faut donc réaliser un circuit qui correspond
à la table de vérité reprise dans le tableau 2.3, on
obtient le schéma de la figure 2.2 qui représente un additionneur
complet.
Figure 2.2 : Représentation
schématique d'un additionneur complet
Cherchons à présent l'équation de
Ci+1 et Si en utilisant la table de vérité reprise
dans le tableau 2.3. Pour cela, dressons les tableaux de Karnaugh
correspondants reportés dans les tableaux 2.4.
Tableau 2.4 : Tableaux de Karnaugh
relatifs à l'additionneur complet
Du premier tableau de Karnaugh, on tire l'équation de Si
suivante :
Si = Ci
|
~
i
|
i + ~ i ~
|
iBi + CiAiBi + C iAi i
|
= Ci (
|
~
i
|
i + AiBi) + ~
|
i (
|
iBi + Ai ~i)
|
= Ci ( ) + C
i (Ai Bi)
= Ci (Ai Bi)
Dans le deuxième tableau de Karnaugh, nous n'avons pas
recherché les groupements optimaux et ce, pour pouvoir mettre en
évidence la fonction
Ai Bi déjà réalisée avec la somme
Si.
En effet, les 3 groupements indiqués nous donnent
l'équation de Ci+1 suivante :
Ci+1 = iBiCi + AiBi + Ai iCi
= AiBi +Ci ( ~iBi + Ai ~i)
= AiBi + Ci (Ai Bi)
De deux expressions Si et
Ci+1 qui viennent d'être calculées,
nous déduisons le schéma logique d'un additionneur complet
représenté à la figure 2.3.
Figure 2.3 : Schéma
logique d'un additionneur complet
L'additionneur complet est le circuit de base pour effectuer
la somme de nombres de plusieurs bits. Il existe deux méthodes
d'addition des nombres binaires.
La première utilise un seul additionneur complet auquel on
présente les chiffres de même rang des nombres à
additionner. Il s'agit de la somme en série.
La deuxième fait appel à autant d'additionneurs
complets qu'il y a de chiffres dans les nombres à ajouter. Il s'agit de
la somme en parallèle.
2.2.5. Somme en série
Les deux nombres (ici de 8 bits) à additionner sont
chargés dans deux registres A et B comme on le voit à la figure
2.4. Le résultat de la somme est stocké dans un troisième
registre S. Il faut aussi disposer d'une bascule synchrone de type D qui sert
à mémoriser la retenue de la somme partielle
précédente.
Figure 2.4: Somme en série
nécessite un seul additionneur complet, 3 registres et une bascule
D
Les 3 registres et la bascule D sont commandés par le
même signal d'horloge qui synchronise toute l'opération.
Le fonctionnement du circuit est le suivant :
Au début, la bascule doit être mise à 0 en
activant l'entrée CLEAR. Par contre, les
3 registres n'ont pas besoin d'être remis à 0.
Les deux termes de la somme sont chargés dans les
registres A et B avec une première impulsion d'horloge. Les deux
premiers chiffres de chaque terme sont alors présents à la sortie
des registres et donc aux entrées de l'additionneur.
Ainsi, on trouve à la sortie Si le premier résultat
partiel et à la sortie Ci+ila première retenue.
La situation est celle qui apparaît à la figure 2.5
où l'on additionne les deux nombres de l'exemple
précédent.
Figure 2.5 : Au début de
l'addition la bascule est mise à zéro et les termes sont
chargés dans les registres A et B
La deuxième impulsion d'horloge produit les faits suivants
:
· Le premier résultat partiel est stocké dans
le premier étage du registre S.
· La première retenue est mémorisée
par la bascule D.
· Les contenus des registres A et B se décalent
d'un étage vers la droite ; ainsi les chiffres de poids
immédiatement supérieur se présentent aux entrées
du sommateur. Nous nous trouvons alors dans la situation de la figure 2.6. La
bascule est désormais symbolisée par un carré à
l'intérieur duquel est inscrit son état.
Figure 2.6 : Le premier
résultat partiel est stocké dans le premier étage du
registre S et les termes sont décalés d'un cran vers la droite
dans les registres A et B
La donnée présente sur l'entrée
série des registres est sans importance. L'addition se déroule de
façon identique pour les chiffres suivants. Après 9 impulsions
d'horloge (une pour le chargement de A et B, 8 pour effectuer
la somme), le résultat de la somme se trouve stocké dans le
registre S tandis que la sortie de la bascule indique la retenue. Nous nous
trouvons dans la situation de la figure 2.7.
Figure 2.7: A la fin de
l'addition, le contenu du registre S indique le résultat de la somme
et l'état de la bascule indique la retenue
L'addition prise en exemple a pour retenue finale 0, ce qui
signifie que le résultat 1101 0110 est juste.
Si la bascule est à l'état 1, cela signifie que
la dernière somme a donné lieu à une retenue de 1. On
dépasse ainsi la capacité du circuit, cela est
désigné par le terme anglais « overflow » qui signifie
débordement.
Il y a overflow lorsque le nombre qui est le résultat de
la somme a plus de bits que ceux qui peuvent être contenus dans le
registre (dans notre cas 8).
Avec 8 bits, le nombre le plus élevé que l'on peut
représenter est :
(1111 1111)2 = (255)10.
Avec des registres à 8 bits, on peut donc additionner
les nombres compris entre 0 et 255 (exprimés en code décimal),
mais le résultat de leur somme ne doit pas lui-même
dépasser 255.
Dans le cas contraire, on obtiendrait un résultat qui,
pour être stocké, nécessiterait un registre de 9 bits.
En utilisant un ordinateur ou un circuit sommateur, il est
toujours nécessaire de faire attention à ne jamais en
dépasser la capacité. L'overflow donne des résultats
erronés.
Supposons que l'on effectue la somme suivante :
Le dernier chiffre à gauche du résultat ne
trouvant pas de place dans le registre S est perdu. Le résultat qui est
indiqué par le contenu de S est 0100 0000, ce qui équivaut
à 64 en code décimal et non 320 qui est le vrai
résultat.
Pour savoir s'il y a dépassement, il suffit d'examiner
l'état de la bascule à la fin de l'addition : si elle est
à l'état 0, le résultat est juste ; par contre, si elle
est à l'état 1, cela indique qu'il y a eu une retenue de 1 lors
de la dernière addition et que l'on a dépassé la
capacité du circuit.
On peut faire l'économie du registre S en rebouclant la
sortie S de l'additionneur sur l'entrée série du registre A ou
B.
Si l'on relie par exemple la sortie S à
l'entrée série du registre A, comme illustré à la
figure 2.8, le résultat de l'addition apparaîtra dans le registre
A. En effet, à chaque impulsion d'horloge, le résultat partiel de
chaque somme se trouve décalé dans le registre A.
Figure 2.8: Le registre A peut
aussi servir pour stocker le résultat de la somme
La méthode de la somme en série est la plus
proche de notre façon usuelle d'effectuer des additions :
on additionne un chiffre à la fois en partant de celui de plus
faible poids.
Toutefois, elle est plutôt lente parce qu'elle requiert
autant d'impulsions d'horloge qu'il y a de chiffres à additionner.
Pour plus de rapidité, on fait appel à la
méthode de la somme en parallèle où tous les chiffres sont
additionnés simultanément.
Selon le mode de calcul de la retenue, on distingue la somme en
parallèle avec retenue série et la somme en parallèle avec
retenue anticipée.
|