Vous êtes sur la page 1sur 76

République de Côte d’Ivoire

Union - Discipline – Travail

------------------

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

------------------

Institut National Polytechnique

Félix Houphouët Boigny

----------------------

-----------------------

DFR Génie Electrique et Electronique


-----------------------

Unité Pédagogique : Electronique

Unité d’Enseignement : Electronique Numérique


-----------------------

----------------------

PARCOURS : TS STIC
1
FICHE D’ELEMENTS CONSTITUTIFS D’UNITE D’ENSEIGNEMENT

PARCOURS : Ingénieur STIC

Code UE : Intitulé de l’UE : Positionnement dans la formation


BAE24A5 Base de l’Electronique : Semestre 5

Volume horaire : 36 H ; CECT = 3


Type d’activité :
Code EC : Intitulé de l’EC :
CM = 15 H ; TD = 18H ; TA = 03H
BAE24A51 Electronique Numérique
Type d’évaluation :
EVC = 03 ; EVT = 01 ; Projet = 00
Objectifs visés de l’EC :
 S’approprier les concepts de l’électronique numérique et les champs d’applications ;
 Matérialiser une expression logique ;
 Avoir des notions de temps et de mémoire ;
 Avoir des notions de séquencement (base de temps);
 Analyser un problème d’électronique numérique.
Compétences spécifiques visées par l’EC :
 Etre capable de résoudre une expression logique ;
 Etre capable de résoudre un problème de logique combinatoire ;
 Analyser et faire la synthèse d’un circuit combinatoire ;
 Etre capable d’interconnecter les différentes bascules ;
 Analyser et interpréter un système séquentiel.
Pré-requis :
 Les bases de numération ;
 Algèbre de Boole.

Programme :
Chapitre 1: Numération ……………………..…………………………………….….(… H)
Chapitre 2: Logique combinatoire …………………………………………………....(….H)
Chapitre 3: Logique séquentielle - les bascules ………………………………………(… H)
Chapitre 4: Logique séquentielle - les compteurs …………………………………….(… H)
Chapitre 5: Logique séquentielle - les registres ………………………………………(… H)

Référence bibliographique :
Support de cours d’Electronique Numérique, Edition 2016, Cycle TS.
Unité Pédagogique :
UP Electronique, DFR GEE
Responsable EC : KOFFI Manlandon
Contacts : (N° Bureau, Cel et Email)
Autres Enseignants de l’EC : ADAMA Koné – N’ZI Edié Camille - KOUADIO Amani –
SOUMAHORO Amadou, KONE Brahiman

2
Chapitre I : Numération
I) Système de numération
1.1) Définition
On appelle base le nombre de symboles élémentaires servant à l’écriture des nombres
dans cette base.

Par exemple :
- la base 10, possède 10 symboles élémentaires. Se sont : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- base 2, possède 2 symboles élémentaires. Se sont : 0,1

1.2) Ecriture d’un nombre dans une base quelconque

FORME POLYNOMIALE
On peut décomposer tout nombre en fonction des puissances entières de la base
A = a3 b3 + a2 b2 + a1 b1 + a0 b (détaillée)
A = a3 a2 a1 a0 = (A)b (simplifiée)
ai ∈ N , b ∈ N (où b = base du système de numération et ai = éléments de la base).

où i ∈ 0, b  1
b 1
Forme détaillée A =  aib
i 0
i

On appelle :
Rang d’un chiffre : la puissance i de b ; a3 est de rang 3
Chiffre de poids fort : chiffre de gauche (a3)
Chiffre de poids faible : chiffre de droite (a0)

1.3) Conversion d’une base en décimale

On fait le calcul des valeurs décimales des b i que l’on multiplie par le coefficient a i.
La somme de ces différents produits nous donne la valeur décimale de A.

Exemple :
A7 = (64235)7 Ecriture simplifiée.
A7 = 6.74 + 4.73 + 2.72 + 3.71 + 5.70
3
4 est de rang 3, par contre 5 est de rang 0.
6 est le poids fort de A7 et 5 est le poids faible de A7.
La base b= 7, possède 7 symboles élémentaires ai avec ai 𝜖 {0, 1, 2, 3, 4, 5, 6}. On a :
A 10 = 6.74 + 4.73 + 2.72 + 3.71 + 5.70 = (15902)10

1.3.1) Le système binaire


La base b=2 ne comprend que les chiffres 0 et 1.
Les poids sont les puissances de 2.
Conversion décimale → binaire
Exemple: 25 25= 2 × 12 + 𝟏
12= 2 × 6 + 𝟎
6= 2 × 3 + 𝟎
3= 2 × 1 + 𝟏
1= 2 × 0 + 𝟏
On obtient en lisant les chiffres en gras du bas vers le haut : (25)10 = (11001)2

La conversion inverse donne :


(11001)2 = 24 + 23 + 20 = 16 + 8 + 1 = (25)10

Sachant que les restes sont 0 et 1 suivant que le dividende est pair ou impair on peut opérer
plus simplement :
1 3 6 12 25
1 1 0 0 1
En plaçant de droite à gauche 1 sous les dividendes impairs et 0 sous les pairs.

1.3.2) Le système octal

Dans le système octal, la base est 8.

C'est-à-dire que nous utilisons 8 symboles (de 0 à 7).

Comptons de 0 à 9 en base 10 et exprimons la correspondance en base 8.

4
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 10
9 11
Base 10 Base 8

En aucun cas le chiffre 8 (la base exprimée en décimal) ne peut apparaitre dans un nombre
exprimé en octal.

Dans un nombre exprimé en octal, chaque chiffre a un poids fonction de la base, c’est-à-dire
une puissance de 8.

Exemple : 7 3 5 2 (8)

80

81

82

83

Le nombre 108 représente 810

Conversion décimal → octal

La conversion s’effectue avec des divisions successives par la base (ici 8).

Exemple : convertir 45110 en octal

451 8
51
3 56 8
0 7
45110=7038

Conversion octal → décimal

Pour la conversion en décimal, on utilise la méthode du développement polynomial.

Exemple :

5
7038 → 3 x 80=3 x 1 = 3

+ 0 x 81 =0 x 8 = 0

+ 7 x 82 = 7x 64 = 448

45110

1.3.3) Le système hexadécimal

Dans le système hexadécimal, la base utilisée sera 1610.


Nous avons donc besoin de 16 symboles différents. Nous utiliserons les chiffres de 0 à 9 mais
il nous faut encore 6 autres symboles (nous ne pouvons utiliser le chiffre 10 puisque 10 est en
fait un nombre représenté à l’aide des chiffres 0 et 1. Nous utiliserons les 6 premières lettres
de l’analphabète A ,B,C ,D,E,F.
Comptons de 0 à 16 en décimal et exprimons la correspondance en hexadécimal.

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
16 10
Base 10 Base 16

Conversion décimal → hexadécimal

La conversion s’effectue par division successives avec la base (ici 16).

6
Exemple : convertir 6846(10) en base 16

6846 16
44
126 427 16
14 107 26 16
11 10 1

Attention, en hexadécimal les chiffres 10, 11,14, n’existences pas il faut les remplacés
respectivement par A, B et E.

Ce qui nous donne :

6846(10) =1 A B E16

Conversion hexadécimal → décimal

Méthode de développement polynomial :

Exemple : ABCDEF 16 a convertir en décimal cela donne :

F x 160 = 15 x 1 = 15

+ E X 161 = 14 x 16 = 224

+ D x 162 = 13 x 256 = 3328

+ C x163 = 12 x 4096 = 49152

+ B x 164 = 11 x 65536 = 720896

+ A x 165 = 10 x 1048576 = 10485760

11259375

Exercice : Convertir ces nombre en base 10


COCA16 = . . . . 10
10110112 = . . . . 10
2368 = . . . . 10
FFF16 = . . . . 10

7
1.4) Méthode de conversion
1.4.1) Conversion par divisions successive
Pour convertir un nombre N en base 10 , (N)10 , dans une base b quelconque
(N)b. On a :

(N)10 = q0 b + r0 q0, q1, … quotients

q0 = q1 b + r1 r0, r1, … restes.

q1 = q2 b + r2

……………….

qn – 2 = qn-1 b + rn-1

qn – 1 = 0xb + rn

Maintenant, en remontant la chaîne à l’envers :

qn – 2 = rn b + rn -1

qn -3 = (rn b + rn -1) b + rn – 2

q1 = rn bn – 1 + rn – 1 bn-3 + …….. + r2

q0 = rn bn – 1 + rn – 1 bn – 2 + …….. + r2 b + r1

=> N = q 0 b + r 0 = r n b n + r n – 1 b n – 1 + …+ r 2 b 2 + …r 1 b + r 0

=> N = (rn rn – 1… r2 r1 r0)b

On les écrit de la gauche vers la droite

Les ri sont les coefficients de la décomposition polynomiale.

N = ∑𝑛𝑖=0 𝑟𝑖 𝑏𝑖

Exercice :

Donner les équivalents des nombres suivant dans les base proposées :
(N)10 = 189520 => (N)16 = ………..
(N)10 = 23 => (N)2 = ……….
(N)10 = 24 => (N)8 = ……….

8
1.4.2) Conversion par groupement de bits
Comme nous l’avons vu précédemment, tous les calculs à l’intérieur d’un ordinateur
s’exécutent à partir de nombres exprimés en binaire. Mais afin de manipuler des nombre de
façon plus commode, nous travaillerons soit en octal, soit en hexadécimal.
Cela dépend de la manière dont fonctionne le calculateur.
Si les bits binaires sont groupés par 3, on utilisera le système octal (un groupe de plusieurs
bits est appelé BYTE).
Avec un byte de 3 bits, nous pouvons exprimer une valeur octale de 0 à 7.
Si les bits sont groupés par 4 (un byte de 4 bits est aussi appelé QUARTET), on utilisera alors
le système hexadécimal.
Avec un byte de 4 bits (quartet), nous pouvons exprimer une valeur hexadécimale de 0 à F.

Prenons un exemple :
Soit la valeur 4095 à convertir en octal et hexadécimal.
Calculons sa conversion en binaire. Nous trouvons :
4095(10) =1111 1111 11112
- Si, à partir du bit de droite (c’est-à-dire à partir du poids le plus faible) nous groupons les
bits par 3, cela donne :
409510 → 111 111 111 111
Chaque byte de 3 bits peut être converti en octal :
1112 → 78
409510 = 77778
- Si, à partir du bit de droite nous groupons les bits par groupe de 4,cela donne :
409510 = 1111 1111 1111
Chaque quartet peut être converti en hexadécimal :
11112 =F16
Soit,
409510 =FFF16

9
Exercice
Soit à convertir le nombre décimal 237 en octal, puis binaire, puis en hexadécimal :

237 8
77
5 29 8
5 3

23710 = 3558
Chaque digit octal peut être converti en binaire sur 3 bits. Cela donne :
3558 = 011 101 1012
Si maintenant, à partir du binaire, nous groupons par groupe de 4bits, nous obtiendrons la
conversion en hexadécimal
0 1110 11012
Les bits de poids élevés non présents seront mis à zéro.
11012 = D16
11102 = E16
3557 = OED16 + 23710
(Si nous avons effectué directement la conversion de 23710 en hexadécimal, il aurait fallu
passer par les divisions successives par 16)

237 16
77 14
13

23710 = ED16

Exercice :
Soit à convertir le nombre E1816 en OCTAL.
-Première solution : on convertit E1816 en décimal, puis cette valeur obtenue passe en octal.
-Deuxième solution : on exprime chaque digit hexadécimal par sa valeur correspondante en
binaire sur 4 bits :
E1816 = 1110 0001 1000
Puis on groupe par 3 bits (toujours à partir de la droite) et on exprime chaque groupe en octal.
111 000 011 000
10
7 0 3 0
Donc : E1816 = 70308

