Vous êtes sur la page 1sur 95

CIRCUITS LOGIQUES

DES
ORDINATEURS

Madiassa MAGUIRAGA , Ph.D.


Docteur-Ingénieur en Electronique
CITA BP-3000 Bamako

CITA Centre International pour les Technologies Avancées


Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
TABLE DE MATIERES
Chapitre I : REPRESENTATION DES NOMBRES ET ALGEBRE DE BOOLE… 5
1.1. Nombres Entiers Positifs…………………………………………………… 5
1.2. Nombres Positifs Fractionnaires…………………………………………… 5
1.3. Bases Importantes………………………………………………………….. 6
1.4. Conversion des Entiers Positifs…………………………………………… 7
1.5. Conversion, Nombres Positifs Fractionnaires…………………………… 8
1.5’.Elément de l’Algèbre de Boole……………..…………………………… 10
1.6. Théorèmes de Base de l’Algèbre de Boole………………………………… 12
1.6. Règles de Simplification des Expressions Booléennes……………………… 12
PROBLEMES ET SOLUTIONS..…………………………14

Chapitre II : CIRCUITS LOGIQUES COMBINATOIRES…………...……………..19


2.1. Définition et Circuits de Base………………………………………………. 19
2.2. Autres Symboles Logiques………………………………………………… 20
2.3. Diagramme de Karnaugh…………………………...................................… 22
2.4. Simplification par la Méthode de Karnaugh.........………………............... 23
2.5. Diagramme de Karnaugh…………………………..................................... 26
PROBLEMES ET SOLUTIONS..…………………………27

Chapitre III : CIRCUITS SEQUENTIELS………………………………………… 32


3.1. Introduction……………………………………………………….… 32
3.2. Bascules SR………………………………………………………… 32
3.3. Bascules J-K………………………………………………………… 34
3.4. Bascules D...………………………………………………………… 35
3.5. Compteurs Binaires………………………………………………… …… 36
3.6. Synthèses des Compteurs Modulo N..……………………………… 38
PROBLEMES ET SOLUTIONS……..……………….. …..40

Chapitre VI : REPRESENTATIONS DES NOMBRES DANS L’ORDINATEUR…48


4.1. Introduction……………………………………………………………… 48
4.2. Valeur absolue plus signe………………………………………………... 49
4.3. Complément à 2………………………………………………………….. 49
4.4. Complément à 1………………………………………………………….. 50
4.5. Code BCD (Binary Coded Dcimal)………………………………………. 51
4.6. Transcodage Binaire – BCD – Décimal…………………………………... 52
4.7. Transcodage Décimal – BCD –Binaire …………………………………... 54
PROBLEME ET SOLUTION……………………………………..……..56

Chapitre V : ADDITIONS ET SOUSTRACTION BINAIRE………………….…… 60


5.1. Introduction……………………………………………………………… 60
5.2. Addition de Deux Bits plus Report……………………………………… 60
5.3. Soustraction de Deux Bits avec Retenue………………………………… 63
5.4. Addition Complément A2………………………………………………….. 63
5.5. Soustraction Complément A2………….………………………………….. 68
5.6. Additionneur - Soustracteur - Complément A2……………………….….. 72

2
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
PROBLEMES ET SOLUTIONS……………………………….. 74

Chapitre VI : MULTIPLICATION ET DIVISION BINAIRES……………….. 80


6.1. Introduction……………………………………………………………… 80
6.2. Multiplication en Code Module plus Signe……………………………… 80
6.2. Multiplication en Complément A2 – Algorithme de Booth……………… 82
6.4. Division en Code Module plus Signe…………………………………….. 85
PROBLEMES ET SOLUTIONS…………………………………………. 90

3
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

PREFACE

Il est un fait que nous vivons aujourd’hui dans un monde Numérique,


(appelé aussi un monde Digital), et c’est l’ordinateur le grand Maître de ce
monde. On comprend mieux alors l’importance d’un ouvrage de Circuits
Logiques pour Techniciens Supérieurs et Ingénieurs.

Il est très difficile de trouver sur le marché des livres, un ouvrage sur les
Circuits Logiques qui présenterait l’Algèbre de Boole, les Principes de
Simplification des Expressions Logiques , et la Synthèse des Circuits qui
réalisent les Opérations Arithmétiques de base (Addition, Soustraction,
Multiplication et Division). La raison est que bien des auteurs insistent à
présenter l’Algèbre de Boole et les Principes de Simplification de façon
complète, remettant ainsi le reste des sujets à un deuxième ouvrage.

Puisque les Ingénieurs de toutes les spécialités sont appelés à utiliser des
systèmes à commandes logiques, un besoin réel existe d’avoir un ouvrage clair
qui traiterait les sujets mentionnés ci-dessus de façon à ce que ces sujets
puissent être couverts dans un cours de 30 à 45 heures.

C’est cet objectif que j’ai visé en écrivant ce livre. Plusieurs exemples
d’illustration et des problèmes résolus permettent au lecteur de mieux
comprendre les concepts introduits ici.

Mr Madiassa MAGUIRAGA Ph. D.


CITA, BP-3000

Bamako, le 15 Juin 2002

4
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
CHAPITRE I
REPRESENTATION DES NOMBRES
ET ALGEBRE DE BOOLE
1.1 NOMBRE ENTIERS POSITIFS
Dans le système dit décimal (ou à base 10) où les nombres sont représentés à l’aide
des chiffres allant de 0 à 9. Un nombre positif entier quelconque peut s’écrire sous la forme :
n
N (10)  a
j0
j  10 j  ao  a1  101  a2  102  ... an 10n

avec
0  a j  10; j  0,1,..., n
an est appelé le chiffre le plus significatif et ao le moins significatif. C’est ainsi que le
nombre 102 dans la base 10 signifie.

2.100 + 0.101 + 1.102

On remarquera dans cet exemple l’ordre dans lequel les chiffres sont écrits dans 102. En
général donc on écrira.

N (10)  an an1    a1a0

où ao,…… ,an sont définis ci-dessus.

Dans une base quelconque α, un nombre entier positif N (α) de cette base peut
s’écrire :

n
N ( )  a
j0
j  j
soit N ( )  an an 1    a1a0 0  aj  

Dans la base 2, ou base binaire qui est la plus importante en circuits logiques, les
chiffres sont soit 0, soit 1 ; et N(2) = 1101 signifie (en commençant par le chiffre le plus
significatif),
N ( 2)  1 23  1 22  0  21  1 20

1.2. NOMBRES POSITIFS FRACTIONNAIRES


Dans une base quelconque α, un nombre inférieur à 1 s’écrira
m
N ( )  a
j 1
j    j soit N ( )  0, a1a2    a m 0  a j  

C’est ainsi que, si dans la base 8, N(8) = 0,751, alors

5
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

N(8)  7  81  5  82  1 83

Lorsque le nombre est en général fractionnaire, il s’écrira dans une base α


quelconque comme.

 n   m 
N ( )   a j  ,   a  j  j 
 j

 j0   j 1 
 an an 1 a1a0 , a1a2  am

Si donc N (10)=12,035 , c’est que

N (10)  (1 101  2  100 ),(0  101  3  102  5  103 )

1.3. BASES IMPORTANTES


En plus de la base 2 correspondant au système binaire, nous aurons quelques fois à
travailler dans la base 8 du système octal et dans la base 16 du système hexadécimal où
dans ce dernier cas, les chiffres sont 0,1,2,…,9,A,B,C,D,E,F

Le tableau de correspondance entre les nombres dans ces trois systèmes et le système
décimal est comme suit :

base 10 base 2 base8 base16


0 0000 00 0
1 0001 01 1
2 0010 02 2
3 0011 03 3
4 0100 04 4
5 0101 05 5
6 0110 06 6
7 0111 07 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

6
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
14. CONVERSION DES ENTIERS POSITIFS

Les problèmes de conversion qui nous intéressent le plus sont ceux de conversion de la
base de 10 à une base quelconque, et vice versa.

1. Si N ( )  an  a0 , on peut l’écrire

n
N ( )  a 
j0
j
j

Pour obtenir la valeur de N dans la base 10, il suffira d’exprimer aj et α dans la base 10 ,
d’effectuer les produits ajαj dans le système décimal et dévaluer la somme Σ ajαj , toujours
dans le système décimal. Dans le cas où α< 10, la conversion de aj et de α en décimal ne se
pose pas.

2. Si N est donné dans la base 10, on peut l’exprimer dans la base α en le divisant par α .
Alors

N (10)  ao   N (10)

Où ao est le reste de la division. Il va de soit que ao < α. En divisant par α le quotient N et


les quotients successifs, on obtient.

N (10)  a0  a1  a2 2   an n


 N ( )  an an 1 a2 a1a0

On notera que le premier reste est le chiffre le moins significatif.

Exemple 1.1.
Convertir dans la base 2 le nombre

113(10)

Solution
Les divisions successives par 2 de 113 donnent les quotients et restes ci-dessous

N(10) Quotients Restes


113 : 2 56 1 = ao
56 : 2 28 0
28 : 2 14 0
14 : 2 7 0
7:2 3 1
3:2 1 1
1:2 0 1

7
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Alors

N ( 2 )  1110001

Afin de développer une méthode plus rapide de conversion binaire- octal, considérons le
nombre binaire
7
N ( 2 )  a7 a6a5a4 a3a2 a1a0  a 2
j0
j
j

0  aj  2

Ce qu’on peut écrire , en groupant les termes 3 à 3, en commençant par le moins significatif.

N ( 2)  (0a7 a6 )  82  (a5a4 a3 )  81  (a2a1a0 )  80

Où nous avons mis en évidence les multiples de 8. En convertissant les termes entre
parenthèses en leurs équivalents respectifs b2, b1, b0, dans la base 8, on obtient

N (8)  b2 82  b181  b0 80  b2b1b0

Exemple 1.2.
Soit N(2) = 1001101 et M(8) = 621

Convertir N(2) dans la base 8 et M(8) dans la base 2

Solution
N ( 2 )  (001)(001)(101)  N (8)  115

Pour M(8) on convertira chacun de ses chiffres dans la base 2 d’où

M( 2 )  (110)(010)(001)  110010001

1.5. CONVERSION, NOMBRES POSITIFS FRACTIONNAIRES


A.) De la base α à la base 10 :

Lorsque dans une base α,

N ( )  0, a1a2  a m

alors on peut écrire ce nombre dans la base 10 en effectuant le calcul suivant dans la base 10.

8
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
m
N (10)  a
j 1
j  j

Exemple 1.3.
Convertir dans la base 10, le nombre

N ( 2 )  0,101

Solution
Comme présenté dans la discussion précédente, on obtient

1 1
N (10)  1 2 1  0  2 2  1 2 3   0   0,5  0,125
2 8
 N (10)  0,625

B.) De la base 10 à la base α :

Considérons maintenant le nombre décimal N(10) inférieur à 1. Pour le convertir en un


nombre de la base α, examinons l’expression ci-dessous de N(10) exprimée en puissances de
α.

N (10)  a1 1  a2 2   a k   k

Multiplions la relation ci-dessus par α. On obtient alors

 N(10)  a1  N (10) où N (10)  a2 1  a3 2   a k   k 1

et on remarque que a 1 est entier et que N (10) est inférieur à 1. Alors on devine comment
obtenir a1 , a2 , a3 , etc

a1  Partie entière de [ N (10) ] et N (10)   N (10)  a1


a2  Partie entière de [ N (10) ] et N (10)   N (10)  a2

Lorsqu’on aura jusqu’à a k , la conversion donne enfin

N ( )  0, a1a2 a k

Exemple 1.4.
Convertir en binaire le nombre N(10) = 0,7

9
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Solution
On multipliera successivement par 2 les chiffres après les virgules, tandis qu’on notera
de côté les parties entières obtenues.

Produit Partie Entière


0,7*2 = 1,4 1
0,4*2 = 0,8 0
0,8*2 = 1,6 1
0,6*2 = 1,2 1
0,2*2 = 0,4 0
etc.

D’où
N ( 2 )  0,10110

1.5. ELEMENTS DE L’ALGEBRE DE BOOLE


L’algèbre de Boole permet la description mathématique et la simplification des
expressions logiques.
Une déclaration du type, « aujourd’hui c’est lundi » est soit vrai, soit fausse. Si nous
dénotons cette déclaration par X, nous avons X = 1, si la déclaration est vrai, et X = 0 dans le
cas contraire. Les chiffres 1 et 0 n’ont aucune signification numérique, la signification est
seulement logique

Etant données les déclarations X et Y, nous pouvons définir la déclaration .

Z = X ou Y

pour dire que Z = 1 (est vrai) ; si X = 1 (quelque soit Y), ou si Y = 1 (quelque soit X). On
écrit plutôt

Z=X+Y

ce qui n’est pas d’addition numérique, mais l’addition dans l’algèbre de Boole. Alors

0+0=0
0+1=1
1+0=1
1+1=1

Lorsque

Z = X et Y

alors on peut définir le produit dans l’algèbre de Boole pour décrire cette relation

10
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Z=X·Y

Et Z = 1 si et seulement si X = 1 et Y = 1, D’où,

0·0=0
0·1=0
1·0=0
1·1=1

Lorsqu’une déclaration X est donnée, on peut définir sa négation X comme

X = PAS X

où X = 1 si X = 0 et X = 0 si X = 1. Nous appellerons quelques fois X le complément de


X.

Exemple 1.5.
Considérons l’état ouvert des contacts de relais comme 0 et l’état fermé comme1 . De
plus considérons une liaison entre un point a et un point b comme ayant la valeur 1 si elle
existe et la valeur est 0 dans le cas contraire. Utiliser les contacts de 2 relais pour synthétiser
l’addition et la multiplication dans l’algèbre de Boole

Solution
Les arrangements sont les suivants où Lab est liaison entre a et b

1. Somme

Il est clair que nous avons une liaison entre a et b si l’un quelconque des contacts est fermé.

3. Produit

pour une liaison entre a et b, C1 et C2 doivent être fermés tous les deux.

11
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
1.6. THEOREMES DE BASE DE L’ALGEBRE DE BOOLE
Si A,B et C sont des variables booléennes, alors on a :

1. 0·A=0 , 1·A=A , A· A=0, A·A=A


