Vous êtes sur la page 1sur 24

Chapitre 4 :

2ème Partie
Chapitre 4 : Logique Combinatoire

4.4 Additionneurs et Soustracteurs Binaires


4.4.1 Semi-Additionneur
4.4.2 Addition Multi-Binaire
4.4.3 Additionneur Complet 1-bit
4.4.4 Additionneur Complet N-bit
4.4.5 Soustracteur Complet N-bit
4.4.6 Circuit Additionneur/Soustracteur
4.4.7 Le problème de Dépassement
4.4.8 Additionneur BCD
4.4.9 Additionneur « LookAhead »
4.5 Multiplicateur Binaire

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 1
4.4 Additionneurs et Soustracteurs Binaires

L’Addition et la Soustraction des données binaires sont des opérations


fondamentales dans les circuits digitaux
„ D’ou le besoin de déterminer leur implémentation hardware

Représenter les entrées et les sorties. Par exemple pour


l’additionneur:
„ Entrées : Bits singuliers à ajouter, Retenue d’entrée (Carry in)

„ Sorties : Somme, Retenue de sortie (Carry out)

Caractéristiques Hardware
„ Créer des Additionneurs/Soustracteurs (à 1-bit) et enchaîner

l’ensemble
Cas de dépassement (overflow) pour l’addition
„ Comment prendre en considération le cas des nombres longs?

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 2
4.4.1 Semi-Additionneur Ou Demi-Additionneur (Sans Retenue d’entrée)

Ajouter 2 digits binaires


Dec Binary
„ A0 , B0 -> les bits singuliers d’entrée 1 1
„ S0 -> la Somme (un bit singulier) +1 +1
2 10
„ C1 -> La Retenue de sortie (carry out)

A0 B0 S0 C1 A0
S0
0 0 0 0 B0
0 1 1 0
1 0 1 0
C1
1 1 0 1

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 3
4.4.2 Addition Multi-Binaire

Considérer un additionneur 1-bit pour chaque position binaire.

A3 A2 A1 A0 B3 B2 B1 B0
A 0 1 0 1 B 0 1 1 1

Ci+1 Ci
C 1 1 1
A 0 1 0 1 Ai
B 0 1 1 1 +Bi
S 1 1 0 0 Si
Chaque position binaire crée une
Somme et une Retenue (Carry)
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 4
4.4.3 Additionneur Complet à 1-bit

Un additionneur complet (à 1-bit) inclut la Retenue d’entrée Ci.


Donc il possède deux sorties (Ci+1, Si).
Le positionnement des ‘1’ dans le Tableau-K pous Si, rappelle quelque
chose. C’est quoi?
XOR
Ci Ai Bi Si Ci+1 AiBi
Ci 00 01 11 10
0 0 0 0 0
0 1 1
0 0 1 1 0
0 1 0 1 0 1 1 1
0 1 1 0 1 Si
1 0 0 1 0 Ai
1 0 1 0 1 Bi
Ci Si
1 1 0 0 1
1 1 1 1 1
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 5
Maintenant considérant l’implémentation de Ci+1 ‘Carry out’.
Bi
AiBi
Ci 00 01 11 10

Ci Ai Bi Si Ci+1 0
1
0 0 0 0 0 Ci 1
1 1 1
0 0 1 1 0 Ci+1
Ai
0 1 0 1 0 Ci+1= Ai.Ci + Bi.Ci + Ai.Bi
0 1 1 0 1
1 0 0 1 0 Ou bien
1 0 1 0 1 AiBi
Bi

1 1 0 0 1 Ci 00 01 11 10
0 1
1 1 1 1 1 Ci 1 1 1 1
Ai
Ci+1
Ci+1= Ai.Bi + Ci.(Ai + Bi)

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 6
Un Additionneur Complet (à 1-bit) peut ainsi être fait à partir de
plusieurs 2 Semi-Additionneurs 1-bit, en plus d’une porte OU.

S i = A i + Bi + Ci
Ci+1= Ai.Bi + Ci.(Ai + Bi)

Ci
Ai Si
Bi

C i+1
Semi-Additionneur
Semi-Additionneur

Note Importante: Une répétition Hardware simplifie énormément


la conception des circuits digitaux.

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 7
Un Additionneur Complet (à 1-bit) est une pièce essentielle dans les
conceptions de systèmes digitaux.

Ai Bi

Additionneur
C i+1 Complet Ci
(1-bit)