Vérification :
E1816 = 14 x 162
+ 1 x 161
+ 8 x 160
360810
70308 = 7 x 83
+ 3 x 81
360810

1.5) Cas des nombres fractionnaires


Lorsque l’on a un nombre décimal avec une virgule (nombre fractionnaires), il faudra
travailler en deux temps :
-la partie entière (à gauche de la virgule) se traite comme on vient de la voir ,
-la partie fractionnaire (à droite de la virgule) se traite par multiplication successive
par la base,
-ensuite, on regroupe les deux parties de chaque côté de la virgule.

Cas de la partie fractionnaire :


On effectue des multiplications successives par la base .la partie entière du résultat est prise
comme digit pour la réponse .cette partie est remise à zéro avant d’effectuer la multiplication
suivante.

Exemple :
Soit à convertir le nombre 0,63510 en octal :
- partie entière 0 donc résultat 0 pour l’octal,
- partie fractionnaire,635 → multiplications successives par 8.
0,635 × 8 = 5,080 premier digit 5
0,080 × 8 = 0,64 2éme 0
0,64 × 8 = 5,12 3éme 5
0,12 × 8 = 0,96 4éme 0

11
0,96 × 8 = 7,68 5éme 7
0,68 × 8 = 5,44 6éme 5
Résultat final
0,63510=0,5050758
Plus la base est petite, plus le nombre de multiplications a effectué doit être grand de façon à
obtenir un résultat précis.

Exemple : soit 0,1210 à convertir en binaire


0,12 × 2 = 0,24
0,24 × 2 = 0,48
0,48 × 2 = 0,96
0,96 × 2 = 1,92
Si nous nous arrêtons à 4 multiplications, nous obtenons le résultat suivant :
0,1210=0,00012
A partir du nombre en binaire, recalculons le nombre en base 10 par développement
polynomial, sachant qu’à partir de la droite de la virgule les puissances de la base sont
négatifs
0, 0 0 0 12
2-1
2-2
2-3
2-4
Ce qui donne
(0 × 2-1 ) + (0 × 2-2 ) + (1× 2-4 ) = 0,062510
0,00012 = 0,062510 ce qui ne correspond pas au nombre décimal du départ qui était 0,1210
Pour éviter cette erreur, il fallait prendre beaucoup plus de décimal après la virgule
lors de la convention en binaire.
0,12 × 2 = 0,24
0,24 × 2 = 0,48
0,48 × 2 = 0,96
0,96 × 2 = 1,92
0,92 × 2 = 1,84
0, 84 × 2 = 1,68

12
0,68 × 2 = 1,36
0,36 × 2= 0,72
0,72 × 2= 1,44
Donc, 0,1210 = 0,0001111012
Vérification : (1 × 2-4 ) + (1 × 2-5) + (1 × 2-6) + (1 × 2-7) + (1)
→ 0,1191410 résultat plus précis mais encore imparfait.

La conversion par groupement de bits se fait de façon similaire mais pour les chiffres après la
virgule, on part de la gauche.

Exemple :
Convertir en hexadécimal le nombre 75,278
758 = 111 101
0,278 = 0,010111
Soit :
0011 1101,0101 1100
75,278 = 3D, 5C16

1.6) Conversion Inverse


Il s’agit de la conversion d’un nombre d’une base quelconque en base 10.

II) Les Codes


2.1) Généralité sur le codage
2.1.1) Définition
Un code est une écriture symbolique, arbitrairement définie et destinée à représenter une
information plus ou moins complexe. Une information peut se code de plusieurs façons en
fonction de son utilisation.

2.1.2) Caractéristiques d’un code


Simplicité
Pour être utile, un code doit symboliser simplement une situation à priori complexe.
Caractère du bi-univoque

13
Pour éviter toute indétermination, chaque information doit être codée d’une manière unique
(c’est-à-dire compréhension entre interlocuteurs).
Sécurité
Forme utilisable par un ordinateur

2.1.3) Codes Numériques


Pour exprimer les dix chiffres décimaux, 4 poids binaires sont suffisants. Puisque 23=8 ;
103<10 < 24. Chaque choix de 10 combinaisons parmi les 16 possible constitue un code.
10 16!
Ce qui donne : 𝐶16 = 10!(16−10)! = 8008 codes possibles à 4 bits.

2.2) Codes Pondérés


Dans les codes pondérés, chaque chiffre ou digit a un poids fonction de sa position.
Exemple : pour (1010)2

Bits 1 0 1 0
Pondération 23 22 21 20

Code 1248
La façon la plus simple de représenter les 10 premiers chiffres décimaux par 4 variables
binaires est de prendre les dix premières combinaisons des variables du système binaire
naturel.
N 8421

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

14
N = nombre
Les pondérations sont 8 4 2 1
Application du code 1248 au DCB (Décimal Codé Binaire)
En DCB, chaque chiffre décimal est codé en 1248 et les valeurs ainsi obtenues sont
juxtaposées.

Exemples : Codez en DCB le nombre (5886)10.


(5882)10 = (010 1000 1000 0010) DCB
(907)10 = (1001 0000 0111) DCB
(432)10 = (0100 0011 0010) DCB
Par abus de langage, le code 1248 est appelé code DCB.

Code 1242* (Code Aïken)


Il trouve son application en informatique. Il suffit de stocker en mémoire les nombres de 0 à 4
et à la lecture on restore tout.

N 2421
0 0000
1 0001
2 0010
3 0011
4 0100
5 1011
6 1100
7 1101
8 1110
9 1111
Ce code est auto-complémentaire. Ainsi, le complément à 9 de X s’obtient en complémentant
à 1 les bits de la valeur X : complément à 9 de 3 => 9-3=6.
3 s’écrit 0011 . Son complement à 1 est 1100 ; ce qui donne 6 en code Aïken

Autre règle pour écritue : Si N< 5 alors 2* = 0


Si N≥5 alors 2* = 1

15
D’autres codes existent et sont souvent utilisés en Telecom : 1245 et 1224
N 5421 4221
0 0000 0000
1 0001 0001
2 0010 0010
3 0011 0011
4 0100 1000
5 1000 1001
6 1001 1010
7 1010 1011
8 1011 1110
9 1100 1111

Le code 1224 ou (4221) est auto complémentaire dans certains documents.

N 4221
0 0000
1 0001
2 0010
3 0011
4 0110
5 1001
6 1100
7 1101
8 1110
9 1111

2.3) Codes Non Pondérés


Tous les codes à 4 bits ne sont pas nécessairement pondérés. Il est souvent intéressant de
recherchant des codes auto-complémentaires.
Code Excédant 3 (exc.3) / (N+3) codé en 1248

N 8421 exc.3
0 0000 0011
1 0001 0100
2 0010 0101
3 0011 0110
<= Propriété d’auto complémentarité
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100 16
Ce code est auto-complémentaire.

EXERCICE :
Soit le code 842̅1̅. Les deux bits de droite sont négatifs et valent respectivement -2 et -1.
a) Donnez la valeur du décimal 5 dans ce code.
b) Montrez que ce code est auto-complémentaire.
c) Ce code peut-il se déduire du code excédent 3 ?

RESOLUTION
a) 5=8-2-1 alors (5)10  1011
b) Ecriture de N (0 à 9) dans le code 842̅1̅

N 842̅1̅
0 0000
1 0111 <= Ce code est auto-complémentaire car il vérifie
2 0110 la propriété d’auto complémentarité.
3 0101
4 0100
5 1011
6 1010
7 1001
8 1000
9 1111

c) Le code 842̅ 1̅ se déduit aisément du code excédant 3 en complémentant à 1 les deux


bits de droite.

Code GRAY ou REFLEX


 Propriété d’adjacence
Deux mots binaires sont adjacents si et seulement si, ils ne diffèrent que d’un bit.
Exemple : 1011 et 1001 sont adjacents
1001 et 1111 ne sont pas adjacents
 Code Continu
Un code est continu si et seulement si deux combinaisons successives sont adjacentes.

17
 Code Cyclique
Un code est cyclique si et seulement si la dernière combinaison est adjacente à la première.
Remarque :
Un code peut être cyclique sans être continu et vice-versa.
Le code binaire réfléchi ou code GRAY est un code continu cyclique.

Ecriture du code Gray

 1 bit
0

 2 bits 1
A

On lit le A suivi de B et on parcourt le labirynthe


B

 3 bits

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

18
 4 bits

A Code DCB Code GRAY


N N3 N2 N1 N0 G3 G2 G1 G0
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
B 4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000

Astuce pour trouver le code GRAY


L’équivalent réfléchi d’un nombre binaire est obtenu en présentation la somme modulo 2
comme suit :
N3 N2 N1 N0
+ N3 N2 N1 N0 Décalage d’un rang
Somme modulo 2 G3 G2 G1 G0

Application : (13)10= 1101

1 1 0 1
+ 1 1 0 1
Somme modulo 2 1 0 1 1 Ne pas tenir compte

19
Correspondance décimale Code Binaire
GRAY Naturelle
G3 G2 G1 G0
0 0000 0000
1 0001 0001
2 0011 0010
3 0010 0011
4 0110 0100
5 0111 0101
6 0101 0110
7 0100 0111
8 1100 1000
9 1101 1001
10 1111 1010
11 1110 1011
12 1010 1100
13 1011 1101
14 1001 1110
15 1000 1111

Le code Gray utilisé pour les conversions analogiques numériques.


La constitution est telle que chaque mot code diffère du précédent et du suivant par la valeur
d’un seul de ses bits.

Exemple : 0 0000
1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
8 1100
9 1101
10 1111
11 1110

20
12 1010
13 1011
14 1001
15 1000 etc.

2.4) Codes détecteurs d’erreur


Si l’on utilise uniquement 4 bits , si un des bits change au cours de la transmission ,on va
décoder a la réception un mauvais vecteur.
On peut alors rajouter des bits de redondance qui permettront de détecter l’erreur s’il y en a.

2.4.1) doublage de bits


-on peut doubler, tripler ou qua tripler systématiquement tous les bits.
Ainsi on peut écrire 1101 par 11 11 00 11.
On lit alors les bits deux a deux et si l’on décèle une différence dans un couple de bits, on a
trouvé une erreur.
En triplant les bits on pourra supposer que les deux bits s’assemblent, en cas d’erreur sans
bons et dans ce cas on est en présence d’un code correcteur.

2.4.2) Parité
On peut rajout er aux 4 bits, un bit positionné de telle façon que le nombre total de bits a 1
soit en nombre impair.

Représentation décimale Parité impaire


0 1 0000
1 0 0001
2 0 0010
3 1 0011
4 0 0100
5 1 0101
6 1 0110
7 0 0111
8 0 1000
9 1 1001

21
On peut alors détecter, si un simple bit change, que le nombre de bits a 1 sur les cinq bits es
en quantité paire
Par contre si deux bits changent on ne peut pas détecter d’erreurs.

2.4.3) code 2 parmi 5


Ce code s’appelle comme ceci car chaque vecteur de 5 bits contient exactement 2bits a 1
Le nombre de combinaisons de 5 bits avec 2 bits a 1 est :
5! 5.4
𝑐25 =2!(5−2)!=2.1=10

On pourra prendre le code de poids 74210


Représentation décimal Code 2 parmi 5
74210
0 11000
1 00011
2 00101
3 00110
4 01001
5 01010
6 01100
7 10001
8 10010
9 10100

- Ce code détecte 1 erreur car si un bit change il n’y a plus deux bits a 1.
- deux erreurs peuvent être détecté si on a deux passages a 1 ou deux passages a 0 .cependant
il ne détecte pas 1 passage à 0 et un passage a 1.

2.5) codes détecteurs et correcteurs d’erreurs