2. 0+A=A , 1+A=1 , A+ A=1, A+A=A
3. A  A (Le complément du complément de A est égale à A)
4. La loi de l’Associativité (A · B ) · C = A · (B · C)
(A + B) + C = A + (B + C)
5. La loi de la Distributivité A · (B + C) = A · B + A · C
A + (B · C) = (A + B) · (A + C)
6. La loi de la Commutativité A · B = B · A ; A + B = B + A
7. Les relations de DeMorgan A  B  A  B
A B  A B

Toute ces relations peuvent être vérifiées à l’aide d’une table de vérité où on donnerait
à A, B et C les combinaisons de valeurs logiques possibles et où on évaluerait dans chacun de
ces cas les expressions à gauche et à droite de chaque égalité. L’exemple ci-dessous illustre
cette méthode.

Exemple 1.6.
Vérifier la loi de la distributivité

A + (B · C) = (A + B) · (A + C)

Solution

A B C B·C A+B A+C A + (B · C) (A + B) · (A + C)


0 0 0 0 0 0 0 0
1 0 0 0 1 1 1 1
0 1 0 0 1 0 0 0
1 1 0 0 1 1 1 1
0 0 1 0 0 1 0 0
1 0 1 0 1 1 1 1
0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

Pour obtenir les différentes combinaisons des valeurs de A, B et C nous avons varié A d’une
ligne à l’autre, tandis que nous avons varié B toutes les 2 lignes et C toutes les 4 lignes.

1.7. SIMPLIFICATION DES EXPRESSIONS BOOLEENNES


Les relations ci-dessous sont d’une grande importance lorsqu’il s’agit de simplifier
une expression donnée contenant plusieurs variables booléennes.

12
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
1. A + (A · B) = A, car les termes à gauche de l’égalité donnent A · A + A · B = A(1
+B) = A · 1 = A
2. A · (A + B) = A . En effet A · (A + B) = AA + AB = A + AB = A (Relation 1)
3. A + ( A · B) = A + B. En effet par la loi de la distributivité, ceci est égale à (A +
A ) · (A + B) = 1 · (A + B)
4. A · ( A + B) = A · B, car A · ( A + B) = A · A + A · B = 0 +A · B
5. (A · B) + (A · B ) = A. En effet si A est mis en facteur, on a, A · (B + B ) = A·1 =
A
6. (A + B) · (A + B ) = A , car par la loi de la distributivité, on a (A + B) · (A + B )
= A + (B · B ) = A.

Exemple 1.7.
Simplifier l’expression Booléenne suivante

F  ABC  ABC  A

Solution
En mettant d’abord AB en facteur, on obtient

F  AB(C  C)  A  AB  A, car C  C  1

Alors, par la relation 3 ci-dessus, on a F = A + B

Exemple 1.8.
Un dispositif F surveille la bonne marche de 3 générateurs A, B et C. Si deux des
générateurs ou tous trois sont en pannes le dispositif sonne l’alarme. Donner une table de
vérité avec les valeurs logiques 0 et 1 pour décrire les états de A, B, C et F.

Solution
Supposons qu’un générateur est à l’état 1 s’il est en panne, et à l’état 0 dans le cas
contraire, et que la sonnerie F est à l’état 1 lorsqu’elle sonne et à l’état 0 dans le cas contraire.
Alors on a la table de vérité suivante.

A B C D
0 0 0 0
1 0 0 0
0 1 0 1
1 1 0 0
0 0 1 1
1 0 1 1
0 1 1 1
1 1 1 1

13
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

En considérant seulement les lignes où F a la valeur 1, nous pouvons écrire,

F  ABC  ABC  ABC  ABC

Afin de simplifier F , groupons les 2 derniers termes. Alors

F  ABC  ABC  BC ( A  A)
 ABC  ABC  BC

Bien que des mises en facteur soient possibles, aucune simplification supplémentaire n’est
possible

PROBLEMES
1.1.
Ecrire 167(8) dans la base 10.

1.2.
Obtenir l’équivalent octal du nombre décimal
231(10)

1.3.
Obtenir l’équivalent octal des nombres suivants

N ( 2 )  111001110, M ( 4 )  32013

1.4.
Convertir dans la base 10 les nombres suivants

N ( 3)  0,212, M(16)  0, DA

1.5.
Convertir dans la base 8 le nombre N(10) = 31,20 ; et en déduire l’équivalent binaire.

1.6.
Décrire par une expression logique la liaison entre a et b pour le système de relais
suivant.

14
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

1.7.
Vérifier la relation de Morgan A  B  A  B

1.8.
Simplifier l’expression de F et vérifier l’identité I

F  ( X  Y )( X  Y ) Z  X
I : XY  XZ  YZ  XY  XZ

1.9.
Montre que pour tout f ( X , X , Y ,; Z ) on a
1. X  f ( X , X , Y ,, Z )  X  f (1,0, Y ,, Z )
2. X  f ( X , X , Y ,, Z )  X  f (0,1, Y ,, Z )

1.10.
Utiliser la table de vérité ci-dessous pour obtenir F(A,B)

A B F
0 0 0
1 0 1
0 1 1
1 1 0

SOLUTION

1.1.
167(8)  1 82  6  81  7  80  16  48  7  71(10)

1.2.
Les divisions successives par 8 donnent

15
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
231 : 8 = 28 reste 7
28 : 8 = 3 reste 4
3 : 8 =0 reste 3
D’où
231(10)  347 (8)

1.3.
En groupant les termes de N(2), 3 par3, on a

N ( 2 )  (111)(001)(110)  716(8)

Pour M(4) , on peut l’écrire d’abord dans la base 2, puis passer à la base 8

32013( 4 )  (11)(10)(00)(01)(11) ( 2 )  (001)(110)(000)(111) ( 2 )


 N (8)  1607

1.4.
On peut écrire

2 1 2  23 
N ( 3)  2  31  1 32  2  33     
3 9 27  27  (10)
D A 13 10 208  10  218 
M (16)   2      
16 (16) 16 256 256  256  (10)

1.5.
Le nombre N(10) = 31,20 = 31 + 0,20. Soit,

M = 31 et P = 0,20

Nous convertirons M et P dans la base 8.

M P
31 : 8 = 3 reste 7 0,20 × 8 = 1,6 , partie entière = 1
3 : 8 = 0 reste 3 0,6 × 8 = 4,8 , partie entière = 4
0,8 × 8 = 6,4 , partie entière = 6

En résumé,

M(8) = 37 ; P(8) = 0,146, donc

N(8) = 37,146

16
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
1.6.
Soit Lab la variable logique correspondant à la liaison entre a et b . On peut aller de a
à b, soit par le contact A, soit par E. Par inspection on déduit.

Lab  A  ( B  CD)  ED

1.7.
Pour vérifier la relation de De Morgan A  B  A  B nous évaluerons séparément
A  B et A  B à partir des valeurs de A et B.

A B A B A B
0 0 0 0  0  1 0 0  1 1  1
1 0 1 0  0  1 1 0  0 1 1
0 1 0 1  1 0  1
01  0  1
1 1 1 1  0 0  0
1 1  1  0

Et on en déduit que A  B  A  B

1.8.
Pour F, l’application de la règle 6 de la section 1,7 donne

F  ( X  Y )( X  Y ) Z  X  XZ  X

Et l’application de la règle 3 de la même section donne ( avec X à la place de A)

F  XZ  X  X  Z

Pour vérifier l’identité I, introduisons le terme

XY  XZ  YZ  XY  XZ  YZ ( X  X )
 XY  YZX  XZ  YZX
 XY (1  Z )  XZ (1  Y )
 XY  XZ

1.9.
Dans le produit X  f ( X , X , Y , , Z ) , on peut rencontrer les termes X  X et X  X ,
or

X  X  X  X 1
X  X  0 X 0

17
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
C’est dire donc qu’on peut remplacer par 1 le terme x contenu dans f et par 0 le terme X de f,
d’où

X  f ( X , X , Y ,, Z )  X  f (1,0, Y ,, Z )

Pour la somme X  f ( X , X , Y , , Z ) , on sait que si on ajoute X à un terme contenant X ou


X , on a, par les règles de simplifications de la Section 1.7,

X  AX  X  X  A  0
X  AX  X  A  X  A  1

C’est comme si X était remplacé par 0 dans le terme AX et comme si X était remplacé par 1
d’où,

X  f ( X , X , Y ,, Z )  X  f (0,1, Y ,, Z )

1.10.
En examinant les lignes où F = I , on peut écrire

F  AB  AB

18
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
CHAPITRE II
CIRCUITS LOGIQUES COMBINATOIRES

2.1. DEFINITION ET CIRCUITS DE BASE


La synthèse des expressions booléennes peut se faire à l’aide de circuits électroniques.
Les expressions indépendante du temps sont dites combinatoires, et sont réalisées par des
circuits dit combinatoires.

Notre objectif n’est pas de présenter les circuits électroniques pouvant réaliser des
opérations logiques, mais de donner plutôt des circuits logiques utilisant des symboles pour
représenter des opérations telles que le « OU », le « ET » et le « COMPLEMENT ». Nous
utiliserons alors les symboles logiques de base suivantes, tout en utilisant les mots Anglais
OR pour OU, AND pour ET et NOT pour le COMPLEMENT ( car les publications en
anglais sont les plus nombreuses dans le domaine des circuits logiques).

Exemple 2.1.
Dans le table de vérité ci-dessous, A et B sont les entrées et Z est la sortie.
1. Donner l’expression booléenne exprimant Z.
2. Donner le circuit logique synthétisant Z.

A B Z
0 0 0
1 0 1
0 1 1
1 1 0

Solution
1. En considérant les lignes où Z = 1 , on peut écrire

Z  AB  AB

2. Pour la synthèse, nous supposons A et B sont disponibles et nous produirons


A, B , AB , AB , puis Z.

19
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

2.2 AUTRES SYMBOLES LOGIQUES


Il est possible de produire les circuits logiques de base à partir d’un même type, tel
que le NAND (NOT – AND ) ou le NOR (NOT – OR). Le NAND et le NOR sont souvent
disponibles comme composants électroniques et leur représentation symbolique est comme
suit .

A. LE NAND. Il se présente comme

Il équivaut à un AND suivi d’un NOT. La boule sur la figure indique la complémentation. A
l’aide de circuits NAND on peut réaliser le NOT, le OR et le AND de la façon suivante, où
les entrées non utilisées ont la valeur logique 1.

B Le NOR. Il se présente comme suit

Avec des NOR , le NOT OR et AND se réalisent de la façon suivante, où les entrées non
utilisées ont la valeur logique 0

Avec des NOR, on peut réaliser le NOT, le OR et le AND de la manière suivante, où les
entrées non utilisées ont la valeur logique 0.

20
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Exemple 2.2.
Synthétiser à l’aide de NAND , l’expression

Z  AB  AB

On réduira le circuit logique obtenu, si nécessaire

Solution
Nous pouvons d’abord produire A , puis B , AB , AB, et Z, ce qui donne la figure
suivante

Toutefois on note que la sortie du NAND- 3, peut aller directement dans le NAND – 9, et on
élimine ainsi les NAND 4 et 7. De même on peut élimine les NAND 6 et 8, d’où le circuit
simplifié,

L’expression Z  AB  AB que nous venons de synthétiser apparaît très souvent dans


les problèmes. Pour cela donc il porte un nom, OU EXCLISIF, ou XOR (exclusive OR) et
son symbole est le suivant

21
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Sa table de vérité est celle donnée dans l’Exemple 2.1.

2.3 DIAGRAMME DE KARNAUGH


Ce diagramme nous permettra de simplifier par observations, les expressions logiques. Il
est particulièrement commode lorsqu’on a au maximum 4 variables logiques A,B,C et D dans
une expression Z. Dans le cas donc le quatre variables, le Diagramme de Karnaugh (D.K) se
présente comme suit

Où chaque case est localisée par les valeurs de A,B,C et D. Dans chaque case est placée la
valeur correspondante de Z. En fait, pour simplifier le diagramme, nous nous limiterons
seulement à remplir les cases où Z = 1 et nous laisserons vides les autres cases.
Les cases sont telles qu’en passant horizontalement ou verticalement d’une case à l’autre,
une seule variable logique change de valeur parmi A,B,C et D ; par exemple, la case en haut
et à gauche a pour valeur de A,B,C et D ,0,0,0,0, et la case directement en dessous est
identifiée par 0,1,0,0 c’est à dire que B seul est passée de 0 à 1.

Exemple 2.3.
Donner le diagramme de Karnaugh correspondant à la table de vérité ci-dessous, où A, B
et C sont les entrées et Z la sortie d’un circuit logique

A B C Z
0 0 0 0
1 0 0 0
0 1 0 1
1 1 0 0
0 0 1 0
1 0 1 0
0 1 1 1
1 1 1 1

Solution
Le D.K. correspondant est le suivant

22
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

où les cases contenant des 1 sont celles où les valeurs de ABC, sont 010, 011, 111.

2.4 SIMPLIFICATION PAR LA METHODE DE KARNAUGH


Etant donné un diagramme de Karnaugh correspondant à une expression logique, on
peut procéder par inspection, à une simplification de l’expression grâce aux principes
suivants :

P1 : Si deux cases adjacentes (ayant un côté commun) contiennent toutes des « 1 », alors on
peut omettre la variable qui change de valeur dans ces 2 cases. En effet, ceci correspondrait à
l’expression

Z1  XA  XA  x( A  A )

P2 : On peut grouper le « 1 » d’une case avec les « 1 » des autres case adjacentes, pour former
ainsi plusieurs groupes. En effet, toute expression logique peut être ajoutée à elle même sans
changer de valeur (A = A + A). En groupant les cases adjacentes contenant des 1, nous
rechercherons dans l’ordre :
1. Tous les groupes de 8 cases adjacentes contenant des 1.
2. Tous les groupes de 4 cases adjacentes restantes contenant des 1.
3. Tous les groupes de 2 cases adjacentes restantes contenant des 1.

P3 : Lorsque certaines combinaisons de valeurs des variables ne peuvent pas se produire en