Si
Block Diagramme

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 8
4.4.4 Additionneur Complet N-bits

Pour obtenir un Additionneur Complet (à N-bit), il suffit d’enchaîner ‘N’


Additionneur Complet (à 1-bit) en série. Par exemple, pour N=4:

A3 B3 A2 B2 A1 B1 A0 B0

Additionneur Additionneur Additionneur Additionneur


Complet Complet Complet Complet 0
(1-bit) C3 (1-bit) C2 (1-bit) C1 (1-bit)

C4 S3 S2 S1 S0

C 1 1 1 0
A 0 1 0 1
B 0 1 1 1
S 1 1 0 0
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 9
Pour N=8 Î Additionneur Complet 8-bits

A B A6 B6 A B A B A B A2 B2 A B A B
7 7 5 5 4 4 3 3 1 1 0 0

Additionneur Additionneur Additionneur Additionneur Additionneur Additionneur


Complet
(1-bit)
Complet
(1-bit)
Complet
(1-bit) C
Additionneur
Complet Complet
(1-bit)
Complet
(1-bit)
Complet
C
Additionneur
Complet 0
C C 5 (1-bit) C4 C C (1-bit) (1-bit)
7 6 3 2 1

C8 S S S S S S S S
7 6 5 4 3 2 1 0

Conséquence: Le temps de propagation (ou le retard) est proportionnel à la


taille (n) de l’Additionneur Complet.
Par exemple: Un Additionner Complet 8-bits est plus lent à s’exécuter par
rapport à un Additionner Complet 4-bits, car le temps de la propagation de la
Retenue Ci est deux fois plus pour obtenir le résultat final.
Ce type d’Additionneur s’appelle Additionner à Propagation de Retenue. Il existe
d’autres types d’additionneur plus rapide, tel que « Look-Ahead Adder ».

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 10
4.4.5 Soustracteur Complet N-bits
Un Soustracteur Complet (à N-bit) peut aisément se réaliser en ayant
en tête cette propriété, démontrée au chapitre 1:
Soustraire un nombre est la même chose que:
1. Performer le complément à 2 (C’2) de ce nombre …
2. … et faire l’addition ensuite.

110 = 0116 = 00000001 +12 00001100


-110 = FF16 = 11111111 - +(C’2 de +33)
+33 11011111
----------------------------
12710 = 7F16 = 0111 1111 -21 0 11101011
-12710 = 8116 = 1000 0001

Ainsi si on ajoute à un additionner complet (à n-bit) une logique


hardware réalisant « le complément à 2 », le Soustracteur Complet (à n-
bit), se déduit directement de l’additionner en question.

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 11
Pour N=4 Î Soustracteur Complet 4-bits

La logique hardware réalisant « le complément à 2 », ne peut être qu’une


porte XOR. Ainsi, en analysant de plus prêt ce circuit:
A3 B3 A2 B2 A1 B1 A0 B0

Additionneur Additionneur Additionneur Additionneur


Complet Complet Complet Complet
C3 (1-bit) C2 (1-bit) C1 (1-bit)
(1-bit)

C4 SD 3 SD 2 SD 1 SD 0

Ce circuit réalise, dans le cas ou le signal de control S = ‘1’, l’addition


de A (A3A2A1A0) avec B’ , qui est le Complément de ‘1’ de B (B3B2B1B0) + 1.
C’est à dire, l’addition de A avec le Complément de ‘1’ de B
Ce qui revient à effectuer l’opération: D = A - B
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 12
4.4.6 Circuit Additionneur/Soustracteur (Complet 4-bits)
En réalité le circuit précédent réalise à la fois une addition et une soustraction,
suivant que le signal de control S prend la valeur ‘0’ ou ‘1’ respectivement.

B3 A3 B2 A2 B1 A1 B0 A0

S
Note:

S sert à
sélectionner
le type
d’opération
à effectuer
A_C A_C A_C A_C
l’Addition
1-b 1-b 1-b 1-b
ou la
Soustraction.
MAIS aussi
il permet
d’effectuer
le C’2 dans
C4 SD3 SD2 SD1 SD0 le cas d’une
soustraction.

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 13
4.4.7 Le problème de Dépassement (Overflow)

Définition: Quand deux valeurs de même signe sont ajoutées:


„ Le résultat ne rentre pas dans la bande du nombre de bits

réservée aux opérandes.


„ Le Résultat aura donc un signe opposé, de ce qu’il doit être.