2.5.1) code de Hamming de distance égale a 3

Le code de Hamming permet de détecter et de corriger des erreurs d’un mot binaire de 4 bits.
Pour l’utilisation d’un code de Hamming de distance 3 ,on rajoute aux 4 bits d’information
,3bits qui sont fonction des 4 bits .
Ce code qui ne corrige qu’une erreur transmet 7bits pour 4bits d’information.

Position des bits 1 2 3 4 5 6 7


Noms des bits C1 c2 b4 c4 b3 b2 b1

B=(b4……b1) vecteur d’information


22
C1,c2,c4, sont les 3 bits supplémentaires
C1 est choisi pour que les positions 1, 3,5,7 totalise un nombre pair de bits a 1 .
C2 est choisi pour que les positions 2 ,3,6,7 totalise un nombre pair de bits a 1
C4 est choisi pour que les positions 4,5,6,7 totalise un nombre pair de bits a 1
Exemple : soit l’information de 4 bits 0101
Calculons c1, c2 et c4

Position de bits 1 2 3 4 5 6 7
Noms de bits C1 c2 b4 c4 b3 b2 b1
0 1 0 1

Ici C1 =0 car les bits a 1 des positions 3 ,6 et 7 sont au nombre de 2

C2=1car les bits a 1 des positions 3,6et 7 sont au nombre de 1

C4=0 car les bits des positions 3,6et 7 sont au nombre de 2.

Position des bits 1 2 3 4 5 6 7


Noms des bits 0 1 0 0 1 0 1

2.5.2) Détection d’erreur


Pour déterminer si le mot binaire est incorrect et quel est le bit qui est faux on regarde si
chaque bit c1,c2 et c4 vérifie la parité demandé
-si c’est le cas on place dans le pointeur p1,p2 ou p4 correspondant ,la valeur 0
-si ce n’est pas le cas on place dans le pointeur p1,p2,ou p4 correspondant ,la valeur 1.

Mot pointeur P4 p2 p1
Bit de parité C4 c2 c1

Le nombre binaire présent dans le mot p4 p2 p1 est la position du bit faux dans le mot
transmis .si 0 est trouvé cela veut qu’il n’y a aucune erreur.
Exemple : soit le mot transmis précédemment
0 100 101
Supposons qu’une erreur arrive sur le bit de position 6
On a alors le mot faux suivant 0 100 111

23
Position 1 2 3 4 5 6 7
Mot reçu 0 1 0 0 1 1 1
Nom du mot C1 c2 b4 c4 b3 b2 b1

Pour le bit c4 qui vérifie la parité (4,5,6,7), on a 3bits a 1 => p4=1

Pour le bit c2 qui vérifie la parité (2,3,6,7),on a 3 bits a 1 => p2=1

Pour le bit c1 qui vérifie la parité (1,3,5,7), on a 2bits a 1 => p1=0

=> p4 p2 p1 = 110 = 6(10) et c’est dans le bit de position six qui est faux. Donc ce bit de
position doit être changé pour avoir le bon mot. => Correction 0100101(ce qui était bien le
bit transmis).

Ce code de Hamming de distance 3 ne corrige qu’une erreur .Si deux bits sont erronés dans le
mot binaire on pourra les détecter mais pas les corriger (aucun des deux).

2.6) codes informatiques


2.6.1) code hexadécimal

Le code hexadécimal est la représentation d’un nombre en base 16 . Son utilisation est très
rependue car il est très facile de passer du binaire au code hexadécimal (24=16)
Exemple : 0010 1010 => (2A)H

2.6.2) Code ASCII


Le code Ascii permet de représenter des caractères sous forme de groupes de 7 bits. on a
alors la possibilité de représenter 128 caractères différents par lesquels figurent :
-les lettres majuscules et minuscules
-les digits
-les signes de ponctuations
-la mise en page (CR)

2.6.3) code EBCDIC

Le code EBCDIC est utilisé par quelques constructeurs (dont IBM) .c’est le deuxième code utilisé
pour représenter les caractères alphanumériques.

24
2.7) Arithmétique dans une base quelconque
2.7.1) Définitions
 Bit
On appelle bit les symboles élémentaires de la base 2 c.-à-d. 0 et 1
 Mot
C’est une suite de n bits.

Exemple : 100011001
Le 1er bit est le bit de poids le plus fort ou MSB (Most Significant Bit) et le dernier bit est le
bit de poids le plus faible ou LSB (Least Significant Bit).
Les tailles usuelles des mots sont : 4 bits (quartet), 8 bits (octet), 16 bits (mot), 32 bits (long
mot).

2.7.2) Règle d’addition


0 + 0 = 0 retenue 0
0 + 1 = 1 retenue 0
1 + 0 = 1 retenue 0
1 + 1 = 0 retenue 1
Si l’addition de 2 mots de n bits donne (n+1) bits alors le (n+1)ième bit est appelé bit
d’overflow.
Exemple :

1111

+ 1111

= 11110

bit d’overflow

2.7.3) Opération de soustraction


0 – 0 = 0 retenue 0
0 – 1 = 1 retenue 1
1 – 0 = 1 retenue 0
1 – 1 = 0 retenue 0

25
En électronique numérique lorsqu’on effectue une opération de soustraction, le système est
peu pratique à câbler d’où la transformation de la soustraction en addition.
 Utilisation d’autres méthodes
* Méthode du Complément Restreint (CR)
* Méthode du Complément Logique (CL)
* Méthode du Complément à 1 (CP1) ; 0 → 1 et 1 → 0.
Ou
* Méthode du Complément Vrai (CV) = CR+1
* Méthode du Complément Arithmétique (CA) = CL+1
* Méthode du Complément à 2 (CP2) = CP1+1

2.7.4) Méthode du complément restreint (CR)


On ajoute le complément restreint du nombre à soustraire et on ajoute la retenue au résultat
obtenu. S’il n’y a pas de retenue, cela signifie qu’il est négatif et est le complément restreint
du résultat réel.
Exemple: 5 - 7 = -2
7 → 111 → 111
5 → 101 → 101 −5 → −101 → +010
−7 →−111 →+000 −2 1)001
−2 101 (Pas de retenue, résultat négatif)
↳ +1
CR (101) = 010 → (-2)10
010

2.7.5) Méthode du complément vrai (CV)


On ajoute le complément vrai du nombre à soustraire et on ne tient pas compte de la retenue.
Quand il n’y a pas de retenue cela signifie que le résultat est négatif et il est le complément
vrai du résultat réel.
Exemple : 5 – 7 = -2

5 − 7 = −2 ⟹ 101 − 111 = 101 + CV(111) = 101 + 001 = 110

résultat négatif car pas de retenue

CV (110) = 001 + 1 = 010 ⇒ (−2)10

Exemple : 7 − 5 = 2 ⇒ 111 − 101 = 111 + CV(101) = 111 + 011 = 1)010

retenue, ne pas tenir compte ⇒ (2)10

26
2.7.6) Multiplication

PRINCIPE

- même présentation et principe que la multiplication décimale : position de la virgule finale,


décalage et addition.

- utilisation des règles suivantes :

0x0= 0 1x0=0

0x1=0 1 x1 = 1

Exemple :

110

x 10,1

110

+ 110 . .

1111,0

CAS PARTICULIER

La multiplication par une puissance de 2 revient à déplacer la virgule de n rang vers la droite.
L’opération est en fait un décalage à gauche :
3
Exemple : { 00010100 𝑋 2 => 1010 0000
20 𝑋 8 => 160
NB : Comme les nombres traités ont une taille limitée, un décalage trop important fait perdre
des bits significatifs. Le résultat est alors faux :
4
Exemple : { 00010100 𝑋 2 => 0100 0000
20 𝑋 16 => 64

27
2.7.7) Division

PRINCIPE

- Comme en décimal, la division binaire utilise les règle de base de la multiplication et de la


soustraction binaires.

- Les conditions d’arrêt du calcul sont les mêmes qu’en décimal : obtention d’un nombre
exact ou précision désirée atteinte.

- La division de nombres fractionnaires utilise le même principe qu’en décimal, à savoir,


suppression de la (ou des) virgule(s) par multiplication des deux membres par une même
puissance de 2.

Exemples :

1 0 0 1 1 1 0
- 1 1 0 1, 1 Résultat exact
0 0 1 1 0
- 1 1 0
0 0 0

1 0 1 1 1
- 1 1 1, 1 0 1 . . .
0 1 0 0
- 1 1 Résultat approché
0 0 1 0 0
- 1 1
0 0 1

( 110,11 : 10,01) = (11011 : 1001)

En effet, chacun des membres a été multiplié par une même puissance de 2 ( ici 22).

CAS PARTICULIER

La division par une puissance n de 2 revient à déplacer la virgule de n rangs vers la gauche.
L’opération est en fait un décalage à droite :
2
Exemple : { 00010100 ∶ 2 => 0000 0101
20 ∶ 4 => 5

28
NB : Là encore, un décalage trop important conduit à un résultat faux :
3
Exemple : { 00010100 ∶ 2 => 0000 0010
20 ∶ 8 => 2
« 2 » est la partie entière du résultat.

2.7.8) Représentations des nombres relatifs

MODE SIGNE ET VALEUR ABSOLUE

+5=5+ +|+5|

-5 =5- +|−5|

0 𝑝𝑜𝑢𝑟 𝑙𝑒𝑠 𝑛𝑜𝑚𝑏𝑟𝑒𝑠 ≥ 0


Signe =bit à gauche : {
1 𝑝𝑜𝑢𝑟 𝑙𝑒𝑠 𝑛𝑜𝑚𝑏𝑟𝑒𝑠 < 0

Exemple :

Base 2 +5 = 0101

-5 1101

+0 = 0000

-0 1000

addition câblés
Conséquences:2 operateurs {
Soustraction câblés

COMPLEMENT RESTREINT (ou complément logique ou complément à 1 si la base est 2)

Soit b la base et n quelque (n bits)

X=a3 a2 a1 a0

CR (x) = 2n-1 –x3 x2 x1 x0

Exemple 1) : base 10

n=1

CR (1) =10 1-1 -1 =8


29
CR (+4) =101-1-4 =5

Exemple 2) :

CL(27) = 102-1-27=72
= 99-27=Nmax – 27 = 72
Nmax = 99

COMPLEMENT VRAI (ou complément Arithmétique ou complément à 2 si la base est 2)

X=x3 x2 x1 x0

CV(X) = bn-x

CV (x) = bn-1 +1-x

= (bn-1 –x)+1 = CR(x)+1

𝐶𝑉(𝑁) = 𝐶𝑅(𝑁) + 1
{ 𝐶𝐴(𝑁) = 𝐶𝐿(𝑁) + 1
𝐶𝑝2 = 𝐶𝑝1

Exemple : Base 2 CV (x) = ̅̅̅


𝑥3 ̅̅̅
𝑥2 ̅̅̅
𝑥1 ̅̅̅
𝑥0 + 1

Exemple x = 10100111

CR(x) = 01011000

+ 1

01011001 = CV(x)

CONCLUSION

- x = CV(x) avec une règle de calcul

X –Y = X + (-Y)

X- Y = X + CV(Y)

30
2.7.9) Représentations des « Réels »

a) Virgile flottante

𝑏 = 𝑏𝑎𝑠𝑒
X = m.be { 𝑒 = 𝑒𝑥𝑝𝑜𝑠𝑎𝑛𝑡
𝑚 = 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑒
Si m = m3 m2 m1 m0

Alors

X = m3 m2 m1 m0.be

X = 0.m2 m1 m0 .be+4 mantisse normalisée avec m3 ≠ 0

=> Mantisse normalisée


1
≤m<1
𝑏

Exemple :

1) Pour b = 10

X1 = ± 2357 = ± 2357 x 100

= ± 0, 2357. 104 m = 0, 2357 est normalisée

2) Pour b = 16