réalité, ou l’expression logique correspondant à ces combinaisons n’a pas d’importance, alors
nous placerons la lettre φ dans les cases correspondantes et nous donnerons à φ soit la valeur
0, soit la valeur 1, selon les avantages de simplification qu’on peut en tirer.

Exemple 2.4.
Pour le D.K. ci-dessous, donner l’expression réduite de la variable de sortie z.

23
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Solution
Nous pouvons avoir un groupe de 4 cases adjacentes contenant des 1, si on posait
φ=1
C’est ce que nous avons fait. Il reste un 1 dans la case en bas à gauche que nous groupons
avec le 1 de la case au dessus.
Dans la boucle de 4 cases, A et C varient .Alors l’expression correspondante réduite
est B.
Dans la boucle de 2 cases, B seulement varient, tandis que A = 1 et C = 0. D’où
l’expression réduite :

Z  B  AC

Ce qu’on peut synthétiser comme

Exemple 2.5.
Donner l’expression logique réduite correspondant au diagramme de Karnaugh ci-
dessous

Solution
Nous choisissons les différents φ comme ci-dessous

Les cases supérieures et inférieures sont adjacentes, car si on considère la case en haut à
gauche et la case en bas à gauche c’est seulement la variable qui change de valeur.

Nous avons ici un groupe de quatre cases avec 1. D’où la sortie

Z B

24
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Exemple 2.6.
Pour chacun des diagrammes ci-dessous, donner l’expression réduite de la sortie Z.

Solution
En remplaçant chaque φ par la valeur qui nous convient, on obtient les diagrammes
suivants.

Dans le cas (a), nous avons un groupe de 8 cases où seule la variable D ne change pas de
valeur. Donc là
Z= D

Dans le cas (b), nous avons 3 groupes de 4 cases contenant des 1. Alors

Z  AD  CD  BC

Exemple 2.7.
La porte d’un coffre a 4 contacts A, B, C, D qui permettent de l’ouvrir (A pourrait
être établi par le Président de la boite, B par le Vice-Président, C par le Directeur des Finances
et D par le Directeur du Personnel). Le coffre s’ouvre si A et B sont établis, ou si A, C et D
sont établis, ou si B, C et D sont établis et A n’est pas établi.
Quel circuit logique réduit, actionnera l’ouverture de la porte ?

Solution
L’ouverture se fera selon l’expression

Z  AB  ACD  BCDA

Pour s’assurer que l’expression de Z est réduite au maximum , nous allons établir le
diagramme de Karnaugh correspondant. Afin d’avoir toutes les quatre variables dans chacun
des termes de Z, écrivons

25
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Z  AB(C  C )( D  D )  ACD( B  B )  ABCD

Nous aurons alors des 1 là où AB = 11 et (à C=1 et à C = 0) et (à D = 1 et à D = 0), puis pour


ACDB, ACDB et ABCD . Soit

Alors l’expression réduite est

Zr  AB  BCD  ACD

Cette expression est plus simple que celle de Z. La synthèse du circuit logique correspondant
est comme suit :

2.5. DIAGRAMME DE KARNAUGH A 5 VARIABLES


Dans le cas de 5 variables, le diagramme de Karnaugh peut se présenter comme deux
tableaux où la cinquième variable change de valeur en passant du premier tableau au second.
Considérons l’exemple ci-dessous, où la cinquième variable est E.

Lorsque deux cases correspondantes des 2 tableaux ont des 1, nous les considérons comme un
groupe de cases adjacentes contenant des 1 et la variable E disparaît de l’expression

26
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
correspondante. C’est selon cette règle que nous avons groupé les cases dans la figure ci-
dessus, et par conséquent l’expression réduite est

Z  BCDE  ABCD  ABC

On peut aussi construire des diagrammes de Karnaugh pour six variables et plus, mais
dans ce livre nous n’aurons pas besoin de D.K. de plus de 4 variables.

PROBLEMES
2.1.
Déterminer la sortie du circuit ci-dessous

2.2.
Utiliser des portes NOR pour synthétiser le OU-EXCLUSIF, où

Z  AB  AB

2.3.
Synthétiser un circuit logique capable de convertir les nombres binaires à 3 chiffres(3
bits) en nombres décimaux.

2.4.
Donner les expressions réduites correspondant aux diagrammes suivant

27
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
2.5.
L’addition de deux chiffres binaires Ai et Bi avec le report précédent Ri1 , donne
une somme Si et un report Ri. Donner la table de vérité pour cette opération, puis simplifier
les expressions de Si et Ri par la méthode de Karnaugh.

SOLUTIONS
2.1.
Les sorties des différentes portes sont les suivantes

Porte 1 : B Porte 2 : B + D

Porte 3 : C ( B + D) Porte 4 : AD

Porte 5 : C ( B + D) + AD

2.2
Z = A B + A B ce qu’on peut synthétiser en utilisant les NOR comme suit

On note que les NOR 2 et 4 se suivent et peuvent être éliminés, de même pour les
NOR 1 et 6. On a alors le circuit simplifié

28
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

2.3.
Pour la conversion du binaire en décimal, nous devons d’abord établir une table de
vérité, soit

Binaire Décimal
ABC Z
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Zo  ABC , Z1  ABC, Z2  ABC , Z3  ABC, Z4  ABC ,


Z5  ABC, Z6  ABC , Z7  ABC,

D’où le circuit logique

2.4.
(a)

La sortie est

Z  AB  BD  CD

(b) Pour ce diagramme nous prenons les deux φ comme des 1.

29
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
D’où,

2.5.
La table de vérité pour l’addition de Ai, Bi, Ri est la suivante.

Ai, Bi Ri-1 Si Ri
0 0 0 0 0
1 0 0 1 0
0 1 0 1 0
1 1 0 0 1
0 0 1 1 0
1 0 1 0 1
0 1 1 0 1
1 1 1 1 1

Et les Diagrammes de Karnaugh sont :

Pour Si, aucune simplification n’est possible. Alors

Si  Ai Bi Ri 1  Ai Bi Ri 1  Ai Bi Ri 1  Ai Bi Ri 1

On peut réarranger d’avantage les termes de Si puisque

Ai  Bi  Ai Bi  Ai Bi  ( Ai  Bi )( Ai  Bi )  Ai Bi  Ai Bi

car les termes Ai Ai et Bi Bi sont nuls, D’où

30
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Si  Ri 1 ( Ai  Bi )  Ri 1 ( Ai  Bi )  Ri 1  ( Ai  Bi )

Quant à Ri , il s’écrit

Ri  Ai Bi  Ai Ri 1  Bi Ri 1

31
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

CHAPITRE III
CIRCUITS SEQUENTIELS

3.1 INTRODUCTION
Un circuit logique séquentiel est un circuit logique dont la sortie à un temps t + 1
dépens de l’entrée au temps t et de l’histoire des entrées. C’est donc un élément avec
mémoire.

Ici nos circuits séquentiels seront composés d’un ensemble de bascules, de portes et
parfois de signaux d’horloge. Les circuits séquentiels dont les sorties sont fonctions du signal
d’horloge seront des circuits synchrones, les autres seront des circuits asynchrones.

En général un signal d’horloge se présente de la façon suivante

où A = amplitudes de l’impulsion d’horloge


τ = durée de l’impulsion
T = période des impulsions

La flèche pointant vers le base indique ici que les bascules possédant des entrées
d’horloge, réagiront seulement à l’instant de retombée de l’impulsion d’horloge.
Les valeur de τ et T dépendent respectivement du temps de commutation d’une bascule, et du
temps que prennent certaines opérations pour s’achever.

Nous dénoterons le signal d’horloge et les entrées d’horloge par la lettre H ou C (C


étant issue du mot anglais Clock pour Horloge).

Nous examinerons maintenant les types les plus courants de bascules, à savoir, la
bascule SR (set reset), la bascule J –K, et la bascule D.

3.2. BASCULE SR
Une bascule SR est facilement réalisée avec deux portes NOR, de la manière suivante :

32
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Pour cette bascule, nous voulons l’état Set avec Q = 1, lorsqu’à l’entrée nous avons S =1

et R = 0. Aussi nous voulons l’état Reset, avec Q = 0, lorsque S = 0 et R = 1. Dénotons par Qt


la valeur de Q au temps t, et par Qt + 1 la valeur de Q après l’application de nouvelles valeurs
de R et S. Alors nous avons les cas possibles ci-dessous :

1. Si S = 1 et R = 0, la sortie de la porte-1 est

Qt1  1  Qt  1  0

et la sortie de la porte-2 est

Qt 1  0  Q t  Q t
Mais pour Q’t, nous pouvons prendre la sortie de la porte-1 qui est Q’t+1 = 0, et on a

Qt 1  0  1

et on note que Qt 1  Qt1 .

2. Si S = 0 et R = 1, alors par la symétrie du circuit, on a

Qt1  1 , Qt 1  0, et Qt 1  Qt1

3. Si S = 0 et R = 0, alors la nouvelle valeur de Q est égale à l’ancienne valeur de Q.


En effet, on a

Qt 1  Qt  R  Qt  0  Qt
Qt1  Qt 1  S  Qt  0  Qt

où nous avons supposé que l’excitation considérée ici, a suivi un des types d’excitation ci-
dessus où Qt  Qt . Et on note ici aussi que Qt 1  Qt  Qt   Qt 1

4. Si S = 1 et R = 1, alors

Qt 1  Qt  1  0, Qt+1  Qt  1  0

ce cas est à empêcher car lorsque S et R reprennent la valeur 0, la sortie prendra des valeurs
différentes, selon que c’est S qui est zéro le premier (alors S = 0 et Q = 0, avant qu’on ait
après S = 0 et R = 0), ou c’est R qui est zéro le premier (et on a Q = 1). On exige alors pour la
bascule SR, la relation

SR = 0

33
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Exemple 3.1.
Vérifier que le circuit ci-dessous représente une bascule SR.

Solution
Ecrivons l’expression des sorties au temps t+1 en fonction des entrées au temps t.

Qt 1  S  Qt  S  Qt
Qt1  R  Qt  R  Qt

Si S = 1 et R = 0, on obtient Qt 1  1  Qt   1 tandis que Qt1  0  1  0 . Si S = 0 et R = 1, on


a , à l’image du résultat précédent, Qt+1 = 0 et Q’t+1 = 1. Lorsque S = 0 = R alors
Qt 1  0  Qt   Qt et Qt1  0  Qt  Qt La situation S = 1 = R est exclue ici aussi à cause de
l’indétermination qu’on obtient à la sortie lorsqu’on passe de S = 1 = R à S = 0 = R.

Le circuit de cet exemple représente bien une bascule SR.

3.3.BASCULE J-K
La bascule J-K dérive son nom du fait que deux de ses entrées ont été baptisées
respectivement J et K. Elle est représentée symboliquement comme suit

CP = entrée du signal d’horloge. L’action du signal est sentie à la retombée de


l’impulsion, ce qui est signifié par la boule devant l’entrée CP dans la figure. L’absence de
boule indique que l’impulsion se fait sentir à sa montée.

C = entrée du signal Clear ( remise à Zéro). Q = 0 lorsque C = 0, ce qui est signifié


par la boule devant l’entrée C.

P = entrée du signal Preset, correspondant à Q = 1 lorsque P = 0. On notera ici


encore la présence de la boule devant P, dans la figure.
L’absence de boule devant C et P indique que ces entrées fonctionnent avec des
valeurs logiques 1. Les actions de C et P sur Q , n’attendent pas l’arrivée d’un signal CP.

34
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Pour éviter une ambiguïté dans la valeur de Q les excitations C et P ne doivent jamais
être appliquées simultanément.
La sortie Q, en l’absence de signaux dans C et P est fonction des valeurs logiques de J
et K, lorsque Cp est présent. La table de vérité correspondante est la suivante.

J K Qt+1
0 0 Qt
1 0 1
0 1 0
1 1 Qt

Donc les entrées J et K jouent un rôle semblable à celui des entrées sur S et R, de la bascule
SR, sauf que le cas J = 1, K = 1 est autorisé ici et donne lieu à un change de la valeur
logique du signal de sortie ;

Le chronogramme ci – dessous illustre le principe de fonctionnement de la bascule J-K. On


notera qu’aucun changement de la valeur de Q n’a lieu en l’absence du signal d’horloge.

- Avant l’impulsion 1, nous ignorons la valeur initiale de Q.


- A l’impulsion 1, on a K=1, J=0, donc Q = 0.
- A l’impulsion 2, J=1=K, on a changement d’état.
- A l’impulsion 3, J = 0, K= 0 on a maintient de l’état précédent.
- A l’impulsion 4, J = 1, K =1, on a changement d’état.

3.4. BASCULES D
Les bascules D, dont le nom est dérivé de « Delay flip-flop » ( bascule de délai), sont
représentées comme suit,

où la sortie est fonction de l’entrée de niveau D et de l’entrée d’impulsion Cp. Lorsque Cp est
présent, la sortie est égale à l’entrée D.

Dt 1  Dt

35
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Cette bascule est équivalente a une bascule J-K où J = D et K = D avec le circuit


correspondant ci-dessous.

L’utilisation des bascules D dans les registres à décalage est fréquente et un exemple est
présenté dans ce qui suit.

Exemple 3.2
Expliquer le fonctionnement du registre à décalage ci-dessous où initialement on a

Q1  Q2  Q3  0

et où les impulsions d’horloge trouvent successivement les niveaux 1,0,1,1,0 sur D1

Solution
La bascule D transfère à sa sortie le niveau logique qui se trouvait à son entrée à
l’arrivée du signal d’horloge. On a alors la table de vérité suivante

Numéro de D1 Q1 Q2 Q3
L’Impulsion
0 0 0 0
1 1 1 0 0
2 0 0 1 0
3 1 1 0 1
4 1 1 1 0
5 0 0 1 1

3.5.COMPTEURS BINAIRES
Le compteur peut être synchrone ou asynchrone. Il est binaire s’il compte jusqu’à
des puissances de 2.
Un compteur synchrone à 4 Bits se présente comme suit

36
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Une bascule ici ne change d’état que si toutes celles qui la présente sont à l’état 1, le test de
cette situation étant effectué à l’aide des portes AND. Le compteur ici compte jusqu’à 24 = 16