Cn Cn-1 Cn Cn-1
00 01 11 10 00 11
0010 0011 1110 1101 0010 1110
0011 0110 1101 1010 1100 0100
-------- -------- -------- -------- -------- --------
0101 1001 1011 0111 1110 0010

2 3 -2 -3 2 -2
3 6 -3 -6 -4 4
5 -7 -5 7 -2 2

DPS DPS
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 14
Circuit de Dépassement

Il existe des circuits permettant de prévoir quand il y’a de


dépassement. Comme:

AN-1
BN-1
Dépassement si ‘1’
CN-1
CN

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 15
4.4.8 Additionneur BCD A l’aide de 2 additionneurs 4-bits et 3 portes logiques

Somme Binaire Somme BCD DECIMAL

K Z8 Z4 Z2 Z0 C S8 S4 S2 S0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 2
0 0 0 1 1 0 0 0 1 1 3
0 0 1 0 0 0 0 1 0 0 4
0 0 1 0 1 0 0 1 0 1 5
0 0 1 1 0 0 0 1 1 0 6
0 0 1 1 1 0 0 1 1 1 7
0 1 0 0 0 0 1 0 0 0 8
0 1 0 0 1 0 1 0 0 1 9
0 1 0 1 0 1 0 0 0 0 10
0 1 0 1 1 1 0 0 0 1 11
0 1 1 0 0 1 0 0 1 0 12
0 1 1 0 1 1 0 0 1 1 13
0 1 1 1 0 1 0 1 0 0 14
0 1 1 1 1 1 0 1 0 1 15
1 0 0 0 0 1 0 1 1 0 16
1 0 0 0 1 1 0 1 1 1 17
1 0 0 1 0 1 1 0 0 0 18
1 0 0 1 1 1 1 0 0 1 19

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 16
C

S8 S4 S2 S1
(Mano)

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 17
4.4.9 Additionneur «LookAhead» C’est un Additionneur Parallèle
Permettant de réduire l’effet de
propagation de la Retenue.

A partir du circuit de la page 7:

Ci
Ai Si
Bi

C i+1
Semi-Additionneur Semi-Additionneur

Gi =Ai.Bi Carry Generate


Car produit ‘1’ quand Ai et Bi sont ‘1’

Pi= Ai+Bi Carry Propagate


Car elle permet de propager la retenue de Ci vers Ci+1

Si= Pi + Ci Ci+1 =Gi+ Pi.Ci


(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 18
Ainsi:
C0 =Retenue d’entrée
C1 =G0+ P0.C0

C2 = G1+ P1.C1 = G1+ P1.(G0+ P0.C0) = G1+ P1.G0 + P1.P0.C0

C3 =G2+ P2.C2 = G2+ P2.(G1+ P1.C1) = …


= G2+ P2.G1 + P2.P1.G0 + P2.P1.P0.C0

… etc. SdP Î Implémentation 2 niveaux


MAIS beaucoup de Portes logiques

NOTE: Chaque Retenue Ci (i = 0,1,2, …) est générée séparément


ÎPas de propagation de Retenue Î Moins de retard MAIS beaucoup de Portes
logiques par rapport au type d’addition à Propagation de Retenue
Î Compromis Vitesse/Densité. (bien connu dans la conception des systèmes VLSI)

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 19
Réalisation Hardware D’un Additionneur type « Carry LookAhead » Æ Mano

(Mano)

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 20
(Mano)

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 21
4.5 Multiplicateur Binaire

(Mano)

(c) Hiver 2003, Rachid Beguenane


DSA-UQAC 22
(Mano)
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 23
En Résumé

L’Addition et la Soustraction sont des opérations fondamentales dans


les systèmes digitaux, et des ordinateurs en particulier.

Leur réalisation se fait à partir d’une chaîne de circuits


Additionneur/Soustracteur complet 1-bit.

Cette approche est appelé Addition à propagation de retenue (Ripple-


Carry Addition)
„ Son inconvénient, c’est sa lenteur dans les systèmes de conception

larges.
„ Toutefois, il existe d’autres approches plus rapides (Look-Ahead

Addition).

Le Dépassement est une issue importante pour les ordinateurs.

„ En général, les processeurs numériques sont munis de circuit


Hardware adéquat pour détecter les cas de dépassement.
(c) Hiver 2003, Rachid Beguenane
DSA-UQAC 24

Vous aimerez peut-être aussi