X2 = AB,58 = AB58.16-2

X2 = 0,AB58.162

X = (± m ; e) de manière générale

b) Arithmétique flottante

- Multiplication

X = (mx ; ex)

Y = (mY ; eY)

mx et mY sont normalisées
1
< mx < 1
𝑏

𝑏 −1 < my < 1

31
P = X.Y = (mx ; ex) x (mY ; eY)

P = (mp ; ep) = (mx ; ex) x (mY ; eY)

P = mx bex . my bey
𝑚𝑦=𝑚𝑋.𝑚𝑌
P={𝑒
𝑃=𝑒𝑋 + 𝑒𝑌

1
Résultat valuable si < mp < 1
𝑏

Sinon il faut normaliser => modification de résultat


1 1
mP = 𝑚𝑋 . 𝑚𝑌 = 𝑏2 ∈ [𝑏 ≤ mp< 1

Normalisation du résultat

1 𝑚𝑋 = 𝑏 −1
𝑚𝑝 = 𝑏2 si {
𝑚𝑌 = 𝑏 −1
1
P = mpbep = 𝑏2 𝑏 𝑒𝑋+𝑒𝑋

1 𝑏
P = mpbep = 𝑏2x 𝑏 𝑏 𝑒𝑋+𝑒𝑋

1
P = mpbep = 𝑏 𝑒 𝑒𝑋+𝑒𝑌−1

- Quotient

x/y=(mx;ex)/(my ;ey)
𝑚 1
𝑚𝑞 = 𝑚 𝑞 𝑠𝑖 𝑚𝑞 ∈ [𝑏 ; 1[
Q{ 𝑞
𝑒𝑞 = 𝑒𝑋 − 𝑒𝑌

Sinon il faut normaliser


1
≤ 𝑚𝑋 < 1
𝑏

1
≤ 𝑚𝑌 < 1
𝑏

1 1
Si mX = et mY = 𝑏 alors mq = 1
𝑏

1
Q= x b x 𝑏 𝑒𝑋−𝑒𝑌
𝑏

1
Q= . 𝑏 𝑒𝑋−𝑒𝑌+1
𝑏

𝑚𝑞 = (𝑚𝑋 /𝑚𝑌 )/𝑏


Donc pour Q on a {
𝑒𝑞 = 𝑒𝑋 − 𝑒𝑌 + 1

32
- Addition/ Soustraction flottante

X = mx.bex

Y = my. bey

S = X+ Y

1er Cas ex = ey

S = x ± y = mx.bex ± my. bey

= (mx ± my). .bex


𝑚 = 𝑚 + 𝑚𝑌
S = { 𝑠 𝑒 =𝑋 𝑒
𝑠 𝑋

2e Cas eX > eY

ex – ey = n

ey – ex = – n

On ramène les 2 nombres au même exposant

S = mx.bex + my. bey

S = mx.bex + my. bey + ex –ex

S = mx.bex + my. bey - ex x bex avec my = my. bey - ex

S= (mx + my)..bex avec my = my. bey – ex

S= (mx + my b-n)..bex décalage à droite de n positions dans my.

Cas ms non normalisée

=> ms ≥ 1

𝑚𝑞 = (𝑚𝑋 /𝑚𝑌 )/𝑏


S= {
𝑒𝑠 = 𝑒𝑋 + 1
1
=> ms < 𝑏

𝑚𝑞 = (𝑚𝑋 + 𝑚𝑌 ). 𝑏 𝑛
S= {
𝑒𝑋 = 𝑒𝑋 − 𝑛

33
Exercice d’application

1) Multiplication
𝑋 = (0.3184 , 2)
(A) {
𝑌 = (0.2512 , 2)

X.Y = (0.3184x0.2512 , 2+2)

= ( 0.0799821 , 4) avec 0.0799821 normalisée

Donc X.Y = (0.799821 , 3)

𝑋. 𝑌 = (−0.4836 , 3)(0.5123 , 3)
(B) {
𝑋. 𝑌 = (0.247748 , 6) 𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑠é𝑒

2) Division

𝑋 = (0.3333 , 2)
(𝐴) {
𝑌 = (0.4251 , 1)

Q = X/Y = (0.3333 , 2) / (0.4251 , 1)

= (0.7840 , 1)

𝑋 = (0.4251 , 3)
(𝐵) {
𝑌 = (0.2465 , 2)

3) Addition

𝑋 = (0.4322 , 3)
(𝐴) {
𝑌 = (−0.3611 , 3)

S=X+Y

𝑋 = (0.2844 , 3)
(𝐵) {
𝑌 = (0.4162 , 1)

𝑋 = (0.6123 , 4)
(𝐶) {
𝑌 = (0.5243 , 1)

34
c) Virgule flottante dans l’ordinateur IBM

IBM

Simple précision : représentation sur 1 mot

𝑂𝑐𝑡𝑒𝑡𝑠
Mot = 4.{ = 4 x 8 = 32 bits
𝑏𝑦𝑡𝑒𝑠

31 0
S C M

1 bit 7 bits 24 bits

S = Signe de la mantisse

C = Caractéristique

M = mantisse

0 𝑠𝑖 𝑀 ≥ 0 𝐵𝑎𝑠𝑒 = 16 𝑚𝑜𝑢𝑟 𝑀
Signe { {
1 𝑠𝑖 𝑀 < 0 𝐵𝑎𝑠𝑒 = 2 𝑝𝑜𝑢𝑟 𝐶

Dans M on ne représente ni 0 ni virgule.

M = m3 m2 m1 m0

C = binaire + exposant

IBM 370 simple précision

1 mot = 32 bits

𝑏𝑎𝑠𝑒 = 16 𝑝𝑜𝑢𝑟 𝑀
C = 64 + e {
𝑏𝑎𝑠𝑒 = 2 𝑝𝑜𝑢𝑟 𝐶

S signe de la mantisse

0 𝑠𝑖 𝑀 ≥ 0
S={
1 𝑠𝑖 𝑀 < 1
Caractéristique C ≥ 0 inscrit sur 7 bits

0 ≤ C ≤ 27-1

0 ≤ 64 + e ≤ 127

- 64 ≤ e ≤ + 63
35
m sur 24 bits

m en hexadécimale = 4 bits

24/4 = 6 chiffres hexadécimale

Application

(1)10 → virgule flottante

Résultat

(1)10 = (1)16
1
x 16 = 0,1 x 16
16

m = 0,1 C = 64 e=1

C = 26 + 20

31 0
0 1000001 0001 0000 0000 0000 0000 0000

1 bit 7 bits 24 bits

36
Chapitre 2: Logique combinatoire

LC1) Algèbre de Boole


L’ensemble (E, +, -) est une Algèbre de Boole. Ces lois vérifient les propriétés suivantes.

COMMUTATIVITE
∀𝑥, 𝑦 ∊ 𝐸 𝑥+𝑦 =𝑦+𝑥
∀𝑥, 𝑦 ∊ 𝐸 𝑥⋅𝑦 =𝑦⋅𝑥
ASSOCIATIVITE
∀𝑥, 𝑦, 𝑧 ∊ 𝐸 𝑥 + (𝑦 + 𝑧) = (𝑥 + 𝑦) + 𝑧

DISTRIBUTIVITE
∀𝑥, 𝑦, 𝑧 ∊ 𝐸 𝑥 ⋅ (𝑦 + 𝑧) = 𝑥 ⋅ 𝑦 + 𝑥 ⋅ 𝑧 (1ère distributivité)
∀𝑥, 𝑦, 𝑧 ∊ 𝐸 𝑥 + 𝑦 ⋅ 𝑧 = (𝑥 + 𝑦) ⋅ (𝑥 + 𝑧) (2ème distributivité)

EXISTENCE D’ELEMENTS NEUTRES


∀𝑥 ∊ 𝐸‚ ∃𝑒 ∊ 𝐸‚ 𝑥 + 𝑒 = 𝑥
∀𝑥 ∊ 𝐸‚ ∃𝑖 ∊ 𝐸‚ 𝑥 ⋅ 𝑖 = 𝑥

EXISTENCE D’UN COMPLEMENT


∀∊ ‚∃∁𝑥 ≡ 𝑐𝑜𝑚𝑝𝑙é𝑚𝑒𝑛𝑡 𝑑𝑒 𝑥 ≡ 𝑥̅ ‚ 𝑥 + 𝑥̅ = 1
𝑥 ⋅ 𝑥̅ = 0

IDEMPOTENCE
∀𝑥 ∊ 𝐸‚ 𝑜𝑛 𝑎 𝑥 + 𝑥 = 𝑥 𝑒𝑡 𝑥 ⋅ 𝑥 = 𝑥

ELEMENTS ABSORBANTS
∀𝑥 ∊ 𝐸‚ ∃1 ∊ 𝐸‚ 𝑥 + 1 = 1
∃0 ∊ 𝐸‚ 𝑥 ⋅ 0 = 0

37
ABSORPTION
∀𝑥‚ 𝑦 ∊ 𝐸‚ 𝑥 + 𝑥 ⋅ 𝑦 = 𝑥 𝒊𝒎𝒑𝒍𝒊𝒒𝒖𝒆 𝒒𝒖𝒆: 𝑥. (1 + 𝑦) = 𝑥
∀𝑥‚ 𝑦 ∊ 𝐸‚ 𝑥 ⋅ (𝑥 + 𝑦) = 𝑥 𝒊𝒎𝒑𝒍𝒊𝒒𝒖𝒆 𝒒𝒖𝒆: 𝑥. 𝑥 + 𝑥. 𝑦 = 𝑥 + 𝑥. 𝑦 = 𝑥
(𝑥 + 𝑦) ⋅ (𝑥 + 𝑧) = 𝑥. 𝑥 + 𝑥. 𝑧 + 𝑥. 𝑦 + 𝑦. 𝑧
(𝑥 + 𝑦) ⋅ (𝑥 + 𝑧) = 𝑥. (1 + 𝑦 + 𝑧) + 𝑦. 𝑧 = 𝑥 + 𝑦. 𝑧

LC2) Les opérateurs booleens


Une variable booléenne (logique ou binaire) est une quantité ne pouvant prendre que deux
états notés :
‘’0 ‘’ Logique
‘’1’’ Logique
On peut matérialiser les variables logiques par des phénomènes ne pouvant prendre que deux
états.

LC2.1) Opérateurs booléens de base


 Opérateur PAS (Inverseur, NOT)

𝑿 ̅
𝑿
1
0

Logigramme

 Opérateur AND (ET logique)

Table de Vérité
𝑿 𝒀 𝑿 𝑨𝑵𝑫 𝒀
0 0 0
0 1 0
1 0 0
1 1 1
Logigramme

𝑋 𝐴𝑁𝐷 𝑌 ≡ 𝑋. 𝑌
X.Y = 0 si et seulement si une au moins des variables d’entrée vaut 0.
38
 Opérateur OR (OU inclusif)

Table de Vérité
𝑿 𝒀 𝑿 𝑶𝑹 𝒀
0 0 0
0 1 1
1 0 1
1 1 1
Logigramme

𝑋 𝑂𝑅 𝑌 ≡ 𝑋 + 𝑌

Equivalence

X+Y = 1 Si une au moins des variables d’entrée vaut 1.

LC2.2) Fonctions booléennes


 Fonction Dilemme (OU Exclusif)

Table de Vérité
𝑿 𝒀 𝑿 ⊕ 𝒀
0 0 0
0 1 1
1 0 1
1 1 0
Logigramme

39
Logigramme à base de portes logiques divers
𝐷(𝑋, 𝑌) = 𝑋 ⊕ 𝑌 = 𝑋. 𝑌 + 𝑌. 𝑋 (𝑐 ′ 𝑒𝑠𝑡 𝑙𝑎 𝑠𝑜𝑚𝑚𝑒 𝑚𝑜𝑑𝑢𝑙𝑜 2 𝑖𝑒 𝑎𝑑𝑑𝑖𝑡𝑖𝑜𝑛 𝑠𝑎𝑛𝑠 𝑟𝑒𝑡𝑒𝑛𝑢𝑒)

 Fonction Coïncidence

Table de Vérité

𝑿 𝒀 𝑿𝛩𝒀
0 0 1
0 1 0
1 0 0
1 1 1
Logigramme

Logigramme à base de portes logiques divers

𝐶(𝑋, 𝑌) = 𝑋𝛩𝑌 = 𝑋. 𝑌 + 𝑋. 𝑌
𝐷(𝑋, 𝑌) 𝑒𝑡 𝐶(𝑋, 𝑌)𝑠𝑜𝑛𝑡 𝑐𝑜𝑚𝑝𝑙é𝑚𝑒𝑛𝑡𝑎𝑖𝑟𝑒𝑠

 Théorème de ‘’De Morgan’’


𝑋̿ = 𝑋
𝑋 + 𝑌 = 𝑋. 𝑌
𝑋. 𝑌 = 𝑋 + 𝑌

40
 Fonction NAND (NOT AND)
Table de Vérité

𝑿 𝒀 𝑿. 𝒀
0 0 1
0 1 1
1 0 1
1 1 0
Logigramme

𝑋 𝐴𝑁𝐷 𝑌 ≡ 𝑋. 𝑌 𝑠𝑜𝑢𝑠 𝑙𝑎 𝑓𝑜𝑟𝑚𝑒 𝑂𝑁 𝑋/𝑌


𝑋 𝐴𝑁𝐷 𝑌 = 1 𝑆𝑖 𝑢𝑛𝑒 𝑎𝑢 𝑚𝑜𝑖𝑛𝑠 𝑑𝑒𝑠 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠 𝑑 ′ 𝑒𝑛𝑡𝑟é𝑒𝑠 𝑣𝑎𝑢𝑡 0.

 Fonction NOR (Not OR)

Table de Vérité

𝑿 𝒀 𝑿+𝒀
0 0 1
0 1 0
1 0 0
1 1 0

Logigramme

𝑋 𝑁𝑂𝑅 𝑌 ≡ 𝑋 + 𝑌 𝑠𝑜𝑢𝑠 𝑙𝑎 𝑓𝑜𝑟𝑚𝑒 𝑁𝑖 𝑋 ↓ 𝑌

41
 Fonctions Inhibiteurs

̅
𝑋 ↑ 𝑌 = 𝑋 ⋅ 𝑌̅ → 𝑌 𝑖𝑛ℎ𝑖𝑏𝑒 𝑋 → {0 ∶ 𝑋𝑌 = 𝑋 𝑑𝑜𝑛𝑐 𝑌 𝑎𝑢𝑡𝑜𝑟𝑖𝑠𝑒 𝑋
1 ∶ 𝑋𝑌̅ = 0 𝑑𝑜𝑛𝑐 𝑌 𝑖𝑛ℎ𝑖𝑏𝑒 𝑋
Y ↑ 𝑋 = 𝑌 ⋅ 𝑋̅ → 𝑋 𝑖𝑛ℎ𝑖𝑏𝑒 𝑌

Table de Vérité

𝑿 𝒀 𝑿. 𝒀
0 0 0
0 1 0
1 0 1
1 1 0
Logigramme

LC3) Fonctions normales


LC3.1) Minterme et Maxterme
Soient X1, X2, …, Xi,…, Xn ∊ {0 ,1}.
 On appelle Minterme construit sur X1, X2, …, Xi,…, Xn ∊ {0,1}, tout produit de ces n
termes sous forme directe ou complémentée sans répétition.
Exemple :
̅.𝒚
Pour x et y on aura : 𝒙 ̅;𝒙
̅.y ; x.𝒚
̅ ; x.y
̅.𝒚
Pour x, y et z on aura : 𝒙 ̅.𝒛̅ ; 𝒙
̅.𝒚
̅.z ; 𝒙
̅.y.z ; x.𝒚
̅.𝒛̅ ; x.𝒚
̅.z ; x.y.𝒛̅ ; x.y.z ; 𝒙
̅.y.𝒛̅
Pour n variables, on aura 2n mintermes.
 On appelle Maxterme construit sur x1, x2, …, xn toute somme de ses n termes sous
forme directe ou complémentée sans répétition.
Exemple :
̅+𝒚
Pour x et y : 𝒙 ̅; 𝒙 ̅; 𝒙 + 𝒚 𝑠𝑜𝑖𝑡 (22 = 4)
̅ + 𝒚; 𝒙 + 𝒚

LC3.3) Théorème de Shannon


Toute fonction booléenne peut être décomposée en fonction des trois opérateurs de base :
NOT ; AND et OR.

42
LC3.2) Développement d’une fonction booléenne par rapport aux
maxtermes de ses variables
𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖 , … , 𝑥𝑛 ) = 𝑥̅𝑖 𝑓(𝑥1 , 𝑥2 , … ,0, … , 𝑥𝑛 ) + 𝑥𝑖 𝑓(𝑥1 , 𝑥2 , … ,1, … , 𝑥𝑛 )
Si 𝑥𝑖 = 1 𝑎𝑙𝑜𝑟𝑠 𝑥̅𝑖 = 0
𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖 , … , 𝑥𝑛 ) = 0 ∗ 𝑓(𝑥1 , 𝑥2 , … ,0, … , 𝑥𝑛 ) + 1 ∗ 𝑓(𝑥1 , 𝑥2 , … ,1, … , 𝑥𝑛 )
= 𝑓(𝑥1 , 𝑥2 , … ,1, … , 𝑥𝑛 )
Si 𝑥𝑖 = 0 𝑎𝑙𝑜𝑟𝑠 𝑥̅𝑖 = 1 (𝑚ê𝑚𝑒 𝑑é𝑐𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛)

LC3.3) Décomposition d’une fonction booléenne en fonction des mintermes


de ses variables
2𝑛 −1

𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖 , … , 𝑥𝑛 ) = ∑ 𝐶𝑖 ∗ 𝑚𝑖 (𝑙𝑒𝑠 𝑚𝑖 𝑠𝑜𝑛𝑡 𝑙𝑒𝑠 𝑚𝑖𝑛𝑡𝑒𝑟𝑚𝑒𝑠)


𝑖=0

 Calcul de Ci (deux variables x et y)


𝑓(𝑥, 𝑦) = 𝑥̅ 𝑓 (0, 𝑦) + 𝑥𝑓(1, 𝑦)
𝑓(0, 𝑦) = 𝑦̅𝑓(0,0) + 𝑦𝑓(0,1)
𝑓(1, 𝑦) = 𝑦̅𝑓(1,0) + 𝑦𝑓(1,1)

𝑓(𝑥, 𝑦) = 𝑥̅ [𝑦̅𝑓(0,0) + 𝑦𝑓(0,1)] + 𝑥[𝑦̅𝑓(1,0) + 𝑦𝑓(1,1)]


𝑓(𝑥, 𝑦) = 𝑥̅ 𝑦̅𝑓(0,0) + 𝑥̅ 𝑦𝑓(0,1) + 𝑥𝑦̅𝑓(1,0) + 𝑥𝑦𝑓(1,1)
(Pour 2 variables x et y, on a : 𝑚0 = 𝑥̅ 𝑦̅; 𝑚1 = 𝑥̅ 𝑦; 𝑚2 = 𝑥𝑦̅; 𝑚3 = 𝑥𝑦)

Soit la fonction I donnée par sa Table de Vérité.


Exemple 1 :
Table de Vérité

X Y I
0 0 1
0 1 1
1 0 0
1 1 1

𝐼 = 𝑥̅ 𝑦̅ ∗ 𝐼(0,0) + 𝑥̅ 𝑦 ∗ 𝐼(0,1) + 𝑥𝑦̅ ∗ 𝐼(1,0) + 𝑥𝑦 ∗ 𝐼(1,1) = 𝑥̅ 𝑦̅ + 𝑥̅ 𝑦 + 𝑥𝑦̅ + 𝑥𝑦

43
𝑛 𝐶𝑖 = 0 ⇒ 𝐶𝑖 𝑚𝑖 = 0 ⇒ 𝑙𝑒 𝑚𝑖𝑛𝑡𝑒𝑟𝑚𝑒 𝑑𝑖𝑠𝑝𝑎𝑟𝑎î𝑡
𝐼 = ∑2𝑖=0−1 𝐶𝑖 𝑚𝑖 {
𝐶𝑖 = 1 ⇒ 𝐶𝑖 𝑚𝑖 = 𝑚𝑖 ⇒ 𝑙𝑒 𝑚𝑖𝑛𝑡𝑒𝑟𝑚𝑒 𝑎𝑝𝑝𝑎𝑟𝑎î𝑡
(On ne garde que les mintermes pour lesquels Ci = 1)

Exemple 2 : Fonction MAJ = Majorité de bits à 1

Table de Vérité
A B C MAJ
0 0 0 0 23 −1

0 0 1 0 𝑀𝐴𝐽 = ∑ 𝐶𝑖 𝑚𝑖
𝑖=0
0 1 0 0
0 1 1 1 On ne garde que les mintermes pour lesquels Ci = 1
1 0 0 0 𝑀𝐴𝐽 = 𝑎̅𝑏𝑐 + 𝑎𝑏̅𝑐 + 𝑎𝑏𝑐̅ + 𝑎𝑏𝑐
1 0 1 1
1 1 0 1
1 1 1 1

LC3.4) Développement d’une fonction booléenne par rapport aux


maxtermes de ses variables
𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖 , … , 𝑥𝑛 ) = [𝑥̅𝑖 + 𝑓(𝑥1 , 𝑥2 , … ,1, … , 𝑥𝑛 )] ∗ [𝑥𝑖 + 𝑓(𝑥1 , 𝑥2 , … ,0, … , 𝑥𝑛 )]
Démonstration
 𝑥𝑖 = 1 𝑎𝑙𝑜𝑟𝑠 𝑥̅𝑖 = 0
𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖 , … , 𝑥𝑛 ) = [0 + 𝑓(𝑥1 , 𝑥2 , … ,1, … , 𝑥𝑛 )] ∗ [1 + 𝑓(𝑥1 , 𝑥2 , … ,0, … , 𝑥𝑛 )]
= 𝑓(𝑥1 , 𝑥2 , … ,1, … , 𝑥𝑛 )
 𝑥𝑖 = 0 𝑎𝑙𝑜𝑟𝑠 𝑥̅𝑖 = 1
(Même démonstration)

Cas de 2 variables
𝑓(𝑥, 𝑦) = [𝑥̅ + 𝑓(1, 𝑦)] ∗ [𝑥 + 𝑓(0, 𝑦)]
𝑓(0, 𝑦) = [𝑦̅ + 𝑓(0,1)] ∗ [𝑦 + 𝑓(0,0)]
𝑓(1, 𝑦) = [𝑦̅ + 𝑓(1,1)] ∗ [𝑦 + 𝑓(1,0)]

𝑓(𝑥, 𝑦) = [𝑥̅ + [𝑦̅ + 𝑓(1,1)]] ∗ [𝑦 + 𝑓(1,0)] ∗ [𝑥 + [𝑦̅ + 𝑓(0,1)]] ∗ [𝑦 + 𝑓(0,0)]


2ième distributivité 𝑥 + 𝑦𝑧 = (𝑥 + 𝑦)(𝑥 + 𝑧)
𝑓(𝑥, 𝑦) = [𝑥̅ + 𝑦̅ + 𝑓(1,1)] ∗ [𝑥̅ + 𝑦 + 𝑓(1,0)] ∗ [𝑥 + 𝑦̅ + 𝑓(0,1)] ∗ [𝑥 + 𝑦 + 𝑓(0,0)]

44
LC3.5) Développement d’une fonction booléenne en fonction des
maxtermes de ses variables
2𝑛 −1

𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖 , … , 𝑥𝑛 ) = ∏ (𝐶𝑖 + 𝑀𝑖 ) ; 𝑙𝑒𝑠 𝑀𝑖 𝑠𝑜𝑛𝑡 𝑙𝑒𝑠 𝑚𝑎𝑥𝑡𝑒𝑟𝑚𝑒𝑠


𝑖=0

 Fonction quelconque I

X Y I
0 0 1
0 1 1
1 0 0
1 1 1

𝐼(𝑥, 𝑦) = [ 𝑥̅ + 𝑦̅ + I(1,1)][ 𝑥̅ + 𝑦 + 𝐼(1,0)] [ 𝑥 + 𝑦̅ + 𝐼(0,1)][𝑥 + 𝑦 + 𝐼(0,0)]


𝐼(𝑥, 𝑦) = (𝑥̅ + 𝑦̅ + 1)( 𝑥̅ + 𝑦 + 0)( 𝑥 + 𝑦̅ + 1)(𝑥 + 𝑦 + 1)
𝐼(𝑥, 𝑦) = 𝑥̅ + 𝑦

Résumé
𝑛 0 => 0. 𝑚𝑖 = 0 𝑙𝑒 𝑚𝑖𝑛𝑡𝑒𝑟𝑚𝑒 𝑑𝑖𝑠𝑝𝑎𝑟𝑎𝑖𝑡
a) 𝑓 = ∑2𝑖=0−1 𝐶𝑖 𝑚𝑖 𝐶𝑖 = {
1 => 1. 𝑚𝑖 𝑙𝑒 𝑚𝑖𝑛𝑡𝑒𝑟𝑚𝑒 𝑎𝑝𝑝𝑎𝑟𝑎𝑖𝑡
On ne garde que les mintermes pour lesquels 𝐶𝑖 = 1
𝑛
b) 𝑓 = ∏2𝑖=0−1(𝐶𝑖 + 𝑀𝑖 )
0 → 0 + 𝑀𝑖 = 𝑀𝑖 𝑙𝑒 𝑚𝑎𝑥𝑡𝑒𝑟𝑚𝑒 𝑎𝑝𝑝𝑎𝑟𝑎𝑖𝑡
𝐶𝑖 = {
1 → 1 + 𝑀𝑖 = 1 𝑙𝑒 𝑚𝑎𝑥𝑡𝑒𝑟𝑚𝑒 𝑑𝑖𝑠𝑝𝑎𝑟𝑎𝑖𝑡
On ne garde que les maxtermes pour lesquels 𝐶𝑖 = 0

LC4) Représentation d’une fonction de ‘n’ variables


Une fonction de n variables peut être représentée par :
 TV
 Représentation Algébrique
 Représentation Numérique
 Etc…

45
LC4.1) La Table de Vérité (TV)
Elle suffit pour définir entièrement une fonction. Elle présente des inconvénients quand le
nombre de variables atteint 5.
Exemple : Fonction V = majorité de bits à 1

Table de Vérité
A B C V
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Première Forme algébrique canonique ou non

𝑉 = ∑ 𝐶𝑖 𝑚𝑖
𝑖=0

𝑉 = 𝐴̅𝐵𝐶 + 𝐴𝐵̅ 𝐶 + 𝐴𝐵𝐶̅ + 𝐴𝐵𝐶


C’est une réunion (OU, Maxterme) d’intersection (ET, Minterme).
Cette forme se nomme aussi :
*** Forme Disjonctive
*** Forme SP (Somme de Produit)
*** Forme ΣΠ (𝑆𝑖𝑔𝑚𝑎, 𝑃𝑖)
Deux fonctions F1 et F2 qui ont la même forme SP canonique sont identiques.

Deuxième Forme Algébrique Canonique ou Non


𝑉 = (𝐴 + 𝐵 + 𝐶)(𝐴 + 𝐵 + 𝐶̅ )(𝐴 + 𝐵̅ + 𝐶)(𝐴̅ + 𝐵 + 𝐶)
C’est une intersection de réunion, les réunions sont les maxtermes.
Cette forme se nomme aussi :
*** Forme Conjonctive
*** Forme PS (Produit de Somme)

46
*** Forme ΠΣ (𝑃𝑖, 𝑆𝑖𝑔𝑚𝑎)

LC4.2) Représentation Numérique à base 10