Pour le compteur asynchrone, les impulsion d’horloge d’une bascule sont fournies par la
retombée du signal de sortie de la bascule précédente, sauf dans le cas de la première bascule
qui, elle , a besoin d’impulsions de commande CP. Le circuit est le suivant pour le compteur à
3 bits.

Le niveau 1 est dans toutes les entrées J-K afin de permettre des changements d’état lorsque
c’est nécessaire. Si les sorties initiales sont 0 pour toutes les bascules, alors la première
impulsion CP fait passer Q1 de 0 à 1. La seconde impulsion ramène Q1 à 0 mais le passage de
1 à 0 déclenche la seconde bascule qui va de 0 à 1. Ainsi de suite. La table de vérité est ici
comme suit

Numéro de Q1 Q2 Q3
L’Impulsion
0 0 0 0
1 1 0 0
2 0 1 0
3 1 1 0
4 0 0 1
5 1 0 1
6 0 1 1
7 1 1 1
8 0 0 0

Pour le compteur binaire on utilise les sorties Q au lieu de Q dans les circuits donnés pour
le compteur binaires.

Exemple 3.3
Donner le circuit d’un compteur- décompteur synchrone binaire à 3 bits. Un signal de
contrôle S sélectionnera le mode d’opération.

37
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Solution
Les sorties Q seront utilisées pendant le compte et les sorties Q pendant le
compte. On a alors le circuit suivant.

Lorsque S =1, les sorties des portes 3 et 4 sont nulles et on a à faire à un compteur. Lorsque S
= 0 , les sorties des portes 1 et 2 sont nulles et on a en main un décompteur.

3.6. SYNTHESE DES COMPTEURS MODULE N


Pour synthétiser un compteur modulo N où N n’est pas une puissance de 2, on a
recours à des bascules J-K si on veut un compteur synchrone, et à des bascules D ou SR
lorsque le compteur est asynchrone. Le problème qui se poser est celui de déterminer les
signaux d’entrées tout juste nécessaires pour chaque bascule du compteur. Une réduction des
expressions logiques par la méthode de Karnaugh sera appliquée.

Les signaux à appliquer aux entrées sont fonctions des transitions d’état que nous
voulons dans une bascule. Pour les différentes bascules nous avons les tables de vérité
suivantes.
Bascule J-K Bascule S-R
Qt Qt+1 Jt Kt Qt Qt+1 Rt St
0 0 0 φ 0 0 φ 0
1 0 φ 1 1 0 1 0
0 1 1 φ 0 1 0 1
1 1 φ 0 1 1 0 φ

Bascule D
Qt+1 Dt
0 0
1 1

Pour la bascule J-K , on note par exemple que si la sortie se maintient à 0 (Qt = 0 = Qt+1 ),
c’est que l’entrée J au temps t était 0, et cela quelque fût Kt (alors, Kt = φ).

38
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Pour la bascule R-S , on remarquera que le cas R =1 et S=1 ne se produira pas . En
prenant à titre d’exemple la dernière ligne de la table de vérité, on voit que pour un maintien
de la sortie à 1, il faut avoir Rt = 0, St pouvant être quelconque.

Pour la bascule D, la valeur de Qt n’intervient pas dans la détermination de Qt+1 car Qt+1 = Dt

L’exemple ci-dessous illustre la méthode de synthèse du compteur modulo N.

Exemple 3.4.
Synthétiser un compteur synchrone modulo 5.

Solution
Nous procédons par étapes :

1. Nombre et type de bascules. Le nombre 5 est compris entre 2² et 23. Il nous faudra
alors utiliser 3 bascules. Puisque le compteur doit être synchrone, nous utiliserons des
bascules les J-K.
2. Table de vérité . Nous constituons ici une table de vérité ayant pour entrées les
sorties des bascules et pour sorties les entrées à appliquer aux bascules. D’où

Imp Q1 Q2 Q3 J1 K1 J2 K2 J3 K3
0 0 0 0 1 φ 0 φ 0 φ
1 1 0 0 φ 1 1 φ 0 φ
2 0 1 0 1 φ φ 0 0 φ
3 1 1 0 φ 1 φ 1 1 φ
4 0 0 1 0 φ 0 φ φ 1
5 0 0 0

Le temps est compté par les impulsions. A l’impulsion 1, nous voulons que Q1 passe de 0 à 1,
que Q2 et Q3 se maintiennent à 0. C’est que au temps 0, J1 = 1 , K1 = φ , J2 = 0 K2 = φ ; J3 = 0,
K3 = φ. Les valeurs de J et K ont été tirées de la tables donnant le fonctionnement des
bascules J-K, table donnée au début de cette section.

3. Diagrammes de Karnaugh Nous établirons maintenant les diagrammes de Karnaugh


pour les entrées J et K des bascules, en nous basant sur la table de l’étape-2.
Alors,

39
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Pour la valeur de Q1 Q2 Q3 , égales à 101, 011, 111, nous pouvons choisir n’importe
quelle valeur de J et K , car le compteur qui est modulo 5, ne sortira jamais ces valeurs.
C’est ainsi que nous avons placé des φ dans les cases correspondants à ces valeurs de Q1
Q2 Q3.

La réduction par la méthode de Karnaugh nous donne

J1  Q3 , K1  1, J2  Q1 , K2  Q1 , J3  Q1Q2 , K3  1

4. Circuit du compteur
En se basant sur les expressions logiques des entrées J et K obtenues ci-dessus, on
déduit le circuit suivant du compteur modulo 5.

Ceci complète l’illustration de la méthode de synthèse d’un compteur modulo N.

PROBLEMES
3.1.
Vérifier que le circuit ci-dessous réalise une bascule J-K avec toutes les entrées
mentionnées dans la Section 3.3.

40
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

3.2.
Obtenir la table de vérité correspondant au circuit ci-dessous

On suppose que les sorties des 3 bascules sont initialement 0

3.3.
Une bascule J-K peut être convertie en une bascule du type T( T pour « toggle flip-
flop » ; en français interrupteur à bascule). Donner la table de vérité indiquant le
fonctionnement de la bascule et indiquer comment on peut réaliser une bascule T à partir des
bascules SR et D.

La bascule T se présente comme suit.

3.4.
Comme nous l’avons vu dans le cas du registre à décalage, les données peuvent être
introduites « en série » dans le registre en présentant les bits un à un à l’entrée du registre à
décalage. En utilisant l’entrée P de bascules J-K constituant un registre, montrer qu’on peut
introduire « en parallèle » des données dans le registre. On utilisera un signal R( pour read)
registre.

3.5.
Synthétiser un compteur synchrone modulo 7 à l’aide de bascules J-K .O suivra les
étapes données dans la dernière section de ce chapitre.

41
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
3.6.
Synthétiser un compteur synchrone dont les sorties sont données dans l’ordre de la
table ci-dessous. On utilisera des bascules D.

Numéro de Q1 Q2 Q3
L’Impulsion
0 0 0 0
1 1 0 0
2 0 1 0
3 0 0 1
4 0 1 1
5 1 1 1
6 0 0 0

SOLUTIONS
3.1.
En examinant la figure de ce problème, on note que :

1. Si P=0, Q est forcement égal à 1 , à cause du NAND–3. De même si C=0, Q  1 .


P est donc l’entrée du Preset et C est l’entrée du Clear. Dans ce qui suit on
supposera P = 1 = C (afin que ces entrées n’influencent pas les actions des autres
entrées.
2. Si Cp = 0, U = V = 1 quelque soient les valeurs de J et K. Donc pour que les
signaux dans J et K aient une influence, il faux qu’on ait un signal d’horloge, Cp
= 1.
3. Si Q  1 et Q  0, un changement dans la valeur de U ne change pas celles de la
sortie du NAND-3, vue que ce NAND a à son entrée Q  0 . Ici donc les
changements dans les sorties , sont sous le contrôle de V seulement. Pour qu’il y
ait changement d’état, V doit être 0, autrement dit, K doit être 1(vue que les autres
entrées du NAND-2 sont déjà 1). Un changement d’état de Q donne Q  1 à la
retombée de Cp avec Cp = 0. U = 1 et la sortie du NAND –3 passe à 0 car toutes
ses entrées sont 1.
4. Comme dans le cas du président, si Q  0 et Q  1, U contrôle le circuit. Si J = 1,
Q passe à 1 et Q à 0.

Les résultats des étapes 3 et 4 se résument de la façon suivante :

42
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

D’où on tire :
Si K = 0 et J = 1, Qt+1 = 1 (Set)
Si K = 1 et J = 0, Qt+1 = 0 (Reset)

Si K = 1 et J = 1, Q change de valeur. Donc la bascule est du type J-K.

3.2.
Soit D1, D2 et D3 les 3 bascules données. Puisque les sorties sont initialement 0, D1 à
son entrée un 1 venant de Q3 , alors que les autres bascules ont à leurs entrées des 0. La
première impulsion transférera 1 dans Q1, 0 dans Q2 et 0 dans Q3. A la deuxième impulsion,
le 1 sera transféré dans Q2 e t à la troisième impulsion Q3 sera aussi égal à 1. C’est alors que
Q3 = 0 et ce 0 est placé à l’entrée de D1 pour donner Q1 = 0 à quatrième impulsion. Si on
continue l’argument on déduit la table de vérité suivante.

Numéro de Q1 Q2 Q3
L’Impulsion
0 0 0 0
1 1 0 0
2 1 1 0
3 1 1 1
4 0 1 1
5 0 0 1
6 0 0 0

3.3.
Le signal étant à la fois dans J et K , on a un changement de la valeur du signal de
sortie si et seulement si T = 1. D’où la table de vérité ci-dessous

Tt Q t+1
0 Qt
1 Qt

Le circuit ci-dessous converti une bascule SR en une bascule T

43
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Si après l’impulsion 1 on a le set, avec Q=1 et Q  0 , la valeur Q = 1 se présente au reset, si


bien qu’après la deuxième impulsion on aura le reset, avec Q = 0. Q Bascule entre 1 et 0.
Nous avons donc une bascule T

On peut aussi réaliser une bascule T, si la bascule D est connectée comme suit

Si à t = 1 , Q=1 et Q  0 , alors Q  0 sera présent à l’entrée D pour attendre la deuxième


impulsion. A l’arrivée de cette impulsion, on aura Q = 0 et Q  1 . La sortie Q variera entre 1
et 0 avec les impulsions, c’est que nous avons ici une bascule T.

3.4.
Nous introduirons les données dans les registres par le canal des entrées P et C des
bascules. On distingue 2 cas :

1. On doit transférer un 1 si le bit bi à transférer est 1 et si le signal Read est 1. Le


transfert étant fait par le canal de P, il nous faudra produire dans ce cas P = 0, pour les
bascules J-K que nous utilisons dans ce livre. Alors

P  bi R, soit P  bi R

Ce qui est synthétisé par le circuit suivant :

2. Nous effectuerons le transfert d’un 0 si bi = 0 et R = 1. Pour cela on doit agir sur C


avec un signal C = 0. D’où,

C  bi R, soit C  bi R

En résumé on aura pour la bascule-i du registre

44
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Le signal R doit passer au niveau 1 pendant la période de transfert des données dans le
registre.

3.5.
1. On aura besoin de 3 bascules
2. La table de vérité donnant aux différents instants les valeurs des J et K en fonction de
celles de Q1, Q2 et Q3 est la suivante

Imp Q1 Q2 Q3 J1 K1 J2 K2 J3 K3
0 0 0 0 1 φ 0 φ 0 φ
1 1 0 0 φ 1 1 φ 0 φ
2 0 1 0 1 φ φ 0 0 φ
3 1 1 0 φ 1 φ 1 1 φ
4 0 0 1 1 φ 0 φ φ 0
5 1 0 1 φ 1 1 φ φ 0
6 0 1 1 0 φ φ 1 φ 1
7 0 0 0

3. Les diagrammes de Karnaugh pour les entrées sont les suivants.

45
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

où les φ se trouvant dans les boucles ont été pris comme ayant la valeur logique 1. Alors
nous avons les expressions réduites

J1  Q3  Q2 ; K1  1; J 2  Q1
K2  Q1  Q3 ; J 3  Q1Q2 ; K 3  Q2

4. Le circuit du compteur est le suivant

3.6.
Puisque nous utilisons des bascules D, leur sortie Q est telle que

Qt+1 = Dt

D’où la table des entrées et sorties successives,

Imp Q1 Q2 Q3 D1 D2 D3
0 0 0 0 1 0 0
1 1 0 0 0 1 0
2 0 1 0 0 0 1
3 0 0 1 0 1 1
4 0 1 1 1 1 1
5 1 1 1 0 0 0
6 0 0 0

En effet lorsque, par exemple, la première impulsion arrive, elle doit trouver qu’à la période
précédente D1 = 1. Ainsi, après la première impulsion Q1 sera 1. les diagrammes de Karnaugh
sont alors les suivants

46
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

D1  Q1Q2 Q3  Q1Q2 Q3, D2  Q1Q3  Q1Q2


D3  Q1Q2  Q1Q3

D’où le circuit final

47
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
CHAPITRE IV
REPRESENTATION DES NOMBRES

4.1 INTRODUCTION
Dans ce chapitre nous examinerons les représentations des nombres signés, ainsi que
le codage BCD (binaire codé décimal). Les principes de transcodage BCD-binaire et binaire
- BCD sont donnés.

Un nombre N peut s’écrire

N = - 0,0013

où N est dit avoir une représentation en virgule fixe. Si on déplace la virgule pour l’avoir
devant le chiffre non nul le plus à gauche, on a

N = - 0,13 × 10-2


- le signe de N est négatif,
- sa mantisse est 13
- sa caractéristique est –2.

Cette représentation de N est appelée représentation en virgule flottante.

La représentation en binaire d’un nombre peut aussi se faire en virgule flottante ou en


virgule fixe.
En virgule fixe, un nombre fixe de cases est réservé aux chiffres placés avant la
virgule et un nombre fixe de cases est réservé aux chiffres après la virgule, soit

En virgule flottante, la caractéristique est mise dans des cases à part. Soit

Dans le reste de ce chapitre, nous supposerons que nous avons à faire à un nombre entier
muni de son signe. La place de la virgule ou la valeur des exposants doivent être en général
traitées avant où après les opérations arithmétiques selon le cas, problème que nous n’aurons

48
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
pas à traiter ici. De plus, nous supposerons que la valeur absolue des nombres est comprise
entre 0 et 15, ce qui nous permettra de travailler avec 4 bits pour représenter la valeur absolue.

4.2 VALEUR ABSOLUE PLUS SIGNE


Nous prendrons ici la valeur logique 0 pour le signe + et 1 pour le signe -. Dans la
représentation valeur–absolue–plus-signe, nous prévoyons une case pour le signe. Alors les
nombres

N1 = -9 , N2 = +8

peuvent être représentés comme suit

Ce que nous écrirons

N1  1 1001 N 2  0 1000

où 1 et 0 sont les bits de signe.

4.3.COMPLEMENT A 2 (complément A2)


Dans cette représentation on a les 2 cas suivants :
1. Si le nombre N est positif son complément A2 a la même représentation que dans
le cas de la « valeur absolue–plus– signe »
2. Si N est négatif et sa représentation doit être faire à l’aide de n bits plus un bit
signe, nous prenons la valeur absolue de N et nous l’ôtons de 2 n+1 pour obtenir
son complément A2. Le signe du complément sera négatif et il occupera la
position du bit n +1 .

Exemple 4.1.
Obtenir le complément A2 de

1. N1 = 7 2. N2 = -7

On utilisera 5 bits (y compris le bit de signe) pour représenter les nombres.

Solution
1. N1 étant positif, sa représentation est immédiate.

N1  0 0111, 0 est le bit de signe

2. N2 étant négatif, nous devons en quelque sorte, compléter N2 à 24+1, soit le


complément A2 de N2 , soit

49
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
N 2  25  N 2  100000  0111  1 1001

Pour obtenir le complément A2 d’un nombre négatif N sans effectuer la


soustraction, deux méthodes sont possibles :

1. On considère le nombre –N qui est positif. On remplace ses 0 par des 1 et ses 1 par des
0 y compris le bit de signe de –N. Ensuite on ajoute 1 au résultat global obtenu.

2. On considère –N (qui est positif). On examine les bits en commençant par le moins
significatif, on garde les bits 0 jusqu’à ce qu’on rencontre le premier bit 1 que l’on
garde. A partir de ce point , on remplace tous les 1 par des 0, et tous les 0 par des 1, y
compris le bit de signe.

Exemple 4.2.
Utiliser les méthodes décrites ci-dessus pour obtenir le complément A2 de N = - 11.

Solution
Ici N est négatif. Alors –N = 11 >0 (positif). Nous obtenons son complément A2
comme suit.

1.  N   11  0 1011 en changeant les 1 en 0 et les 0 en 1, on obtient le nombre


intermédiaire,

N 2  1 0100

Maintenant ajoutons 1 à N2. On obtient le complément de N,

N  N 2  1  1 0101

2. En appliquant la seconde méthode on a

 N   11  0 1011
premier 1 allant de
droite à gauche.
On garde ce premier 1, mais change tous les autres (les 1 deviennent des 0, et les 0, des 1),
d’où,

N  1 0101
Si on fait la somme –N et N , chaque position de bit devient nul ( 1+1 = 10 ce qui est 2 en
base 2), avec une retenue pour la position suivante. D’où le nom complément à 2.

4.3 COMPLEMENT A 1 (A1)


Dans la représentation complément A1, les nombres positifs sont représentés par le

50
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
module et le signe. Un nombre négatif –N est représenté en prenant le module et le signe
de N et en changeant les 0 en 1 et les 1 en 0 .

Exemple 4.3.
Obtenir le complément A1 de

N=-7

Solution
 N  7  0 0111

Alors en A1, N est représenté par

N  1 1000

On note que la somme de –N et N donne 1 1111 , c’est à dire que chaque bit de N complète
–N à 1, d’où le nom complément à 1.

4.5.CODES BCD (BINARY CODED DECIMAL)


Les codes BCD sont les codes décimaux codés binaires, où un chiffre décimal compris
entre 0 et 9 est représenté en binaire par 4 bits. Or 4 bits donnent 16 chiffres représentables.
On comprend alors qu’il existe un grand nombre de codes BCD réalisables à l’aide de 4 bits
(en fait il y a environ 8000 codes possibles).

Le code BCD le plus naturel est celui que nous considérons dans ce livre et que
nous donnons ci-dessous

Chiffre 23 22 21 20
décimal
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1

51
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Ce code est appelé code 1-2-4-8, ou code 8-4-2-1 pour exprimer le poids des bits.

Exemple 4.4.
Représenter en BCD le nombre en

N = -27

en utilisant la représentation « valeur absolue plus signe »

Solution
Le signe – sera représenté par 1, le chiffre 2 par 0010 dans les quatre cases appartenant
aux dizaines. Le chiffres 7 sera représenté par 0111. Alors N = -27 se présente comme suit en
BCD

4.6. TRANSCODAGE BINAIRE – BCD – DECIMAL


Puisque nous sommes beaucoup plus familiers avec le système décimal, les nombres
binaires sortant d’un ordinateur doivent être convertis d’abord en BCD où nous avons 4 bits
réservés aux unités en décimal, 4 bits aux dizaines, etc. ensuite la conversion doit être faite
du BCD en décimal, ce qui est facilement fait en utilisant la table de la Section 4.5.

Transcodage binaire – BCD

Considérons un nombre binaire à 5 bits N1  a4 a3a2 a1a0 que nous voulons convertir
en un nombre BCD N2. Supposons que nous introduisons les bits de N1 bit par bit dans les
registres de N2 où nous avons prévu 4 cases pour les unités et quatre pour les dizaines, avec le
schéma ci-dessous.

On note que :

1. les décalages se font vers la gauche


2. Un décalage vers la gauche correspond à une multiplication par 2 en binaire ainsi
qu’en BCD, sauf pour le passage de la case 8 à la case 10 en BCD.
3. En introduisant les bits de N1 dans les cases de N2 , le décalage d’un 1 de la case 8 à
la case 10 , donne le nombre 10 en BCD alors que dans N1 il a la valeur 16. dans ce
cas donc une correction est indispensable à N2. Alors, si un 1 est dans la case 8, il faut
ajouter le nombre 3 (soit 11) à la case des unités de N2 et ensuite effectuer le décalage.
En effet, dans ce cas le 1 de la case 8 donnera 10, et le 3 donnera après décalage
3x2=6, soit tout 10+6=16

52
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
4. On sait qu’en BCD, les cases des unités ne doivent pas être utilisées pour représenter
un chiffre supérieur à 9. Or un nombre tel que 0101(5) donne après décalage 1010
qui occupe les quatre cases des unités mais qui représente le chiffre décimal 10. La
représentation correcte en BCD du nombre décimal 10 est 000110000, et pour obtenir
ce résultat, il faut ajouter 3 à 5 avant le décalage (on a 8=1000)BCD, et après décalage
on a 10000).

Le transcodage a lieu selon l’organigramme suivant dans le cas où N2 est inférieur


ou égal à 99.

Dans le cas où N2 va jusqu’à 999 le chiffre des dizaines doit aussi être testé ; s’il
est supérieur à 4, on lui ajoutera 3 avant le décalage.

Exemple 4.5.
Convertir en BCD le nombre binaire

N1 = 110010

Solution
En suivant le programme donné ci-dessus, on a

Dizaines Unités N1 = 110010


1°décalage 0000 0001
2° ‘’ 0000 0011
3° ‘’ 0000 0110 Chiffre des unités = 6 >5
Add 3 aux unités 0011
0000 1001
4°décalage 0001 0010
5° ‘’ 0010 0101 Chiffre des unités = 5
Add 3 aux unités 0011
0010 1000
6°décalage 0101 0000

53
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Alors en BCD

N2 = 0101 0000 => en décimal N = 5 0

4.7 TRANSCODAGE DECIMAL -BCD-BINAIRE


Pour introduire un nombre dans l’ordinateur nous commençons souvent par un
nombre décimal que nous pouvons facilement convertir en BCD en utilisant la table de la
section 4.5. L’étape la plus difficile est le passage du BCD au binaire, le binaire étant ce qui
est traité dans l’ordinateur.

Transcodage BCD-binaire

Nous effectuerons ici des séries de décalages vers la droite, faisant ainsi passer dans
les cases du nombre binaire N1, les bits sortant des cases du nombre BCD N2. L a disposition
des cases est la suivante:

Nous supposerons que N2 est un nombre décimal à 2 chiffres représentés en BCD.

On sait q’un décalage vers la droite revient à une division par 2 en binaire comme en
BCD, sauf lorsqu’un 1 passe de la case des 10 à la case des 8 en BCD. Dans ce dernier cas on
voudrait le passage de 10 à 5 (la moitié), et on peut atteindre cet objectif de 2 façons :

1. Soit en retranchant 3 de 8, ce qui revient à faire l’inverse de l’opération que nous


avons faite en conversion Binaire-BCD.
2. Soit en ne décalant pas le 1 de la case 10, mais en décalant un 0 à sa place , puis en
ajoutant 5 (c’est à dire 0101) aux cases des unités.

La soustraction étant une opération plus difficile à effectuer que l’addition, on


préférera la seconde méthode de transcodage, d’où l’organigramme suivant

54
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Exemple 4.6.
On donne un nombre décimal N = 45. Convertir N en BCD et utiliser le transcodeur
BCD-Binaire pour obtenir l’équivalent binaire de N.

Solution
En BCD N = 45 s’écrit

N = 0100 0101

Et le transcodage en binaire a lieu de la façon suivante.

1°Déc. 0 0 1 0 0 0 1 0 1
2° Déc 0 0 0 1 0 0 0 1 0 1
Un 1 est dans la case des 10. Un 0 sera décalé de là
3°Déc 0 0 0 0 0 0 0 0 1 0 1
Add 5 0 1 0 1
0 0 0 0 0 1 0 1
4° Déc 0 0 0 0 0 0 1 0 1 1 0 1
5° Déc 0 0 0 0 0 0 0 1 0 1 1 0 1
6° Déc 0 0 0 0 0 0 0 0 1 0 1 1 0 1
7° Déc 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1
8° Déc 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1

D’où le résultat suivant dans la base 2

N ( 2 )  101101

55
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
PROBLEMES
4.1.
Utiliser la relation existant entre les chiffres décimaux et leur représentation en BCD
pour donner le circuit du codeur Décimal-BCD et du codeur BCD-Décimal.

4.2.
Dans la conversion d’un nombre binaire en BCD l’addition du nombre 3 est effectuée
dans les cases des unités lorsque ces cases contiennent un nombre supérieur ou égal 5.
Proposer un circuit logique ayant pour entrées les bits des cases des unités et capable de
détecter la condition sous laquelle l’addition doit être faite.

4.3.
Effectuer les conversions suivantes, ou la barre sous un bit indique le bit de signe
1. Obtenir le complément A1 de N  10110 où N a la représentation A2.
2. Obtenir les compléments Al et A2 pour N  11011 , où N a la représentation
module – plus – signe.

4.4.
Effectuer le transcodage BCD - binaire de

N = 78

Et effectuer le transcodage binaire –BCD du résultat.

SOLUTIONS
4.1.
Le tableau de correspondance décimal – BCD est le suivant :

N a3 a2 a1 a0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1

56
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
1.Décimal – BCD
Dans ce cas , les entrées sont 0,1,2,….9 et les sorties sont a0, a1, a2 et a3; alors en
considérant les lignes où chaque sortie a la valeur logique 1, et en représentant l’opération OR
par le signe +, on a

a0 = 1 + 3 + 5 + 7 + 9
a1 = 2 + 3 + 6 + 7
a2 = 4 + 5 + 6 + 7
a3 = 8 + 9

Le circuit logique correspondant est le suivant :

2. BCD – Décimal

Ici les entrées sont a0, a1, a2 et a3 et les sorties sont 0, 1, 2,….9. Le tableau donné
ci-dessus nous permet d’écrire

0  a3a2 a1a0 5  a3a2 a1a0


1  a3a2 a1a0 6  a3a2 a1a0
2  a3a2 a1a0 7  a3a2 a1a0
3  a3a2 a1a0 8  a3a2 a1a0
4  a3a2 a1a0 9  a3a2 a1a0

Il est clair que lorsque a0, a1, a2 et a3 sont donnés on peut obtenir a0 , a1 , a2 , a3 à
l’aide de portes NOT, et ensuite on peut synthétiser 0, 1, 2, . . ., 9, à l’aide des AND à 4
entrées.

4.2.
Soit b0, b1, b2 et b3 les bits représentant les unités (0, 1,….9) et soit R un bit tel que si
R = 1, une addition de 3 sera nécessaire. Alors on a la table suivante

57
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

N b3 b2 b1 b0 R
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 1
9 1 0 0 1 1

Les combinaisons de b0, b1, b2 et b3 correspondant au nombre 10, 11, 12, 13, 14, 15
ne se produiront pas, nous prendrons R = φ pour ces combinaisons et on a le diagramme de
Karnaugh suivant

Alors l’expression réduite de R est

R  b3  b1b2  b0b2
D’où

4.3.
1. Pour cette partie du problème, soit N1et N2 les représentations module – plus –
signe et complément A1 respectivement de N. Alors

N1  1010  N1  11010

58
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Où nous avons converti du complément A2 au module – plus – signe en appliquant les
principes de conversion de la Section 4.3.
En prenant le complément à 1 des chiffres de N1 , on déduit.

N 2  10101

2. Soit N1 et N2 les représentations de N respectivement en complément A1 et A2, on


a aussitôt

N1  10100, N 2  10101

4.4.
Puisque N = 78, il est représenté en BCD par

N  0111 1000

En appliquant le principe de transcodage développé dans la Section 4.7, on obtient,


La conversion binaire –BCD peut se faire selon les principes développés dans la Section 4.6.

80 40 20 10 8 4 2 1
1 est dans la 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
case 10. Alors
1° Décal 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0
add. 5 0 1 0 1
0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0
1 est dans la
case 10. Alors
2° Décal 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0
add. 5 0 1 0 1
0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0
1 est dans la
case 10. Alors
3° Décal 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
add. 5 0 1 0 1
0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0
Après 5 autres
Décal. 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0