Poids

22 21 20
A B C V Pondération suivant les puissances de 2
valeur
décimale
0 0 0 0 0
𝑉 = 𝑅(3, 5, 6, 7) = Σ(3, 5, 6, 7)
1 0 0 1 0
2 0 1 0 0
3 0 1 1 1 Combinaison 3
4 1 0 0 0
5 1 0 1 1 Combinaison 5
6 1 1 0 1 Combinaison 6
7 1 1 1 1 Combinaison 7

Cette représentation numérique est canonique par définition (TV). Il est indispensable de s’en
tenir toujours à un ordre de pondération croissant de variables ou de préciser l’ordre choisi.

Exemple : Représentation Numérique d’une fonction donnée sous forme SP canonique.

𝐹 = 𝐴𝐵𝐶̅ 𝐷 + 𝐴𝐵̅ 𝐶̅ 𝐷 + 𝐴̅𝐵𝐶̅ 𝐷


̅ + 𝐴̅𝐵̅ 𝐶̅ 𝐷 + 𝐴𝐵𝐶𝐷

↓ ↓ ↓ ↓ ↓

1101 1001 0100 0001 1111

↓ ↓ ↓ ↓ ↓

13 9 4 1 15

𝑭 = 𝑹(𝟏, 𝟒, 𝟗, 𝟏𝟑, 𝟏)

On écrit sous chaque forme les combinaisons binaires correspondants puis ont attribue les
poids 8 4 2 1 respectivement à A B C et D.

47
LC4.3) Représentation Numérique Binaire par Image Caractéristique
On appelle image caractéristique ou vecteur caractéristique, la suite des valeurs 0 et 1 prises
par cette fonction pour toutes les combinaisons des variables données dans l’ordre du code
binaire naturel : c’est en fait le résultat de la TV écrit en ligne.
÷ 𝑉 = 0001 0111
(𝑠𝑒 𝑙𝑖𝑡 𝐼𝑚𝑎𝑔𝑒 𝐶𝑎𝑟𝑎𝑐𝑡é𝑟𝑖𝑠𝑡𝑖𝑞𝑢𝑒 𝑑𝑒 𝑉)

LC5) Simplification des fonctions logiques


LC5.1) But de la Simplification
La simplification d’une fonction logique a pour but d’aboutir à la réalisation du logigramme
le plus simple possible selon la technologie utilisée. Dans notre cas nous recherchons par la
simplification à minimiser systématiquement :
 Le nombre de termes de la fonction donc le nombre d’opérateurs.
 Et le nombre de variables dans chaque fonction (donc le nombre de variables dans
chaque terme, donc le nombre d’entrée de chaque opérateur).

LC5.2) Simplification Algébrique


Elle nécessite la connaissance parfaite des postulats et théorèmes de l’algèbre de Boole.

INCONVENIENTS : Aucun moyen d’affirmer que le résultat obtenu est le plus simple
possible.

Exemple : 𝐹1 = (𝐴 + 𝐶)(𝐴 + 𝐵 + 𝐶) = 𝐴 + 𝐶
𝐹2 = 𝐴𝐶 + 𝐴̅𝐵 + 𝐵𝐶 = 𝐴𝐶 + 𝐴̅𝐵 + 𝐵𝐶(𝐴 + 𝐴̅) = 𝐴𝐶(1 + 𝐵) + 𝐴̅𝐵(1 + 𝐶) = 𝐴𝐶 + 𝐴̅𝐵

LC5.3) Tableau de Karnaugh (TK)


TK à 2 Variables

00 → 0

01 → 1

11 → 3

10 → 2

48
TK à 3 Variables

TK à 4 Variables

TK à 5 variables
NB : Range valeur décimale

Réunion des Regroupements


On peut faire des regroupements de : 1, 2, 4, 8, 16,…,2n
Mais on fait des regroupements de 2n-1 si on ne peut pas faire des regroupements de 2n

49
Après avoir effectués tous les regroupements les plus simples possibles, il faut choisir les plus
indispensables c’est-à-dire ceux sans lesquels la fonction simplifiée n’est pas entièrement
définie et en effectuer la réunion. Il faut que tous les mintermes pour lesquels la fonction vaut
1 figure ou soient inclus dans les termes de la forme simplifiée : on dit que tous les sommets
sont couverts (tous les 1 doivent être pris).

TD COURS
Propriétés Matricielles du Tableau de Karnaugh

On utilise les propriétés matricielles du tableau de Karnaugh pour obtenir la réunion,


l’intersection, le dilemme de deux fonctions représentées sur un tableau de n dimensions. On
effectue case par case la réunion, l’intersection, le dilemme de chaque minterme
correspondant.

EXERCICE : Soit la fonction complémentée suivante :


̅̅̅̅̅̅̅̅
𝐹̅ = (𝐴 + 𝐶)[(𝐴̅ + 𝐵̅ ). (𝐵 +𝐷 ̅ ) + 𝐴𝐵(𝐵 + 𝐷
̅ )]

Trouver la forme SP minimale de F en utilisant les propriétés matricielles du tableau de


Karnaugh.