Ce qui se vérifie comme étant

0  1  1 2  1 4  1 8  0  0  1 64  64  8  4  2

soit N=78.
La conversion Binaire-BCD peut se faire selon les principes développés dans la
Section 4.6.

59
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
CHAPITRE V
ADDITION ET SOUSTRACTION BINAIRE

5.1 INTRODUCTION
Il existe sur le marché des chips (microplaquettes) capables d’effectuer l’addition ou la
soustraction des bits placés à leurs entrées Le choix de l’opération est effectué à l’aide d’un
niveau logique 1, soit dans l’entrées ADD, soit dans l’entrée SST, et la représentation
symbolique de ces chips est comme suit pour un additionneur – soustracteur à 5 bits.

Dans ce chapitre , nous examinerons les circuits logiques capables de réaliser


l’additionneur et le soustracteur . Nous nous limiterons ici aux opérations effectuées dans
les représentations complément A2, et dans des problèmes, nous examinons les opérations
dans le code module–plus-signe. Dans l’Appendice A le code complément A1 est examiné.

5.2 ADDITION DE DEUX BITS PLUS REPORT


Tout d’abord, considérons la somme de deux bits, sans report précédent.
Nous avons ce qu’on appelle

La semi-addition (en anglais Falf - adder) Si ao et bo sont les bits à ajouter et si s0 est
la somme et ro le report, alors on peut établir la table de vérité ci-dessous pour l’opération en
question
ao bo ao ro
0 0 0 0
1 0 1 0
0 1 1 0
1 1 0 1

D’où on tire
so  aobo  a0bo  ao  bo
ro  aobo

60
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Le circuit logique correspondant est alors

La semi-addition, est utilisée pour l’addition des bits de plus faible poids dans
l’addition de nombres à plusieurs bits. Pour l’addition des autres bits un additionneur
complet (full– adder) doit être utilisé. Pour cet additionneur, lorsque ri-1 est le report de la
position i-1, alors la table de vérité est la suivante :

ri-1 ai bi si ri
0 0 0 0 0
1 0 0 1 0
0 1 0 1 0
1 1 0 0 1
0 0 1 1 0
1 0 1 0 1
0 1 1 0 1
1 1 1 1 1

Les diagramme de Karnaugh pour si et ri sont comme suit

Il est clair qu’il n’est pas possible d’effectuer des réductions dans l’expression de si
donnée dans le diagramme ci-dessus. Alors

si  ri 1ai bi  ri 1ai bi  ri 1ai bi  ri 1ai bi


ri  ri 1bi  ri 1ai  ai bi

Et la synthèse de si et ri se fait comme suit, où nous avons supposé que ai, , bi , ri-1 et leur
compléments sont

61
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Exemple 5.1.
Montrer que l’expression de si peut se mettre sous la forme

si  ri 1  ai  bi

Solution
L’expression obtenue pour si nous donne

si  ri 1ai bi  ri 1ai bi  ri 1ai bi  ri 1ai bi


 ri 1 (ai bi  ai b )  ri 1 (ai bi  ai bi )

Or on sait que pour OU – EXCLUSIF

a  b  ab  ab
D’où
a  b  ab  ab  (a  b)(a  b )
 aa  ab  ba  bb  ab  ba

Alors l’expression de si peut s’écrire,

si  ri 1 (ai  bi )  ri 1 (ai  bi )  ri  (ai  bi )

Puisque le OU – EXCLUSIF est associatif (ce que nous allons prouver ci-dessous) on peut
écrire

si  ri  ai  bi

Pour établir l’associativité de l’opération «  » mettons en facteur bi et bi dans l’expression


initiale de si. Alors

62
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

si  (ri 1ai  ri 1ai )bi  (ri 1ai  ri 1ai )bi


 (ri 1  ai )bi  (ri 1  ai )bi
 (ri 1  ai )  bi

Ce qu’il fallait établir

5.3 SOUSTRACTION DE DEUX BITS AVEC RETENUE


Dans la soustraction des nombres binaires, la soustraction des bits de plus faible poids
ne comporte pas de retenue précédente. Nous avons dans ce cas à faire
à la semi-soustraction dont la table de vérité est la suivante, pour a0-b0, avec d0
le résultat, et c0 la retenue (le report comme la retenue porte en Anglais le nom « Carry »)

a0 b0 d0 c0
0 0 0 0
1 0 1 0
0 1 1 1
1 1 0 0
Alors
d 0  a0b0  a0b0  a0  b0
c0  a0b0

et le circuit logique correspondant est

et on notera d0 de la soustraction et s0 de l’addition ont la même expression logique.

Pour les soustractions de bits ai et bi autres que ceux de plus faible poids, on doit
tenir compte de la retenue précédente ci-1 que l’on ajoutera à bi avant de le soustraire
de ai. D’où la table de vérité ci-dessous pour le soustracteur complet.

ci-1 ai bi di ci
0 0 0 0 0
1 0 0 1 1
0 1 0 1 0
1 1 0 0 0
0 0 1 1 1
1 0 1 0 1
0 1 1 0 0
1 1 1 1 1

63
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Si on compare cette table de vérité avec celle de l’additionneur complet, on déduit


que l’expression de di est identique avec celle de si, tandis que pour ci, on a le diagramme de
Karnaugh suivant :

d’où,

ci  ci 1ai  ci 1bi  ai bi

alors que

di  ci 1aibi  ci 1aibi  ci 1aibi  ci 1aibi

La synthèse de di est identique à celle de si, tandis que la retenue ci est produite par
le circuit suivant.

Exemple 5.2.
Lorsque les entrées sont disponibles, il est possible (voir Section 5.2 et 5.3) de
produire :

1. s0 ou d0 à l’aide d’un même circuit que nous appellerons A0


2. r0 à l’aide d’un circuit B0
3. c0 à l’aide d’un circuit C0
4. si ou di à l’aide d’un même circuit A1
5. ri à l’aide d’un circuit B1
6. ci à l’aide d’un circuit C1

Donner le Schéma bloc d’un additionneur soustracteur à 3 bits en utilisant les circuits
A0, B0, C0, A1, B1 et C1.

64
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Solution
L’ADD/SST (additionneur –soustracteur) sera en 3 étages. Le premier étage pour
la semi-addition ou la semi-soustraction. Le choix de l’opération sera effectué avec des
valeurs logiques dans des entrées ADD et SST.
On a alors ce qui suit :

Comme on le voit ci-dessus, les entrées sont a0, a1, a2, b0, b1, b2, ADD, et SST . Les
sorties sont, soit s0, s1, s2 et r2, soit d0, d1, d2 et c2. On a une addition lorsque ADD = 1 et SST
= 0, et on a une soustraction lorsque ADD = 0 et SST = 1.

Le schéma ci-dessus s’étend naturellement à l’addition ou à la soustraction d’un


nombre quelconque de bits.

5.4.ADDITION COMPLEMENT A2
Considérons deux nombres A et B, représentés par cinq bits, le cinquième étant le
bit de signe. Supposons de plus que A et B sont donnés dans la représentation A2. Nous
effectuerons l’opération S = A + B, où l’addition sera faite sur tous les bits, y compris les
bits de signe. En considérant un certain nombre d’exemples, nous montrerons que, sauf
dans le cas où nous dépassons la capacité de l’additionneur, nous obtenons toujours une
réponse correcte.

Exemple 5.3.
Soient les nombres positifs A et B où

A  0a3a2 a1a0 B  0b3b2b1b0

Il est clair que pour S = A + B, nous aurons une réponse correcte sauf lorsqu’un report
sort de la position des bits de poids 23 pour venir donner un signe négatif à la réponse .
En fait, ce report signifie que la somme dépasse la capacité de l’additionneur. On dit dans ce
cas qu’il y a débordement ( overflow en Anglais).

65
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Exemple 5.4.
Soient A et B des nombres négatifs, avec

A  0a3a2a1a0 , B  0b3b2b1b0

Alors dans le code A2, on a les représentations suivantes


A  25  0a3a2 a1a0 , B  25  0b3b2b1b0

La somme donne

S  A  B  26  (0a3a2 a1a0  0b3b2b1b0 )

Deux cas peuvent se poser :

1. A  B donne un signe 0, c’est à dire que A  B  0s3s2 s1s0 alors

S  26  0s3s2 s1s0

Et si nous ignorons les bits de S dans les positions au delà de la position du bit de signe, on
peut écrire

S  25  0s3 s2 s1s0

Ce qui signifie que S est négatif et que (selon le code A2)

S  0s3 s2 s1s0
 A B

Résultat que nous savons correct, puisque la somme de 2 nombres négatifs doit être un
nombre négatif dont le module est la somme des modules des nombres ajoutés.

2. A  B donne un signe 1. Nous avons ici un débordement. Pour savoir comment détecter
cette situation dans la machine, examinons S dans ce cas

S  26  (1s3s2 s1s0 )
soit

10 0 0 0 0 0
-
1 s3 s2 s1 s0

1 0 x x x x

En effet, puisqu’on soustrait de 0, un report arrivera jusqu’à la position des bits de signe,
ce qui donnera le signe 0 à S, quand on sait que S est négatif.

66
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Exemple 5.4.
Soient A et B deux nombres de signes contraires, par exemple A>0 et B<0. Alors,

A  0a3a2 a1a0 , B  25  0b3b2b1b0

Et la somme bit par bit donne

S  A  B  25  (0b3b2b1b0  0a3a2 a1a0 )

D’où on tire les 2 cas suivants :

1. Si A  B alors

S  25  (0d3d2 d1d0 )

où D = B  A  0. On voit que S est dans le code A2 et qu’il est égal à –D, ce qui est un
résultat correct.

2. Si A  B on peut écrire

S  A  B  25  (0a3a2 a1a0 - 0b3b2b1b0 ) = 25  ( A  B )

posons D  A  B  0d3d2d1d0 , alors S est obtenue comme suit :

1 0 0 0 0 0
+
0 d3 d2 d1 d0

S= 0 d3 d2 d1 d0

C’est à dire que l’addition de 25 ne change pas les bits de A  B , le bit de signe y compris.
Donc

A  B , lorsque A  B ,

Ce qui est en fait correct.

D’autre part, il n’y a pas à se soucier ici de débordement qui ne peut se produire
puisque S est inférieur à A ou à B .

A la suite des résultats des Exemples 5.3 à 5.5, nous avons :

Conclusion 1 : avec la représentation A2 des nombres ; la somme S = A +B se fait


en effectuant la somme bit par bit, y compris le bit de signe. Le résultat S est aussi dans

67
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
le code A2 . Il y a débordement si A et B sont de même signe et le signe de S est
différent du signe commun de A et B, soit alors l’expression suivante pour le
débordement

Déb  a4b4 s4  a4b4 s4

où a4, b4, et s4 sont respectivement les signes de A, B et S.

5.5. SOUSTRACTION – COMPLEMENT A2


Comme dans la section précédente, nous devons prendre des exemples. Toutefois,
pour simplifier les explications, nous ne prendrons pas ici des expressions générales des
nombres à soustraire, mais plutôt des exemples numériques

Soit donc à effectuer, bit par bit y compris le bit de signe, l’opération

D=A–B

Où A et B sont exprimés dans la représentation A2.

Ici, le débordement est à surveiller lorsque A et B ont des signes différents.

Exemple 5.6.
Effectuer D = A – B lorsque A = 11 et B = 4. On notera qu’ici, A> B>0.

Solution
Nous avons

A  01011, B  00100

Alors, en effectuant la soustraction bit par bit, on a

0 1 0 1 1
-
0 0 1 0 0

D= 0 0 1 1 1

soit D = + 7, ce qui est bien correct (11 - 4 = 7).

Exemple 5.7.
Effectuer D = A – B lorsque A = 4 et B = 11. On notera qu’ici, B> A> 0.

Solution

68
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Nous avoons
A  00100, B  01011

Alors, en effectuant la soustraction bit par bit, on a

0 0 1 0 0
-
0 1 0 1 1

D= 1 1 0 0 1

soit

D  11001   (0111)   7

Réponse qui est bien correcte car 4 – 11 = -7.

Exemple 5.8.
Effectuer D = A – B lorsque A = - 4 et B = - 11. On notera qu’ici, 0 > A > B.

Solution
Dans la notation complément A2,

A  11100, B  10101

Et on a
1 1 1 0 0
-
1 0 1 0 1

D= 0 0 1 1 1

D’où

D= 0 0 1 1 1 = +7

Résultat qui est bien correct, car (-4) – (-11) = -4 + 11 = 7

Exemple 5.9.
Effectuer D = A – B lorsque A = - 11 et B = - 4. On notera qu’ici, 0 > B > A.

Solution
Dans la notation complément A2,

A  10101, B  11100

69
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Et on a
1 0 1 0 1
-
1 1 1 0 0

D= 1 1 1 0 0 1

Il y a une retenue sortant de la position du bit de signe que nous ignorerons pour obtenir,

D  10001   (0111)   7

ce qui est correct car – 11 – (- 4) = - 7.

Dans les exemples qui suivent nous effectuerons la différence de nombres de signes
différents.

Exemple 5.10.
Effectuer D = A – B lorsque A = 11 et B = - 4. On notera qu’ici, A> 0 > B.

Solution
Dans la notation complément A2,

A  01011, B  11100

Et on a
0 1 0 1 1
-
1 1 1 0 0

D= 1 0 1 1 1 1

Il y a une retenue sortant de la position du bit de signe que nous ignorerons pour obtenir,

D  01111   15

ce qui est correct.

Exemple 5.11.
Effectuer D = A – B lorsque A = - 4 et B = 11. On notera qu’ici, B > 0 > A.

Solution
Dans la notation complément A2,

70
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
A  11100, B  01011

Et on a
1 1 1 0 0
-
0 1 0 1 1

D= 1 0 0 0 1

D’où
D   (1111)   15

ce qui est correct

Considérons maintenant des exemples où un débordement a lieu dans la


soustraction.

Exemple 5.12.
Effectuer D = A – B lorsque A = 11 et B = - 6.

Solution

A  01011, B  25  00110  11010

d’où on tire
0 1 0 1 1
-
1 1 0 1 0

D= 1 1 0 0 0 1