𝐺 = 𝐴̅ + 𝐶̅
On peut poser {𝐻 = 𝐴̅ + 𝐵̅ = ̅̅̅̅
𝐴𝐵
𝐾 =𝐵+𝐷 ̅

REPONSE :
𝐹̅ = 𝐺. [𝐻. 𝐾
̅+𝐻
̅ . 𝐾] = 𝐺. [𝐻⨁𝐾]
̅ + 𝐴𝐶 + 𝐴̅𝐵
𝐹 = 𝐵̅ 𝐷
Remplissage du Tableau de Karnaugh à 5 Variables

𝐹 = 𝐴̅𝐵𝐶𝐷
̅ 𝐸 + 𝐴𝐵̅ 𝐶̅ 𝐷
̅ 𝐸 + 𝐴𝐵𝐶̅ 𝐷𝐸 + 𝐴̅𝐵𝐶𝐷𝐸̅ + 𝐴̅𝐵̅ 𝐶̅ 𝐷
̅ 𝐸 + 𝐴𝐵𝐶𝐷𝐸̅ + 𝐴𝐵𝐶𝐷𝐸
Simplification avec le Tableau de Karnaugh
𝐹1 = 𝐴𝐵𝐶 + 𝐴𝐶̅ + 𝐴̅𝐵̅ 𝐶̅ 𝐷
̅ + 𝐴𝐵𝐶̅ + 𝐴̅𝐶
𝐹2 = 𝑅(0, 3, 4, 5, 6, 8, 10, 11, 13)

Pour chaque fonction, trouver toutes les formes SP minimales possibles.

50
̅̅̅
𝐴𝐵 + {𝐴𝐵 𝐷
𝐹1 = 𝐴𝐶̅ + 𝐴̅𝐶 + { 𝐵̅ 𝐶̅ 𝐷
̅
̅̅̅
𝐵𝐶 + {𝐴𝐵 𝐷
𝐵 𝐶̅ 𝐷
̅ ̅
𝐴𝐵̅ 𝐷 ̅ + 𝐴̅𝐶̅ 𝐷
𝐹2 = 𝐵𝐶̅ 𝐷 + 𝐴̅𝐵𝐷
̅ + 𝐵̅ 𝐶𝐷 + {
̅ + { 𝐴𝐵̅ 𝐶
𝐵̅ 𝐶̅ 𝐷
𝐴𝐵̅ 𝐷
̅

Simplification d’une fonction avec le Tableau de Karnaugh à 5 Variables


𝐹3 = 𝑅(3, 5, 8, 9, 10, 12, 13, 14, 19, 23, 25, 26, 27, 28, 31)

FONCTIONS LOGIQUES INCOMPLETES


Ce sont des fonctions qui pour certains mintermes de la forme SP canonique non pas de forme
logique définie :
 Soit parce que ces mintermes n’ont pas d’importance dans le problème posé (valeur
indifférente de la fonction).
 Parce que ces mintermes correspondent à des combinaisons qui ne se produisent
jamais dans le problème posé (valeurs disponibles de la fonction).
Exemple : Soit un nombre N de 0 à 9 étant donné dans le code DCB. Donner la fonction
logique qui vérifie que N est divisible par (2)10 (0 n’est pas divisible par 2).
Réponse :
Les 4 bits DCB de poids respectifs 8, 4, 2, 1 sont nommés A, B, C, D
La fonction F = 1 pour les combinaisons dont la valeur décimale est 2, 4, 6, 8.
F = 0 pour les combinaisons 0, 1, 3, 5, 7, 9
F est disponible pour 10, 11, 12, 13, 14, 15
𝐹 = 𝑅(2, 4, 6, 8) + 𝑅𝜙(10, 11, 12, 13, 14, 15)
̅ + 𝐴𝐷
𝐹 = 𝑅(2, 4, 6, 8) + 𝜙(10, 11, 12, 13, 14, 15) = 𝐵𝐷 ̅ + 𝐶𝐷
̅

51
LC6) Application de la méthode de karnaugh

LC6.1) Simplification et Réalisation avec les Opérateurs NAND (ON) et


avec des Opérateurs NOR (Ni)
Une fonction simplifiée par la méthode de Karnaugh est toujours de la forme SP.

Fonction

SP (Somme de Produit) PS (Produit de Somme)


On remplace tous les opérateurs ET et On remplace tous les opérateurs ET
OU par des opérateurs ON (en mettant et OU par des opérateurs Ni (en
chaque terme en parenthèse). mettant chaque terme en parenthèse).

--- S’il y a une variable unique, on la complémente


--- On peut associer deux ou plusieurs termes de la forme ON et aussi de la forme
Ni à condition de compléter le nouveau terme ainsi obtenu.

Exemple
F1 = AB + 𝐵̅C + 𝐴̅C𝐷
̅ + C𝐷
̅
F1 est de la forme SP
̅ /C) / (𝑨
F1= [(A/B) / (𝑩 ̅ /C/𝑫
̅ ) / (C/𝑫
̅ )]

52
̅C̅ + CDE
F2 = A + B ̅ /(B
̅ = [A ̅/C̅)/(C/D/E
̅)]
̅B
F3 = AB + A ̅/B
̅ + CD = [(A/B)/(A ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅)/(C/D)] = {[((A/B)/(A ̅/B̅)]/(C/D)}
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅/(C/D)] = {[(A/B)/(A
F3 = X + CD = [X ̅ /B
̅)]/(C/D)}

𝐹4 = 𝐵̅ . (𝐶 + 𝐷). (𝐴 + 𝐶̅ + 𝐷
̅ ) = {𝐵 ↓ (𝐶 ↓ 𝐷) ↓ (𝐴 ↓ 𝐶̅ ↓ 𝐷
̅ )}

LC6.2) Passage de la Forme ‘ON’ à la forme ‘Ni’ et vice-versa


̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝐹1 = 𝐴𝐵 + 𝐶𝐷 = [(𝐴/𝐵)/(𝐶/𝐷)] = [(𝐴 ̅ ↓ 𝐵̅ ) ↓ (𝐶̅ ↓ 𝐷
̅ )]
On passe aisément d’une forme à l’autre en complémentant toutes les variables d’entrée et de
sortie.
53
Exercice: Distributeur Automatique de Boisson
On considère un distributeur automatique de Boisson permettant du café ou du sel. On
suppose que l’appareil comporte quatre boutons (commutateur) représentant les quatre
ingrédients possibles. Ainsi que quatre voyants représentant les signaux de commande des
robinets distribuant les ingrédients. De plus il comporte un 5ième voyant indiquant qu’il y a une
incompatibilité dans les choix effectués.
 Définir la logique permettant de faire fonctionner les voyants à partir des
commutateurs en tenant compte des incompatibilités suivantes :
 Plusieurs boissons simultanées
 Sel ou sucre sans boisson
 Café salé ou bouillon sucré
 Déterminer la fonction logique définissant l’allumage de chaque voyant, la simplifiée
s’il y a lieu et réaliser le montage correspondant.

Ec : Entrée café Sc : Sortie café Le café se sert avec ou


Eb : Entrée bouillon Sb : Sortie bouillon sans sucre.
Esel : Entrée sel Ssu : Sortie sucre
Esu : Entrée sucre Ssel : Sortie sel Le bouillon sert avec ou

I : Incompatibilité sans sel.

Résolution d’un Problème de Logique Combinatoire


 Table de vérité.
 Ecriture des sorties en fonction des entrées et simplification par le diagramme de
Karnaugh si possible.
 Réalisation du logigramme.

54
Réponse
Ec Eb Esu Esel Sc Sb Ssu Ssel I
𝑆𝑠𝑢 = 𝐸𝐶 𝐸̅𝑏 𝐸𝑠𝑢 𝐸̅𝑠𝑒𝑙
0 0 0 0 - - - - -
0 0 0 1 0 0 0 0 1 𝑆𝑠𝑒𝑙 = 𝐸𝑏 𝐸̅𝑐 𝐸𝑠𝑒𝑙 𝐸̅𝑠𝑢
0 0 1 0 0 0 0 0 1 𝑆𝑐 = 𝐸𝑐 𝐸̅𝑏 𝐸̅𝑠𝑒𝑙
0 0 1 1 0 0 0 0 1
𝑆𝑏 = 𝐸𝑏 𝐸̅𝑐 𝐸̅𝑠𝑢
0 1 0 0 0 1 0 0 0
0 1 0 1 0 1 0 1 0 𝐼 = 𝐸𝑐 𝐸𝑏 + 𝐸̅𝑐 𝐸𝑠𝑢 + 𝐸̅𝑏 𝐸𝑠𝑒𝑙
0 1 1 0 0 0 0 0 1
0 1 1 1 0 0 0 0 1
1 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 1
1 0 1 0 1 0 1 0 0
1 0 1 1 0 0 0 0 1
1 1 0 0 0 0 0 0 1
1 1 0 1 0 0 0 0 1
1 1 1 0 0 0 0 0 1
1 1 1 1 0 0 0 0 1

EXERCICE : Transcodage Gray-DCB

Le DCB est la manière de coder les 10 premiers digits (de 0 à 9) sur 4 bits.
Un regroupement de 2n élimine n variables
Comme le code gray peut aller jusqu’à 16 (4 variables) alors à partir de
R(10, 11, 12, 13, 14, 15) on aura R𝜙(10, 11, 12, 13, 14, 15)
Ainsi F = R(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) + R𝜙(10, 11, 12, 13, 14, 15)

55
GRAY DCB
G3 G2 G1 G0 b3 b2 b1 b0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 0
0 0 1 0 0 0 1 1
0 1 1 0 0 1 0 0
0 1 1 1 0 1 0 1
0 1 0 1 0 1 1 0
0 1 0 0 0 1 1 1
1 1 0 0 1 0 0 0
1 1 0 1 1 0 0 1

EXERCICE : Un Adder Binaire

Cin A B R Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

𝑅 = 𝐶𝑖𝑛 ⊕ 𝐴 ⊕ 𝐵 = ̅̅̅̅
𝐶𝑖𝑛 𝐴̅𝐵 + ̅̅̅̅
𝐶𝑖𝑛 𝐴𝐵̅ + 𝐶𝑖𝑛 𝐴̅𝐵̅ + 𝐶𝑖𝑛 𝐴𝐵

̅̅̅̅
𝑅 = {(𝐶 ̅ ̅̅̅̅ ̅ ̅ ̅
𝑖𝑛 /𝐴/𝐵)/(𝐶𝑖𝑛 /𝐴/𝐵 )/(𝐶𝑖𝑛 /𝐴/𝐵 )/(𝐶𝑖𝑛 /𝐴/𝐵)}

𝐶𝑜𝑢𝑡 = {(𝐴/𝐵)/(𝐶𝑖𝑛 /𝐵)/(𝐶𝑖𝑛 /𝐴)}

56
EXERCICE : Un Soustracteur Binaire

𝐷 = 𝑏𝑖𝑛 𝐴̅𝐵̅ + ̅̅̅̅


𝑏𝑖𝑛 𝐴̅𝐵 + 𝑏𝑖𝑛 𝐴𝐵 + ̅̅̅̅ ̅̅̅̅
𝑏𝑖𝑛 𝐴𝐵̅ = {(𝑏𝑖𝑛 /𝐴̅/𝐵̅ )/(𝑏 ̅ ̅̅̅̅ ̅
𝑖𝑛 /𝐴/𝐵)/(𝑏𝑖𝑛 /𝐴/𝐵)/(𝑏𝑖𝑛 /𝐴/𝐵 )

𝑏𝑜𝑢𝑡 = 𝑏𝑖𝑛 𝐴̅ + 𝐴̅𝐵 + 𝑏𝑖𝑛 𝐵 = {(𝑏𝑖𝑛 /𝐴̅)/(𝐴̅/𝐵)/(𝑏𝑖𝑛 /𝐵)}

57
EXERCICE :

 Sur combien de bits sera écrit P


 Faire le logigramme

58
LC8) Les circuits d’aiguillages et de transformation de code

LC8.1) Décodage

LC8.1.1) Rôle : un décodeur se présente soit comme :

 Un aiguilleur d’information
 Un convertisseur de code

 Comme « aiguilleur d’information » : il transmet l’information présente sur une entrée vers
une sortie choisie dans un groupe de N sorties(a). Dans ce type de fonction le décodeur est
aussi appelé démultiplexeur.
 Comme « convertisseur » il transforme un décodeur comporte :

 N entrées d’adresses
 Une ou plusieurs entrées d’informations
 2n sorties
Quand l’adresse prend la valeur i, la sortie de rang i est active.

Aiguillage d’information (a) et conversion de code par décodage(b).

59
LC8.1.2) Réalisation d’un décodeur simple
 Soit à réaliser un décodeur 1 parmi 4(ou décodeur 2 vers 4), sortie active à l’état haut.
Le circuit dispose d’une entrée de validation V active à l’état bas.
TV

V E1 E2 S0 S1 S2 S3
0 0 1 0 0 0
0 0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
1 X X 0 0 0 0

Equations Symbole

S0=𝑉̅ ̅̅̅
𝐸1 ̅̅̅
𝐸0
S1=𝑉̅ ̅̅̅
𝐸1 𝐸0
S2=𝑉̅ 𝐸1 ̅̅̅
𝐸0
S3=𝑉̅ 𝐸1 𝐸0

Logigramme

Commande enable(validation): permet d’autoriser ou non le fonctionnement du décodeur

60
Réalisation d’un décodeur parmi 8
Réalisons avec des décodeurs (boitiers) 1 parmi 4 donc 2 boitiers, le décodeur 1 parmi 8.
2 𝑏𝑜𝑖𝑡𝑖𝑒𝑟𝑠 1 𝑝𝑎𝑟𝑚𝑖 4
{3 𝑒𝑛𝑡𝑟é𝑒𝑠 𝑑 𝑎𝑑𝑟𝑒𝑠𝑠𝑒𝑠, 𝑙𝑎 𝑡𝑟𝑜𝑖𝑠𝑖𝑒𝑚𝑒 𝑒𝑛𝑡𝑟é𝑒 𝑠𝑒𝑟𝑎 𝑙 ′ 𝑒𝑛𝑡𝑟é𝑒 𝑑𝑒

𝑣𝑎𝑙𝑖𝑑𝑎𝑡𝑖𝑜𝑛 𝑑𝑒𝑠 𝑏𝑜𝑖𝑡𝑖𝑒𝑟𝑠


Prenons A, B, C les entrées d’adresses.

Table de fonctionnement

C B A 𝑌0 𝑌1 𝑌2 𝑌3 𝑌4 𝑌5 𝑌6 𝑌7
0 0 0 1 0 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0
1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0 1 0
1 1 0 0 0 0 0 0 0 1

Sélection de chaque boitier

DEC 1/8

Schéma du montage

61
 Pas d’entrée de validation  il existe toujours une sortie parmi les 8 qui est valide  cela
peut être un inconvenient
 Soit vers v1 entrée de validation du boitier 1
Soit vers v2 entrée de validation du boitier 2
A l’aide de l’entrée C on sélectionnera l’un ou l’autre des 2 boitiers

Soit S l’entrée de validation active au niveau haut

S C V1 V2 Commentaire
0 0 1 1 Aucun boitier n’est sélectionné tant que S=0
0 1 1 1
1 1 0 0 1 Sélection de B1

1 1 1 0 Sélection de B2

Alors ona :
V1 =S.C
̅̅̅̅̅
V2 =𝑆. 𝐶

62
𝐵3 𝐸1 𝐸0 or 𝑉𝐵3 =𝑆2 𝐵0 𝑉𝐵3 =𝑆2 𝐵0
̅̅̅̅
Y9 = 𝑉 ̅̅̅ ̅ ̅̅̅̅

𝑆2 𝐵0=𝑆̅ ̅̅̅
𝐸2 𝐸3

Donc Y9 =𝑆̅ ̅̅̅


𝐸2 𝐸3 ̅̅̅
𝐸1 𝐸0

LC8.2) Multiplexage

LC8.2.1) Rôle d’un multiplexeur