La réponse est fausse car la réponse correcte D = 17, dépasse la capacité maximum du
soustracteur qui est 15.
Le débordement est détecté par un bit de signe 1 pour D suivi d’une retenue au delà du
bit de signe. Cet exemple est à comparer avec l’Exemple 5.11 où on n’a pas eu de
retenue.

Exemple 5.13.
Effectuer D = A – B lorsque A = - 6 et B = 11.

Solution
Nous avons ici

A  11010, B  01011

71
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Et on a
1 1 0 1 0
-
0 1 0 1 1

D= 0 1 1 1 1

D  10001   (0111)   7

Nous avons une réponse fausse, car la réponse correcte D = 17, dépasse la capacité du
soustracteur . Le débordement est détecté par le signe 0 pour D alors qu’il n’y a pas de
retenue au delà du bit de signe. Cet exemple est à comparer avec l’Exemple 5.10 où
nous avons eu une retenue.

Pour la soustraction D = A – B nous avons la conclusion suivante ;

Conclusion 2 :
Le résultat de la soustraction D = A – B en code complément A2 est toujours correcte
sauf dans le cas du débordement qui ne peut avoir lieu que lorsque le signe de A est différent
de celui de B, et si en plus on a :

1. Soit 1 pour le signe de D et une retenue au delà du bit de signe


2. Soit 0 pour le signe de D et pas de retenue au delà du bit de signe

Alors ici on peut écrire


Déb  (a4b4  a4b4 )(d4 c4  d4 c4 )

Où a4, b4, d4 sont respectivement les bits de signe de A, B et D . Alors que c4 est la
retenue obtenue après les opérations sur le bit de signe. Le premier groupe de termes
entre parenthèses exprime le fait que A et B ont des signes différents.

5.6. ADDITIONNEUR–SOUSTRACTION COMPLEMENT A2


Si un chip ADD/SST est utilisé pour effectuer, soit l’addition, soit la soustraction, et
si à ce chip sont connectés les registres R et AC (AC = accumulateur ), alors nous avons
l’arrangement suivant autour du chip.

72
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Où b4 est le bit de signe de B et a4 celui de A , et le résultat de l’opération est X, qui est plus
tard transféré dans l’accumulateur, grâce à un signal de commande arrivant après
l’achèvement des opérations. Le bit c4 est le report ou la retenue issu de l’opération effectuée
sur les bits de signe de A et B .Le signe de A doit entrer dans la bascule signe- de A au
moment où on transfère A dans AC.

Le test du débordement doit être effectué selon les expressions données à la fin des sections
5.4 et 5.5 c’est à dire que :

1. Pour l’addition

Déb  a4b4 s4  a4b4 s4

2. Pour la soustraction

Déb  (a4b4  a4b4 )(d4 c4  d4 c4 )

Si on remplace S ou D par X , alors le débordement est en général donné par l’expression

Déb  ADD(a4b4 x4  a4b4 x4 )  SST (a4b4  a4b4 )( x4 c4  x4 c4 )


 Déb  ADD(a4b4 x4  a4b4 x4 )  SST (a4  b4 )( x4  c4 )

D’où le circuit

73
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

L’ordre des opérations est comme suit

PROBLEMES
5.1.
Considérer l’addition des nombres binaires A et B , et posons :
Gi = 1 si un report est généré par l’addition ai = bi

Ti = 1 si un report arrive à l’étage i de l’addition et est transmis à l’étage suivant


i+1.

Alors montrer que :


1. R0  G0  a0b0
2. Ti  ai bi  ai bi , pour i > 0
3. Ri  Ri 1Ti  Gi , pour i > 0

74
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
4. Donner le circuit logique donnant les reports R0, R1, R2, R3 après les avoir exprimé
en fonction des Ti et Gi. Montrer que l’additionneur utilisant ces valeurs des retenues
est plus rapide que celui étudié dans la Section 5.2.

5.2.
Soit N  A  B , où N est obtenu en effectuant la soustraction bit par bit, le bit de
signe y compris.

Montrer que N  B  A est le complément A2 de N , et en déduire un moyen d’exprimer


N par son module et son signe dans le cas où A  B .

5.3.
Nous voulons ici effectuer l’addition S = A+B dans le code Module – plus – signe.
Pour cela nous effectuerons une des opérations ADD ou SST sur les valeurs absolues de A et
B et ensuite nous attacherons au résultat le signe convenable, tout cela selon la stratégie
suivante :

a. Si A et B ont le même signe , alors nous effectuons X = A  B et on prend S  X


et on donne à S le signe de A.Toutefois nous devrons veiller au débordement qui est
ici possible.

b. Si A et B ont des signes contraires, nous effectuons X  A  B . Si le bit de signe x4


de X est 0 , alors on prendra S  X avec le signe s4 de S égal au signe de A. Si x4=1,
on prend le complément A2 X de X et on pose S  X et on prend x4=b4.

Alors on demande :
1. Comparer la stratégie décrite ci-dessus à la technique que nous utilisons
manuellement dans l’addition de nombres signés.
2. Si l’usage de ADD correspond à l’opération X = A  B et si ADD est pour
X  A  B , donner les tables de vérité pour s4 et pour l’opération ADD. Donner
aussi les expressions logiques correspondantes.
3. Si « Déb » est 1 en cas de débordement, donner l’expression logique pour Déb.

SOLUTIONS

5.1.
1. Un report est généré à l’étage 0 de l’addition a0+b0 seulement si a0 =1 et b0 = 1. Alors
on peut écrire,

G0  R0  a0b0

2. Si Ri-1 est le report précédent , nous avons la table de vérité suivante pour Ti,

75
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
quand Ri-1 = 1

Ri-1 ai bi Ti
1 0 0 0
1 1 0 1
1 0 1 1
1 1 1 0

Ici le report vient de l’étage i et non de l’étage précédent

Donc,

Ti  aibi  bi ai

3. Nous avons un report à l’étage i si un report est venu de l’étage i-1 et est transmis, ou
si un report est généré à l’étage i.

Ri  Ri 1Ti  Gi , avec Gi  aibi

4. On a pour i = 0, 1, 2, 3,

R0 = a0 b0 = G0
R1 = G0T1 + G1
R2 = R1T2 + G2 = (G0T1 + G1) T2 + G2 = G0T1T2 + G1T2 + G2

de même,

R3 = G0T1T2 T3+ G1T2 T3 + G2T3 + G3

Nous pouvons produire Gi et Ti selon le circuit suivant

Avec G0, … , G3, T1, …, T3, nous pouvons générer tous les reports R0, …, R3 comme suit.

76
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Ici tous les reports sont produits ensemble alors que dans l’additionneur de la
Section 5.2, l’addition du bit ai et bi doit attendre l’arrivée d’un report qui pourrait se
propager, depuis l’étage 0 jusqu’à l’étage i, ce qui est lent.

Ici donc l’additionneur peut additionner Ri-1 avec ai et bi, ceci pour i = 1,2,3, sans se soucier
de calculer Ri. Le circuit logique synthétisant la somme si est donnée de la Section 5.2.

5.2.
1. Supposons N positif (si N est négatif, alors on commencera par N ). Alors,

N  A  B  0n3n2n1n0
et
N  B  A  1n3n2 n1n0
Or
N  N  ( A  B )  ( B  A )  "0"( Module  0)
Donc

"0"  0n3n2 n1n0  1n3n2 n1n0


 ni  ni  0

Tous les bits N n’étant pas nuls, il sortira, pour un certain i, un report de la somme ni  ni .
Ce report se propagera jusqu’aux bits de signe et il s’ajoutera à « 0+1 » pour donner 0 avec un
report au delà du bit de signe. Alors, on a

N  N  100000  25

D’où

N  25  N

C’est- à dire que N est le complément A2 de N si la soustraction B  A est faite bit par
bit jusqu’au bit de signe.

77
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
2. Si N  A  B est négatif , nous savons (voir l’étape-1) que la soustraction bit par bit y
compris le bit de signe, donne un nombre dans le code A2. Pour avoir le module de N, on
doit chercher son complément A2 , N ce qu’on peut obtenir à l’aide du circuit suivant :

Ce circuit produit d’abord le complément A1 à l’aide des portes NOT , puis il est ajouté au
résultat le bit 1 au bit de plus faible poids, et on obtient N , le complément A2.

5.3.
1. Il est clair que l’algorithme décrit pour l’addition S = A+B est comparable à ce que
nous faisons manuellement. Nous examinons les signes de A et B : S’ils sont les
mêmes, nous faisons comme décrit dans l’étape – a de l’énoncé du problème.
Si les signes sont différents, nous le constatons visuellement et nous prenons la valeur
absolue la plus grande , d’où on soustrait la valeur absolue la plus petite, et on donne
à S le signe du nombre ayant la plus grande valeur absolue. Toute fois une machine
ne peut déterminer le nombre le plus grande en valeur absolue sans effectuer la
soustraction des valeurs absolues. Si X  A  B et X est négatif , le Problème 5.2.
nous dit que S  X ou X est le complément A2 de X ; dans ce cas B est plus
grand que A et on donne à S le signe de B comme nous le faisons manuellement.
L’algorithme donnera donc un résulta correct.

2. D’après l’algorithme on déduit que :


a) ADD est fonction de a4 et b4 ;
b) Le signe s4 de la somme S est fonction de a4, b4, x4, où x4 est le signe de X =
A - B.

Les tables de vérité sont les suivantes :

a4 b4 ADD
0 0 1
1 0 0
0 1 0
1 1 1
D’où
ADD  a4b4  a4b4

78
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
a4 b4 x4 s4
0 0 0 0
1 0 0 1
0 1 0 0
1 1 0 1
0 0 1 débordement
1 0 1 0
0 1 1 1
1 1 1 débordement

Si donc x4 = 0 on donne à S le signe de A. Dans le cas contraire on donne le signe de B sauf


en cas de débordement.
D’où le diagramme de Karnaugh suivant

où nous avons pris φ pour les cas de débordement pour faciliter la simplification ; ces cas
seront détectés séparément pour indiquer que la réponse est de toute façon fausse. Alors,

s4  a4 x4  a4 x4  a4  x4

3. Le débordement a lieu lorsque A et B ont le même signe et la somme des valeurs


absolues X a un signe négatif. Ces cas sont indiqués sur la table de vérité ci-dessus et

Déb  a4b4 s4  a4b4 s4  s4 (a4  b4 )

79
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

CHAPITRE VI
MULTIPLICATION ET DIVITION BINAIRES

6.1 INTRODUCTION
Dans ce chapitre nous présentons des techniques d’opération de la multiplication et
de la division dans le cas où les nombres sont binaires.

Dans la multiplication, le produit sera représenté par un nombre de 8 bits lorsque le


multiplicande et le multiplicateur sont chacun de 4 bits.

Dans la division il est possible d’avoir un quotient inférieur à 1 lorsque le diviseur


est supérieur au dividende en valeur absolue. Dans ce cas on peut considérer le dividende et
le diviseur comme étant inférieurs tous les deux à 1. En effet, on a par exemple.

4 0,4 0,04
 
12 1,2 0,12

et on peut poser

A = 0,04 ; B = 0,12

Nous nous limiterons ici aux codes modules plus signe, et complément A2

6.2 MULTIPLICATION EN CODE MODULE PLUS SIGNE


Lorsque nous effectuons le produit A·B à la main, nous travaillons avec les modules de
A et B et à la fin des opérations nous attachons au résultat le signe plus si A et B sont de
même signe, et le signe moins si A et B sont de signe contraires.

Soient ici A et B deux nombres binaires représentés dans le code module plus signe, avec

A  a4a3a2a1a0 ; B  b4b3b2b1b0

et soit le produit

P  A B , avec P  p4 p3 p2 p1 p0

Alors ,comme nous l’avons observé pour le signe du produit

80
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
 0 si a4  b4
p4  
 1 si a4  b4

et en considérant la condition sous laquelle p4 = 1, on peut écrire

p4  a4b4  a4b4  a4  b4

Pour obtenir le module de P, on notera tout d’abord que le résultat pourrait être de 8 bits
puisque A et B ont leurs modules exprimés par 4 bits. Nous prévoyons alors les registres AC-
MQ pour le résultat et nous introduisons A et B comme suit

Lorsque nous effectuons la multiplication avec le crayons et le papier, nous commençons par
examiner bo ; si b0 = 1, nous écrivons comme résultat partiel P  A . Si b0 = 0, on prend
P  0 . Ensuite on examine b1; s’il est 1, on ajoute A décalé vers la gauche à P obtenu
précédemment ; si b0 = 0, on ajoute 0. Si b1 = 1 et bo =1 alors ou la disposition ci-dessus déjà
décrite

a3 a2 a1 a0
*
11
__________
a3 a2 a1 a0
+ a3 a2 a1 a0 Module de A décalé vers la gauche

Toutefois, avec la disposition des registres R , AC et MQ , nous décalerons AC–MQ vers


la droite plutôt que de décaler R. Ainsi nous n’aurons qu’à examiner chaque fois le bit le
moins significatif de MQ ( least significatif bit of MQ = LSBMQ ) pour savoir s’il faut
ajouter R à AC . Le calcul du module de P se fera alors selon l’organigramme suivant où

CDEC = compteur de décalage

81
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

6.3. MULTIPLICATION COMPLEMENT A2 –ALGORITHME


DE BOOTH
L’Algorithme de Booth nous permettra de multiplier les nombres représentés en
code A2 tout en considérant le bit de signe comme un bit ordinaire.

Nous donnerons ici l’Algorithme de Booth, sans tenter une preuve générale. Toutefois, dans
l’exemple qui suit nous vérifierons sa validité dans un cas particulier.

Soit m0 le bit de plus faible poids de MQ et m-1 un bit supplémentaire de MQ et de


poids 2-1 . Supposons que A et B sont exprimés par 5 bits, y compris le bit de signe, dans la
représentation complément A2. Alors l’algorithme de Booth est effectué comme suit :

1. On met A dans le registre R, on met 0 dans AC et on met B dans le registre MQ . Le


registre R , AC et MQ étant chacun de 5 bits ici.

2. On joint le bit complémentaire m-1 à MQ et on lui donne la valeur initiale 0.

3. On examine les bits m0 et m-1 de MQ et on effectue les opérations données dans le