Un multiplexeur aiguille une information choisie dans un groupe de N entrées et la dirige vers
une seule sortie. Un Mux comporte 2n entrées d’informations, n entrées d’adresses et une
sortie. Quand l’adresse prend la valeur i, la sortie prend l’état de l’entée de rang i.

63
Table de fonctionnement

S C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 X X X 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0
1 1 1 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 0 0 0 0 0 0 0 1

Validation de sortie du DEC 1/8

Réalisation d’un décodeur 4 parmi 16


Entrée de validation S active niveau bas
Le circuit à réaliser à 4 entrées et 16 sorties
 4 boitiers fournissent 16 sorties et 2 entrées.
 Un 5eme boitier assurera la sélection des boitiers et fournira les 2 autres entrées.

Aiguillage d’une information

64
LC8.2.2) Réalisation d’un multiplexeur 4 voies (avec une entrée de validation V
active à l’état bas)
Réaliser un Mux 4 vers 1
Disposant d’une entrée de validation V active niveau bas
Et une sortie non complémentée

Le circuit a : 4 voies de données 𝐸0 , 𝐸1 , 𝐸2 𝑒𝑡𝐸3


(4=22) donc 2 entrées d’adresses 𝐴0 𝑒𝑡 𝐴1 et la sortie S

V 𝐴1 𝐴0 S
1 X X 0
0 0 𝐸0
0 0 1 𝐸1
1 0 𝐸2
1 1 𝐸3

̅̅̅1 ̅̅̅
Equation: S=𝑉̅ [(𝐴 ̅̅̅1 𝐴0 )𝐸1 + (𝐴
𝐴0 )𝐸0 + (𝐴 ̅̅̅0 𝐴1 )𝐸2 + (𝐴0 𝐴1 )𝐸3 ]

Logigramme

Symbole logique

65
Pratique
1. Réalisation d’un multiplexeur 16 vers 1 à l’aide d’un multiplexeur 4 vers 1.
Le circuit à réaliser fera intervenir nécessairement 4 boitiers de Mx 4 vers 1 pour fournir 16
entrées puis un décodeur (74138 par exemple) devra servir pour la sélection alternative de
chacun des boitiers.
2. Réalisation d’un multiplexeur du type 32 vers 1 nécessite une adresse de 5 bits X, Y,
Z, T et U.
Les poids faibles Z,T et U vont réaliser 4 Mx partiels de type 8 vers 1(74LS151) donnant 4
informations. Les poids forts X, Y font un second Mx de type 4 vers & à partir des
informations𝑔0 , 𝑔1 , 𝑔2 𝑒𝑡 𝑔3 .
(Utiliser 4 boitiers 74LS151)
3. Avec le LS74151 réaliser la fonction suivante :
F=𝑍̅𝑌̅𝑋 + 𝑍̅𝑌𝑋̅ + 𝑍̅ 𝑌𝑋 + 𝑍𝑌𝑋̅

Exemple : réalisation d’un multiplexeur 16 vers 1 à l’aide du Mx 4 vers 1.

66
Le circuit à réaliser fera nécessairement intervenir 4 boitiers de Mx 4 voies pour
fournir 16 entrées.
Puis un décodeur (74138 par exemple) devra servir pour la sélection alternative de
chacun des boitiers.

Réalisation de la fonction
F=𝑍̅𝑌̅𝑋 + 𝑍̅𝑌𝑋̅ + 𝑍̅𝑌𝑋 + 𝑍𝑌𝑋̅
𝐶=𝑍
{𝐵 = 𝑌 𝐹 = 𝐶̅ 𝐵̅ 𝐴 + 𝐶̅ 𝐵𝐴̅ + 𝐶̅ 𝐵𝐴 + 𝐶𝐵𝐴̅
𝐴=𝑋

On aura :
𝑆̅ = (𝐶̅ 𝐵̅ 𝐴)𝐸
̅̅̅1 + (𝐶̅ 𝐵𝐴̅)̅̅̅
𝐸2 + (𝐶̅ 𝐵𝐴)𝐸
̅̅̅3 + (𝐶𝐵𝐴̅) ̅̅̅
𝐸6
Ainsi F=𝑆̅ si ̅̅̅
𝐸1 = ̅̅̅
𝐸2=̅̅̅̅
𝐸3 = ̅̅̅
𝐸6 = 1
𝐸1 = 𝐸2 = 𝐸3 = 𝐸6 = 0
C'est-à-dire {
𝐸0 = 𝐸4 = 𝐸5 = 𝐸7 = 1

67
LC8.3) Démultiplexeur
Un démultiplexeur réalise la fonction inverse du multiplexeur. Elle a une entée unique et n
entrées d’adresses.
Son rôle est de relier l’unique entrée à une seule sortie parmi les 2n sorties telles que le
numéro de la sortie connectée à l’unique entrée est la valeur décimale du code binaire pur
admis sur les n entrées d’adresses. Il possède éventuellement une entrée de validation du
circuit.

68
Démultiplexeur 1 vers 2n

Réalisation d’un démultiplexeur 1 vers 4


- Entrée de validation active à l’état haut
CS A1 A2 S3 S2 S1 S0
0 X X 0 0 0 0
1 0 0 0 0 0 E
0 1 0 0 E 0
1 0 0 E 0 0
1 1 E 0 0 0

Equation des entrées :

̅̅̅1 ̅̅̅
S0= Cs(𝐴 𝐴2 )E

̅̅̅1 𝐴0 )E
S1= Cs(𝐴

̅̅̅0 𝐴1 )E
S0= Cs(𝐴

S0= Cs(𝐴1 𝐴0 )E

69
Symbole

70
Remarque:
Expression de sortie d’un démultiplexeur
Si= Ki E avec Ki le minterme d’adresse dont l’expression binaire vaut l’indice i.
Exemple : i=5, K5= C𝐵̅A donc S5= (C𝐵̅A)E
D’une manière générale, les DEMUX sont réalisés à l’aide de décodeurs car leurs
fonctionnements sont analogues.
Le DEMUX apparait comme un décodeur à entrée conditionnelle (ie au lieu que la sortie
sélectionnée prenne la valeur logique 1 par exemple) elle prend plutôt la valeur se trouvant
sur l’entrée conditionnelle.
(En CI tous les décodeurs sont en même temps des DEMUX).
Exemple : 74138 décodeur−démultiplexeur 3 vers 8.
Mode décodeur

71
Mode démultiplexeur

Ou

Codeurs

Un codeur à 2n entrées et n sorties.

Il a la priorité de coder en binaire par le numéro de l’entrée active.

Codeur 2n vers n

72
Réalisation d’un codeur 4 vers 2

Entrées et sorties actives niveau haut

Table de vérité

𝐸3 𝐸2 𝐸1 𝐸0 𝑆1 𝑆0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1

̅̅̅1 𝐸
𝑆1 = 𝐸 ̅̅̅0
T.K équations de 𝑆1 et 𝑆2 {
𝑆2 = ̅̅̅
𝐸2 ̅̅̅
𝐸0

73
𝑆1
𝐸1 𝐸0 00 01 11 10
𝐸3 𝐸2
00 X 0 X 0
01 1 X X X
11 X X X X
10 1 X X X

𝑆1 = ̅̅̅
𝐸1 𝐸̅̅̅0

𝑆0

11 10
𝐸3 𝐸2 𝐸1 𝐸0 00 01

00 X 0 X 1
0 X X X
01
X X X X
11
1 X X X
10

̅̅̅2 𝐸
𝑆0 = 𝐸 ̅̅̅0

74
Pour éviter certaines ambiguïtés dans l’utilisation du circuit on doit définir une priorité
d’une entrée par rapport aux autres quand plusieurs entrées sont validées à la fois : ce type de
circuit est appelé codeur de priorité ou encodeur.
Très généralement pour un encodeur lorsque plusieurs entrées sont actives. La priorité
est donnée à l’entrée de numéro supérieur.

Réalisation d’un encodeur de priorité 4 vers 2


TV
𝐸3 𝐸2 𝐸1 𝐸0 𝑆1 𝑆0
0 0 0 0 X X
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 1 0
0 1 1 0 1 0
0 1 1 1 1 0
1 0 0 0 1 1
1 0 0 1 1 1
1 0 1 0 1 1
1 0 1 1 1 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 1 1
1 1 1 1 1 1

TV: logigramme

𝑆1 = 𝐸3 + 𝐸2
̅̅̅2 𝐸1
𝑆2 = 𝐸3 + 𝐸

75
Lorsqu’aucune entrée n’est active on a 𝑆1 𝑆0 =00
Tout se passe comme si l’entrée 𝐸0 était activée.
Pour éviter cette ambiguïté soit :
- les circuits codeurs disposent très souvent d’une sortie additionnelle C 0 /carry permettant
d’après son niveau logique de distinguer ces 2 cas de figure soit

Remarque :
L’étude est effectuée pour seulement une entrée valide à la fois
 Analyse du fonctionnement du montage si plusieurs entrées sont valides
 Pour 𝐸3 𝐸2 𝐸1 𝐸0 = 1100
Dans le logigramme on a 𝑆1 𝑆0 =10. Ce code est normalement destiné à la combinaison
𝐸3 𝐸2 𝐸1 𝐸0 = 0100
 Pour 𝐸3 𝐸2 𝐸1 𝐸0 = 0011
Code normalement destiné à 𝐸3 𝐸2 𝐸1 𝐸0 = 0001
⟹il ressort de cette analyse une certaine ambigüité dans l’utilisation du circuit.

76

Vous aimerez peut-être aussi