tableau ci-dessous.

m0 m-1 Opérations
0 0 AC = AC Puis on décale AC-MQ d’un bit
vers la droite
0 1 AC=AC+R idem
1 0 AC=AC-R idem
1 1 AC = AC idem

4. Pendant les décalages, on conserve le signe de l’accumulateur AC.

5. Dans les opérations arithmétiques, on ignorera les reports au delà du bit de signe.

82
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

6. On reprend à l’étape 3 si on n’a pas effectué 6 décalages. Autrement la multiplication


est achevée et le résultat est dans AC - MQ, dans le code A2.

Exemple 6.1
Effectuer le produit P = A * B , avec en décimal A = 8 et B = -7.

Solution
En code A2, les nombres donnés sont

A = 0 1000, B = 1 1001

L’application de l’algorithme de Booth au produit AB donne le tableau ci-dessous, où


R = A = 0 1000

La réponse est

P = 1 111001000

qui est en code A2. En code module plus signe, on a

P  0000111000  25  24  23  32  16  8  56

soit en décimal

P = -56

ce qui est bien égal à 8 * (-7).

L’organigramme pour l’algorithme de Booth est alors le suivant où les nombres A et B


sont en complément A2, et

m0 = bit de MQ de poids 20

m-1 = bit de poids 2-1 , joint à MQ

CDEC = compteur de décalage

83
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Exemple 6.2.
Dans l’algorithme de Booth, supposons que les bits m0 et m-1 de MQ sont
disponibles. Donner le circuit logique dont les sorties X et Y sont telles que

X = 1 , Y = 0 pour l’addition AC = AC + R

X = 0 , Y = 1 pour la soustraction AC = AC - R

X = 0 , Y = 0 pour AC = AC

Solution

La table de vérité est ici la suivante

m0 m-1 X Y
0 0 0 0
0 1 1 0
1 0 0 1
1 1 0 0

D’où

X  m0m1 et Y  m0m1

Donc

84
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Et X ira l’entrée ADD de l’ADD/SST, tandis que Y ira dans l’entrée SST.

Pour réaliser le circuit complet d’un multiplieur, un circuit de timing doit être conçu pour
effectuer les remises à zéro, les transferts dans les registres AC et MQ , et les opérations.

6.4 DIVISION EN CODE MODULE PLUS SIGNE


Considérons ici les nombres

A  a4a3a2a1a0 B  b4b3b2b1b0

représentés dans le code A2. Nous voulons effectuer la division

A
Q  q4 q3q2 q1q0
B

Le signe de Q est obtenu comme dans le cas de la multiplication dans le code module plus
signe, c’est à dire,

q4  a4b4  a4b4  a4  b4

Pour effectuer les divisions, nous commencerons par introduire le module du


diviseur B dans le registre R, et le module du dividende A soit dans MQ, soit dans AC, selon
les cas.

Considérons séparément les cas où A  B  1 et le cas 1  B  A .

1. A  B  1 , La technique que nous utiliserons sera celle que nous effectuons


avec du papier et du crayon.

Nous essayerons de soustraire B du bit a3 (le bit de plus fort poids de A). Si ce n’est pas
possible, nous annulerons la soustraction en ajoutant B au résultat obtenu et nous
examinerons les deux bits a3a2.

S i la soustraction est possible alors nous en prenons note et nous examinerons le bit a1 de A
Les opérations peuvent se faire selon l’organigramme donné ci- dessous, où

R3 = dernière retenue obtenue après la soustraction AC -R

85
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
m0 = bit de plus faible poids de MQ

CDEC = compteur de décalage

Les registres R, AC et MQ sont à 4 bits chacun

Le quotient se trouvera dans MQ et le reste dans AC.

L’exemple numérique ci-dessous illustre l’application de l’algorithme décrit ci-dessus.

Exemple 6.3.
Effectuer la division Q =A/B, où A =10, B = 3.

Solutions

A = 0 1010 , B = 0 0011

et on note que A  B  1 . En fait A et B sont positifs et le signe du quotient sera +.

En utilisant la méthode donnée ci-dessus, on a :

86
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

R = 0011
Compteur Opérations R3=retenue AC MQ m0
de décalage de AC - R
4 0000 101 0
3 Décal AC-MQ 0001 010 x
AC = AC – R - 0011
R3 = 1 1 1110 010 x
Restauration : +
AC = AC + R 0011
et m0 = 0 0001 010 0

2 Décal AC-MQ 0010 100 x


AC = AC – R - 0011
R3 = 1 1 1111 100 x
Restauration : +
AC = AC + R 0011
et m0 = 0 0010 100 0

1 Décal AC-MQ 0101 000 x


AC = AC – R - 0011
R3 = 0 0 0010 000 x
m0 = 1 0010 000 1

0 Décal AC-MQ 0100 001 x


AC = AC – R - 0011
R3 = 0 0 0001
m0 = 1 0001 001 1

et la réponse est Q = 0011 et le reste est 0001.

2. 1  B  A
Ici, puisque B  A , nous n’allons pas mettre A dans MQ pour ensuite
effectuer des décalages vers AC , mais nous mettrons A directement dans AC et nous
effectuons les mêmes opérations que dans le cas où A  B  1 A la fin des opérations, le
quotient sera MQ et sera inférieur à 1; le reste sera dans AC.
Ce cas est illustré par l’exemple ci-dessous.

Exemple 6.4.
Effectuer la division
4
Q
8

87
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
Solution
4 8
Posons A  , B alors 1  B  A
16 16
et
A  0,0100, B  0,1000

et on pose R = 1000 et on a le tableau ci-dessous où la première opération est la soustraction


au lieu du décalage.
R = 0011
Compteur Opérations R3=retenue AC MQ m0
de décalage de AC - R
4 0100 000 0
AC = AC – R - 1000
R3 = 1 1 1100 000 0
Restauration : +
AC = AC + R 1000 000 0
et m0 = 0 0100

3 Décal AC-MQ 1000 000 x


AC = AC – R - 1000
R3 = 1 0 0000 000 1
et m0 = 1

2 Décal AC-MQ 0000 001 x


AC = AC – R - 1000
R3 = 1 1 1000 001 x
Restauration +
AC = AC + R 1000
m0 = 0 0000 001 0

1 Décal AC-MQ 0000 010 x


AC = AC – R - 1000
R3 = 1 1 1000 010 x
Restauration +
AC = AC + R 1000
m0 = 0 0000 010 0

0 Décal AC-MQ 0000 100 x


AC = AC – R - 1000
R3 = 1 1000
Restauration +
AC = AC + R 1000
m0 = 0 0000 100 0

88
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

d’où
1
Q  0,1000   0,5
2
le reste est zéro.

Exemple 6.5.
Dans les algorithmes de la division donnés ci-dessus, la soustraction AC –R est
effectuée. Si le résultat est négatif, on ajoute R pour restaurer la valeur de AC, puis on décale
et on effectue la soustraction. Montrer que le même résultat est obtenu lorsque dans le cas où
le reste est négatif , on effectue un décalage vers la gauche suivi d’une addition.

Solution
1. Dans le cas avec le restauration, les étapes sont :

AC – R

Si le résultat est négatif, on effectue

( AC – R) + R = AC

Puis il y a décalage vers la gauche, ce qui donne

2 AC

Puis on effectue
2 AC – R

2. Sans restauration les étapes sont :


AC- R

Si le résultat est négatif, on décale vers le gauche, d’où

2(AC –R)

Puis on ajoute R, d’où

2AC – 2R + R = 2AC - R

Par conséquent les deux méthodes donnent le même résultat, mais la seconde est plus courte
puisqu’on évite la restauration. Toutefois pendant que nous effectuons les additions, si nous
n’avons pas de retenue R3 sortant à la fin de l’opération, nous prendrons le bit de plus faible
poids m0 de MQ, comme nul. Soit

89
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
R3  0  m0  0
 lorsque AC  AC  R
R3  1  m0  1 
R3  0  m0  1
 lorsque AC  AC  R
R3  1  m0  0

Chaque fois que R3 = 1, nous changerons d’opération, c’est à dire que nous passerons
de AC = AC + R à AC = AC – R, ou vice versa.

PROBLEMES
6.1
Effectuer le produit ci-dessous dans le code module plus signe.

P = AB, A = - 11, B = - 3

6.2
Utiliser l’Algorithme de Booth pour effectuer le produit

P = AB, A = 7, B = - 3

6.3
Il est possible d’accélérer la multiplication si nous recherchons des suites de « 1 » ou
des suites de « 0 » . En effet,
1. Montrer que si N = 111…1 (1 k-fois) alors N = 2k – 1.
2. Montrer que si N = 000…0 (0 k-fois) alors N = 2k
3. Déduire des résultats ci-dessus une méthode d’effectuer la multiplication dans le code
module plus signe.

6.4
Effectuer la division

Q = A/B, A = - 9, B = 3

6.5
Effectuer la division

Q = A/B, A = 2, B = 5

90
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
SOLUTIONS
6.1
En code module plus signe, on a

A = 1 1 0 1 1, B=10011

Alors le signe du produit est

p4  a4  b4  0

Le module de P est obtenu comme suit (algorithme de la Section 6.2)

R=1011

CDEC LSBMQ Opérations Report AC MQ


4 1 0000 0011
+
AC = AC + R 1011
0 1011 0011

3 Décal AC-MQ 0101


1 +
AC = AC + R 1011
1 0000 1001

2 Décal AC-MQ 1000 0100

1 0 Décal AC-MQ 0100 0010

0 0 Décal AC-MQ 0010 0001

Dans les deux derniers décalages nous avons introduit des 0 pour le bit de plus fort
poids de AC. En effet, avant ces décalages on aurait dû effectuer AC = AC + 0 ce qui donne
comme dernier report 0.
La réponse est alors

P  100001  32  1
et
P = 33

6.2
Dans le code module plus signe,

A = 0 0 1 1 1, B=10011

91
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

et nous voulons obtenir le produit P = AB.


L’application de l’algorithme de Booth demande qu’on travaille dans le code A2, où,

A = 0 0 1 1 1, B=11101

Nous avons alors le tableau suivant pour le calcul du produit.

R=00111

CDEC Bits examinés Opérations AC MQ- m0 m -1


0 00000 11101 0
-
10 AC = AC – R 00111
11001 11101 0
1 Décal 11100 11110 1
+
01 AC = AC + R 00111
00011 11110 1
2 Décal 00001 11111 0
-
00111
10 AC = AC – R 11010 11111 0
3 Décal 11101 01111 1
4 11 Décal 11110 10111 1
5 11 Décal 11111 01011 1

Alors

P = 1 1 1 1 1 01 0 1 1

qui est dans le code A2. Le module de P est alors

P  0000010101  21(10)

Donc dans la re présentation décimale avec module plus signe ;

P = - 21

réponse qui est correcte car 7(-3) = -21

6.3
1. N = 1 1 1 … 1 ( k-fois)

Si maintenant nous ajoutons 1 à N, on obtient

92
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
N + 1 = 1 0 0 0 … 0 = 2k
d’où
N = 2k – 1

2. Si N = 1 0 0 0 . . . 0 (k-zéros), il est évident que N = 2k


3. Pour multiplier par exemple A par B = 0 1 1 0 0, où A et B sont positifs, on
peut écrire,
B  1100  1000  100  23  22
Donc
P  A  B  A(23  22 )  A23  A22
soit 3 décalages de A vers la gauche ajoutés à 2 décalages de A vers la gauche.

D’autre part, si B = 0 0 1 1 1, alors le module de B sera


B  111  23  1
d’où
P  A  B  A(2 3  1)  A2 3  A

soit 3 décalages de A vers la gauche moins A.

6.4
Ici A = 1 0 0 1 et B = 0 0 1 1 . On note ici que A > B >1, ( 9 > 3 > 1). Alors la
division Q = A/B est effectuée comme suit, où nous avons utilisé la technique sans
restauration de l’Exemple 6.5
R= 0011

CDEC Opérations Dernière AC MQ


retenue R3
4 0000 1001
3 Décal 0001 001x
-
AC = AC – R 0011
R3=1 m0=0 1 1110 0010
2 Décal 1100 010x
+
AC =AC + R 0011
R3=0 m0=0 0 1111 0100
1 Décal 1110 100x
+
AC = AC + R 0011
R3=1 m0=0 1 0001 1001
0 Décal 0011 001x
-
AC = AC – R 0011
R3=0 m0=1 0 0000 0011

93
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga
La réponse est alors

Q  11  3
et le reste est nul. Dans le code module plus signe, le signe de Q est négatif, donc,
Q=10011

6.5
Ici
2 2 / 16
Q 
5 5 / 16
Posons
A = 2/16 = 0,0 0 1 0 , B = 0,0 1 0 1

alors on note que A  B  1 , et nous utiliserons l’algorithme de la division présenté dans la


Section 6.4, avec A dans MQ et B dans R.
Comme dans le cas de l’Exemple 6.5 et du Problème 6.4, nous n’effectuerons pas de
restauration. La première opération est la soustraction. Alors on a,

CDEC Opérations Dernière AC MQ


retenue R3
4 0010 0000
-
AC = AC – R 0101
R3=1 m0=0 1 1101 0000
3 Décal 1010 000x
+
AC =AC + R 0101
R3=0 m0=0 0 1111 0000
2 Décal 1110 000x
+
AC = AC + R 0101
R3=0, m0=1 1 0001 0011
1 Décal 0110 001x
-
AC = AC – R 0101
R3=0 m0=1 0 0001 0011
0 Décal 0010 011x
-
AC = AC – R 0101
R3=1 m0=0 1 1101 0110

94
Circuits Logiques des Ordinateurs Dr Madiassa Maguiraga

Pour avoir la valeur correcte du reste, nous devons effectuer une dernière restauration puisque
la dernière soustraction n’a pas marché. Alors

AC = AC + R = 1 1 0 1 + 0 1 0 1 = 0 0 1 0
et

Q = A/B = 0,0 1 1 0 et le reste = 0,0 0 1 0

En effet, en convertissant en décimal,

0 1 1 0
Q     0,25  0,125  0,375
2 4 8 16

Reste = 1/8 = 0,125

95

Vous aimerez peut-être aussi