43

Représentation des informations

Embed Size (px)

DESCRIPTION

Premier chapitre de la matière Structure Machine pour LMD MI

Citation preview

Page 1: Représentation des informations

Structure Machine pour L1

Slimane OULAD NAOUIs.ouladnaoui(at)univ-ghardaia.dz

Département des Mathématiques et d'Informatique

Centre universitaire de Ghardaia

Février 2012

Page 2: Représentation des informations

Table des matières

1 Représentation de l'Information 3

1.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Représentation des nombres signés . . . . . . . . . . . . . . . 3

1.2.1 Représnetation signe valeur absolue(SVA) (signed-magnitude) 41.2.2 Représentation par le complément à la base diminué(diminished

radix complement) . . . . . . . . . . . . . . . . . . . . 51.2.3 Représentation par le complément à la base(radix com-

plement) . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.4 Arithmétique en complément vrai . . . . . . . . . . . . 8

1.3 Représentation des nombres réels . . . . . . . . . . . . . . . . 91.3.1 Format en virgule �xe . . . . . . . . . . . . . . . . . . 91.3.2 Format en virgule �ottante . . . . . . . . . . . . . . . . 101.3.3 Arithmétique en virgule �ottante . . . . . . . . . . . . 111.3.4 La norme IEEE 754 . . . . . . . . . . . . . . . . . . . . 12

1.4 Autre codages . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4.1 Le codage BCD (Binary-Coded Decimal) . . . . . . . . 131.4.2 Le code Excess3, (XS3)ou STIBITIZ . . . . . . . . . . 131.4.3 Le code Gray ou binaire ré�échi . . . . . . . . . . . . . 131.4.4 Codage des caractères . . . . . . . . . . . . . . . . . . 13

2 Algèbre de Boole et Simpli�cation de Fonctions Logiques 15

2.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Dé�nitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.1 Variable logique . . . . . . . . . . . . . . . . . . . . . . 162.2.2 Opération unaire, binaire, n-aire . . . . . . . . . . . . . 16

2.3 Algèbre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.1 Fonction logique . . . . . . . . . . . . . . . . . . . . . 172.3.2 Précédence des opérateurs et notation . . . . . . . . . 172.3.3 Postulats et autres lois utiles . . . . . . . . . . . . . . . 182.3.4 Principe de dualité . . . . . . . . . . . . . . . . . . . . 18

2.4 Opérateurs et portes logiques (Logic Gates) . . . . . . . . . . 19

1

Page 3: Représentation des informations

Structure Machine Pour L1 Dpt. MI

2.4.1 Non(NOT), Inverseur . . . . . . . . . . . . . . . . . . . 192.4.2 Et(AND) . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.3 Ou(OR) . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.4 Non Et(NAND) . . . . . . . . . . . . . . . . . . . . . . 202.4.5 Non Ou(NOR) . . . . . . . . . . . . . . . . . . . . . . 212.4.6 Ou Exclusif(XOR) . . . . . . . . . . . . . . . . . . . . 212.4.7 Non Ou-Exclusif(XNOR) . . . . . . . . . . . . . . . . . 212.4.8 Opérateurs complets (universels) . . . . . . . . . . . . 222.4.9 Logigramme . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5 Formes canoniques . . . . . . . . . . . . . . . . . . . . . . . . 232.5.1 Mintermes et Maxtermes . . . . . . . . . . . . . . . . . 232.5.2 Formes normales . . . . . . . . . . . . . . . . . . . . . 23

2.6 Simpli�cation de fonctions logiques . . . . . . . . . . . . . . . 252.6.1 La simpli�cations algébrique . . . . . . . . . . . . . . . 252.6.2 La simpli�cations par le tableau de Karnaugh(veitch) . 26

3 Circuits Combinatoires 33

3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2 Circuits Arithmétiques . . . . . . . . . . . . . . . . . . . . . . 34

3.2.1 Additionneurs . . . . . . . . . . . . . . . . . . . . . . . 343.2.2 Soustracteurs . . . . . . . . . . . . . . . . . . . . . . . 353.2.3 Multiplieurs . . . . . . . . . . . . . . . . . . . . . . . . 353.2.4 Comparateurs . . . . . . . . . . . . . . . . . . . . . . . 35

3.3 Circuits de transcodage . . . . . . . . . . . . . . . . . . . . . . 363.3.1 Encodeurs . . . . . . . . . . . . . . . . . . . . . . . . . 363.3.2 Décodeurs . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4 Circuits d'aiguillage . . . . . . . . . . . . . . . . . . . . . . . . 373.4.1 Multiplexeurs . . . . . . . . . . . . . . . . . . . . . . . 373.4.2 Démultiplexeurs . . . . . . . . . . . . . . . . . . . . . . 39

3.5 Générateurs de parité . . . . . . . . . . . . . . . . . . . . . . . 39

4 Circuits Séquentiels 41

CU-Ghardaia Groupe (MI) 2012 Page 2/42

Page 4: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Chapitre 1

Représentation de l'Information

Objectif : Connaître les représentations des di�érents types de don-nées, notamment les nombres et l'arithmétique associée.

1.1 Préambule

L'ordinateur traite di�érents types d'information(textes, images, son, vi-déos...), l'homme utilise des symbôles (lettres, chi�res....) pour les représen-ter, c'est ce qu'on appelle la représentation externe.Pour les manipuler, l'ordinateur exige un codage ou une traduction préalable,nous passons donc à une représentation interne. Dans la représentationinterne, des suites de bits (pouvant prendre les valeurs o ou 1) sont utilisées.Généralement la machine travaille avec un paquet de taille dé�nie de bitsappelé mot mémoire (de n bits), souvent des multiples de 8 (octet(8 bits),word(16 bits), double word (32 bits)...). Le processeur est alors dit processeurn-bits.Exemples :

. Intel 4004 → 4 bits (1971)

. Intel 8086 → 16 bits (1978)

. Pentium III → 64 bits (1999)

. Core i7 980x→ 128 bits (dernier processeur d'Intel)

1.2 Représentation des nombres signés

Étant donné que le premier objectif des ordinateurs est de calculer rapi-dement, la représentation des nombres a été la première forme étudiée.

CU-Ghardaia Groupe (MI) 2012 Page 3/42

Page 5: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Dans nos programmes, le choix d'une représentation est �xé lors de la dé-claration (types : integer, real en Pascal, �oat en C..etc). Comprendre lareprésentation des nombres permet de réaliser des gains en espace mémoireet en temps de traitement.En S1, nous avons vu la représentation d'une catégorie particulière de nombres,ce sont les nombres non signés (positifs).On rappelle la notation positionnelle sur (n + p bits) d'un nombre N dansune base b :En représentation binaire non signée (RBNS), le vecteur (an−1, ..., a0, a−1, ..., a−p),tel que :

N =n−1∑i=−p

ai ∗ bi

ai des entiers ∈[0, b− 1]

an−1(a−p) est le chi�re de poids fort(faible)

La représentation des entiers naturels ne pose pas de di�culté, mais celledes entiers relatifs est plus délicate puisque il faut pouvoir représenter etmanipuler le signe. Le but est de trouver une représentation transparentedans les opérations quelque soit le signe. Voyons comment représenter lesnombres signés (entiers relatifs).

1.2.1 Représnetation signe valeur absolue(SVA) (signed-magnitude)

L'idée la plus simple consiste à réserver un bit pour coder le signe(S) dunombre, le reste des (n− 1) bits représentent alors sa valeur absolue(V A).La convention retenue est d'utiliser le bit du plus fort poids (bit le plus àgauche) pour le signe : 0 si le nombre est positif, 1 s'il est négatif. Si noustravaillons sur n bits, ce codage peut être schématisé ainsi :

1 bit︷︸︸︷an−1︸︷︷︸

S0:+1:−

n−1 bits︷ ︸︸ ︷an−2an−3 · · · a0︸ ︷︷ ︸

V A

Exemples : Sur 3 bits :

CU-Ghardaia Groupe (MI) 2012 Page 4/42

Page 6: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Représentation SVA sur 3 bitsÉquivalent décimal SVA

+0 000+1 001+2 010+3 011-0 100-1 101-2 110-3 111

4 bits 6 bits 8 bits+5 0101 +27 011011 -24 10011000-5 1101 -27 111011 -128 hors limites (9 bits nécessaires !)

Intervalle représentable : sur n bits : la plus petite valeur (négative) est :111 · · · 1, alors que la plus grande (positive) est : 011 · · · 1 ce qui donne l'in-tervalle de valeurs représentables suivant : [−(2n−1 − 1), 2n−1 − 1]Avantage : Méthode simple et naturelle.Inconvénients :

. Deux représentations pour 0 (+0,-0)

. Complique les opérations d'addition/soustraction (traitement spécialdu signe)

En raison de ces défauts, cette représentation n'est pas utilisée actuellement.Exercice : Calculer sur 8 bits en SVA : 1-2 ; puis sur 4 bits avec la mêmeméthode 2-6 . Indication : pour calculer x− y en SVA si y > x alors calculery − x puis introduire le signe.

1.2.2 Représentation par le complément à la base dimi-nué(diminished radix complement)

Dans cette représentation un nombre positif est codé de la même façonqu'en RBNS, alors qu'un nombre négatif N est représenté par son complé-ment N ′ tel que : N + N ′ = bn − 1, (b : la base utilisée, n : nombre de bitsde la représentation).En système binaire (b = 2) en parle du complément à 1 (C1) ou le com-

plément restreint (CR) : N +N ′ = 2n − 1⇒ N ′ = 2n − 1−N .Pour obtenir le complément à 1 d'un nombre N il su�t donc de le retrancherde 2n− 1 qui s'écrit 11 . . . 1 sur n bits, ce qui revient à inverser tous ses bits.(car 1− 0 = 1 et 1− 1 = 0).Exemples : Soit sur 5 bits le nombre suivant : 01101 représentant (+13)10,

CU-Ghardaia Groupe (MI) 2012 Page 5/42

Page 7: Représentation des informations

Structure Machine Pour L1 Dpt. MI

son complément à 1 est le nombre 10010 qui est la représentation de (−13)10en C1.

Représentation en C1 sur 3 bitsÉquivalent décimal C1

+0 000+1 001+2 010+3 011-3 100-2 101-1 110-0 111

Résultat : le complément à 1 du complément à 1 d'un nombre N est lenombre lui même : C1(C1(N)) = NIntervalle représentable : sur n bits :la plus petite valeur (négative) est : 100 · · · 0, alors que la plus grande (posi-tive) est : 011 · · · 1 ce qui donne l'intervalle de valeurs représentables suivant :[−(2n−1 − 1), 2n−1 − 1]Avantage : Méthode intuitive (inverser les bits pour obtenir le complémentd'un nombre).Inconvénients : Les mêmes remarques que pour le codage en SV A : 2 re-présentations pour 0, et opérartions moins évidentes.Exercice : Calculer sur 8 bits en C1 : 63-28 ; puis 28-63.

1.2.3 Représentation par le complément à la base(radixcomplement)

Comme dans la méthode précédente un nombre positif est représenté parson code RBNS, mais le codage d'un nombre négatif s'e�ectue en complé-mantation à la base : N +N ′ = bn, (b : la base utilisée, n : le nombre de bitsde la représentation).En système binaire (b = 2) en parle du complément à 2 (C2) ou le com-

plément vrai (CV ) : N +N ′ = 2n ⇒ N ′ = 2n −NPour obtenir le complément à 2 d'un nombre N il su�t donc de le retrancherde 2n.En rapprochant les deux équations de C1 et C2, on obtient : C2(N) =C1(N) + 1.Le passage d'un entier positif à l'entier négatif de même valeur absolue, et

CU-Ghardaia Groupe (MI) 2012 Page 6/42

Page 8: Représentation des informations

Structure Machine Pour L1 Dpt. MI

inversement, se fait en complémentant le nombre bit à bit puis en ajoutant1 au résultat.Exemples : Représenter en C2 sur 8 bits le nombre -77.

(−77)10 = (?)8C2 = C1(+77)+1 = C1(01001101)+1 = 10110010+1 = (10110011)8C2

Sur 3 bits :

Représentation en C2 sur 3 bitsÉquivalent décimal C2

+0 000+1 001+2 010+3 011-4 100-3 101-2 110-1 111

Intervalle représentable : sur n bits : la plus petite valeur (négative)est : 100 · · · 0, alors que la plus grande (positive) est : 011 · · · 1, ce qui donnel'intervalle de valeurs représentables suivant : [−2n−1, 2n−1 − 1]Avantages :

� Une seule représentation pour 0� Opérations arithmétiques plus simples ( l'addition et la soustration sonttraitées de la même manière) (a− b = a+ (−b) = a+ C2(b))

Résultat : le complément à 2 du complément à 2 d'un nombre N est lenombre lui même : C2(C2(N)) = N .La représentation en C2 s'est imposée dans les calculateurs modernes, carelle simpli�e de nombreuses opérations sur les entiers.Remarques & astuces :

1. Le nombre n de bits de travail étant limité, ceci implique que. si le nombre occupe moins de n bits, on doit le compléter. si le nombre occupe plus de n bits, il doit être tronqué.

2. Dans les trois méthodes SV A,C1 et C2, le bit de poids fort indique lesigne

3. Pour trouver rapidement le C2 d'un nombre, il su�t d'inverser tous lesbits qui suivent le premier 1 rencontré en commençant du poids le plus

faible (à droite), Ex : trouver C2(01010)→ C2(

à inverser︷︸︸︷010 10︸︷︷︸

à garder

) = 10110

CU-Ghardaia Groupe (MI) 2012 Page 7/42

Page 9: Représentation des informations

Structure Machine Pour L1 Dpt. MI

4. Pour trouver la valeur décimale d'une chaîne (an−1 . . . a0) en C1 onpeut utiliser l'un des procédés suivants :

. si an−1 = 0 alors (Nbre positif) (N)10 =n−2∑i=0

ai ∗ 2i

sinon (Nbre négatif) compléter(inverser les bits), puis introduire le signe

. (N)10 = −an−1 ∗ (2n−1 − 1) +n−2∑i=0

ai ∗ 2i

5. Pour trouver la valeur décimale d'une chaîne (an−1 . . . a0) en C2 onpeut utiliser l'un des procédés suivants :

. si an−1 = 0 alors (Nbre positif) (N)10 =n−2∑i=0

ai ∗ 2i

sinon (Nbre négatif) compléter(inverser les bits) et ajouter 1, puis introduire le signe

. (N)10 = −an−1 ∗ 2n−1 +n−2∑i=0

ai ∗ 2i

6. Pour pouvoir travailler il est nécessaire de fournir à la fois le nombre debits ainsi que la méthode de représentation des données, Ex. la chaînesuivante (10100110) codée sur 8 bits peut représenter selon le codageadopté soit :

(a) 166 en RBNS

(b) -90 en C2

(c) -89 en C1

(d) -38 en SVA

1.2.4 Arithmétique en complément vrai

. 2 nombres positifs : sur 5 bits+9 01001+4 00100

+13 01101 résultat positif. nombre positif et nombre négatif inférieur

+9 01001-4 11100

+5 1 00101 bit de retenue à ignorer. nombre positif et nombre négatif plus grand

-9 10111+4 00100−5 11011 résultat négatif

CU-Ghardaia Groupe (MI) 2012 Page 8/42

Page 10: Représentation des informations

Structure Machine Pour L1 Dpt. MI

. deux nombres négatifs-9 10111-4 11100

−13 1 10011 bit de retenue à ne pas considérer. nombres égaux et opposés

-9 10111+9 01001

0 1 00000 bit de retenue à ignorer

Retenue et Débordement

Si une opération arithmétique génère un bit supplémentaire, ce bit est ditretenue ou report (carry en anglais), il est détecté et mémorisé dans l'indi-cateur C du registre d'état du processeur PSW(Processor State Word).Lors d'une opération arithmétique concerant des nombres de même signe, sile résultat (de signe di�érent) est en dehors de l'intervalle des valeurs repré-sentables, on dit qu'il ya débordement ou dépassement de capacité (over�ow),cet état est mémorisé dans l'indicateur O du registre d'état.Exemples+9 01001 -9 10111+8 01000 -8 11000

+17 10001 −17 01111

1.3 Représentation des nombres réels

Un nombre réel est constitué, en général, d'une partie entière signée etd'une autre fractionnaire, séparées par une virgule (le point décimal).

Partie Entière︸ ︷︷ ︸k bits

, Partie Fractionnaire︸ ︷︷ ︸p bits

Si on travaille sur n bits nous avons n = k + pExemple : la chaîne 001101, 11 code le nombre 13, 75 sur 8 bits.Le problème est comment indiquer et �xer la position de la virgule. Nousavons deux représentations.

1.3.1 Format en virgule �xe

Dans cette représentation, utilisée dans les premières machines, la posi-tion de la virgule est �xée une fois pour toutes. L'inconvénient est ici unelimitation dans l'étendue et la précision.

CU-Ghardaia Groupe (MI) 2012 Page 9/42

Page 11: Représentation des informations

Structure Machine Pour L1 Dpt. MI

1.3.2 Format en virgule �ottante

Pour répondre aux limites ci-dessus, une représentation similaire à lanotation scienti�que, bien connue dans les calculettes a été introduite. Unnombre réel N peut s'écrire :

N = ±M ∗ be,AvecM : une Mantisse

b : la base

e : un exposant

Exemples : 1200000000 en décimal s'écrit 12 ∗ 108, 28, 7 s'écrit 0.287 ∗ 102

ou 287 ∗ 10−1..., on peut remarquer que cette écriture n'est pas unique, etun nombre peut avoir plusieurs représentations. A�n d'uni�er le codage, ceformat a été normalisé, en précisant la forme de la mantisse, de l'exposant, lecomportement en cas d'anomalies(over�ow, division par 0..), méthode d'ar-rondi.En binaire, un nombre réel est normalisé s'il est écrit sous la forme :

±0,M ∗ 2e, M est un nombre dont le premier chi�re est di�érent de 0

Pour le représenter il faut coder la mantisse et son signe, ainsi que l'exposantet son signe.

Signe︸ ︷︷ ︸1 bit

Exposant︸ ︷︷ ︸k bits

Mantisse-normalisée︸ ︷︷ ︸p bits

La mantisse est souvent codée en format SV A, S = 0, si M ≥ 0, 1 sinon.Quant à l'exposant il est codé soit en complément à 2, soit en format biaisé.

Exposant en C2

Prenons un exemple, soit à coder le nombre suivant en virgule �ottantesur une machine à 13 bits (1+4+8) avec exposant en C2 : −(0, 015)8−(0, 015)8 = −(0.000001101)2 = −(0.1101) ∗ 2−5

Le signe S = 1, car mantisse négativeExposant e = −5 en C2 sur 4 bits : 1011Mantisse M = 1101 sur 8 bits : 11010000Donc (−0, 015)8 sera codé par la chaîne : 0101111010000

CU-Ghardaia Groupe (MI) 2012 Page 10/42

Page 12: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Exposant biaisé

Pour éviter à traiter des exposants négatifs, on utilise cette techniqueconsistant à ajouter 2k−1 (k : les bits de l'exposant) à l'exposant réel. Cettevaleur est le biais ou le décalage (on dit aussi constante d'excentrement).Soit à représenter toujours le nombre de l'exemple précédent −(0, 015)8 maissur une machine 16 bits(1+4+11) en exposant biaisé.−(0, 015)8 = −(0.000001101)2 = −(0.1101) ∗ 2−5

Le signe S = 1, car mantisse négativeExposant e = −5, ajoutant le biais = 24−1 = 8→ −5 + 8 = +3 → 0011Mantisse M = 1101 sur 11 bits → 11010000000Donc (−0, 0− 15)8 sera codé par la chaîne → 0001111010000000

1.3.3 Arithmétique en virgule �ottante

Soient deux nombres réels N1 et N2 : N1 = M1 ∗ be1 et N2 = M2 ∗ be2 .Comment calculer : N1 +N2 ;N1 −N2 ;N1 ∗N2 ;N1/N2 ?L'approche générale est la suivante :

. Pour le + et - :� Mettre les exposants à la même valeur (les aligner)� Additionner(soustraire) les mantisses� Normaliser le résultat

. Pour * :� Additioner les exposants� Multiplier les mantisses� Normaliser le résultat

. Pour / :� Soustraire les exposants� Diviser les mantisses� Normaliser le résultat

Exemples : Calculer (0, 15)8+(1, 5)8 = (?) sur une machine 11 bits (1+4+6)exposant en C2.(0, 15)8 = (0.001101)2 = (0, 1101) ∗ 2−2

(1, 5)8 = (001, 101)2 = 0, 1101 ∗ 21

(0, 15)8 + (1, 5)8 = (0.1101) ∗ 2−2 + 0, 1101 ∗ 21

= 21(0, 1101 ∗ 2−3 + 0, 1101) = 21(0, 0001101 + 0, 1101) = 21 ∗ 0, 1110101Le signe S = 0,Exposant e = 1 en complément à 2→ 0001Mantisse M = 1110101 sur 6 bits → 111010

CU-Ghardaia Groupe (MI) 2012 Page 11/42

Page 13: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Donc le résultat sera codé par la chaîne → 00001111010

1.3.4 La norme IEEE 754

Cette norme dé�nit un format standardisé des nombres �ottants tel queN = ±1,M ∗ 2±e, selon 3 précisions. Nous présentons ici deux seulement.La première, dite simple précision, est codée sur 32 bits : 1 bit pour le signe,l'exposant biaisé (en exess +127) est codé sur 8 bits, la mantisse sur 23 bits,quant à la deuxième dite double précision est codée sur 64 bits : 1 bit pourle signe, l'exposant biaisé (en exess +1023) est codé sur 11 bits, la mantissesur 52 bits . Ces deux formats sont illustrés respectivement ci-après :

Signe︸ ︷︷ ︸1 bit

Exposant biaisé (xs+127)︸ ︷︷ ︸8 bits

Mantisse-normalisée (1 bit caché)︸ ︷︷ ︸23 bits

Signe︸ ︷︷ ︸1 bit

Exposant biaisé (xs+1023)︸ ︷︷ ︸11 bits

Mantisse-normalisée (1 bit caché)︸ ︷︷ ︸52 bits

Exemple : Codons (−10, 125)10 en format IEEE-754, simple précision :(−10, 125)10 = −(1010, 001)2 = −1, 010001 ∗ 23

Le signe S = 1,Exposant e = 3 biaisé à 127→ 3 + 127 = 130→ 10000010Mantisse M = 010001 à compléter sur 23 bits → 01000100000000000000000Donc le résultat sera codé par la chaîne → 1′10000010′01000100000000000000000Le standard IEEE 754, prévoit aussi les codages spéciaux suivants :

Exposant Mantisse Correspondance Remarques0 0 0 Zéro0 6= 0 ±(0,M) ∗ 2−126 Nbre dénormalisés(plus petits)

6= 0 et 6= 11111111 Qlq ±1,M ∗ 2e−biais Selon le signe11111111 0 ±∞ Selon le signe11111111 6= 0 NaN Not a Number (Erreurs)

1.4 Autre codages

Il existe plusieurs codages pour les di�érents types de données. Ce courslimité en durée ne peut les couvrir tous, on se limitera donc à quelque-uns.

CU-Ghardaia Groupe (MI) 2012 Page 12/42

Page 14: Représentation des informations

Structure Machine Pour L1 Dpt. MI

1.4.1 Le codage BCD (Binary-Coded Decimal)

Ce code, pondéré(8421), combine le décimal et le binaire dans une seulereprésentation appelée Décimal Codé Binaire (DCB). Il a l'avantage, danscertaines situations ( les entrées/sorties E/S sont plus nombreuses que lesopérations de calcul), d'éviter les opérations coûteuses de conversion (décimal→ binaire). Ici on fait correspondre à chaque chi�re d'un nombre en décimalson équivalent en binaire sur 4 bits, donc les seules combinaisons possiblessont celles associées aux chi�res de 0..9 càd 0000..1001.Dans les opérations arithmétiques en BCD, Il est parfois nécessaire de corrigerle résultat en ajoutant(soustrayant) 6.Exemple : (783)10 = (0111′1000′0011)BCD

1.4.2 Le code Excess3, (XS3)ou STIBITIZ

Un code non pondéré dans lequel on ajoute 3 à chaque chi�re puis conver-tir le résultat en binaire. Par rapport à BCD, XS(N) = BCD(N) + 3Dans les opérations arithmétiques en XS3, Il est parfois nécessaire de corrigerle résultat en ajoutant(soustrayant) 3.Exemple : (783)10 = (1010′1011′0110)XS3

1.4.3 Le code Gray ou binaire ré�échi

Un code non pondé, où deux nombres consécutifs ne di�èrent que d'unseul bit. Dans le tableau suivant, on donne les 16 premiers nombres de cecode.

1.4.4 Codage des caractères

Pour le codage des caractères, le code ASCII(American Standard Codefor Information Interchange) a été introduit, comme nous avons vu en S1.Un caractère est codé sur 8 bits (ce qui donne 256 caractères reprsentables).Actuellement on utilise un code plus étendu, représenté sur 16 bits(65536)caractères codables, appellé UNICODE, compatible avec le code ASCII. Letableau ci-dessous montre les codes ASCCII sur 7 bits comme initialementdé�ni.

CU-Ghardaia Groupe (MI) 2012 Page 13/42

Page 15: Représentation des informations

Structure Machine Pour L1 Dpt. MI

latex/gray.png latex/gray.pdf

Figure 1.1 � Le Code Gray

latex/ascii.png latex/ascii.pdf

Figure 1.2 � Le Code ASCII

CU-Ghardaia Groupe (MI) 2012 Page 14/42

Page 16: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Chapitre 2

Algèbre de Boole et Simpli�cation

de Fonctions Logiques

Objectif : Prendre connaissance de la théorie et les techniques permet-tant la synthèse e�cace de circuits logiques.

2.1 Préambule

L'algèbre de Boole, l'algèbre logique, ou encore l'algèbre binaire a étéfondée par George BOOLE(1815-1864) un mathématicien anglais, puis dé-veloppée et perfectionnée par l'allemand Ernst SHRÖDER(1841-1902). Cestravaux n'ont pas connu d'intérêt que 70 ans plus tard, lorsque ClaudeSHANNAN(1916-2001), un ingénieur américain, montra l'utilité de cet al-gèbre dans la construction des machines à relais(état d'un relais 1 : fermé ;0 : ouvert). L'extension à d'autres domaines a été ensuite adoptée(circuitslogiques ou arithmétiques, systèmes automatiques, de télécommunication,hydrauliques...).Dans cet algèbre, on manipule des propositions ou des termes logiques pou-vant prendre deux états vrai ou faux correspondants aux deux valeurs 1 et0. Les opérateurs ET , OU , NON deviennent des opérateurs algébriques demultiplication, d'addition et de complémentation.

CU-Ghardaia Groupe (MI) 2012 Page 15/42

Page 17: Représentation des informations

Structure Machine Pour L1 Dpt. MI

2.2 Dé�nitions

2.2.1 Variable logique

Une variable logique est une grandeur ou un terme pouvant prendrecomme valeur deux états Vrai ou Faux (correspondantes aux constantes 1ou 0). Une variable logique sera notée par une des lettres de l'alphabet : a,b, x, y...Exemple :

Une Lampe : notée→ l : Allumée(l=1) ; Éteinte(l=0)Un Robinet : notée→ r : Ouvert(r=1) ; Fermé(r=0)

2.2.2 Opération unaire, binaire, n-aire

Une opération unaire est une opération admettant un seul argument ouopérande, elle est dite binaire si elle accepte deux opérandes, et en généraln-aire si elle admet n agruments en entrée.Exemple :

unaire : comme le moins unaire (-) (opposé), ou la valeur absolue (||)binaire : comme l'addition de deux entiers, la composition de deux fonctions

2.3 Algèbre de Boole

Une algèbre de Boole est un sixtuple (B, .,+, 1, 0, ), où B est un en-semble non vide sur lequel sont dé�nies deux opérations binaires(.) et (+) etune autre unaire ( ) et deux constantes 0 et 1 ayant les propriétés suivantes :

1. (.) et (+) sont : ∀ a, b, c ∈ B :

Associatives : a.(b.c) = (a.b).c a+ (b+ c) = (a+ b) + c

Commutatives : a.b = b.a a+ b = b+ a

Idempotentes : a.a = a a+ a = a

Véri�ant la loi de l'absorption : a.(a+ b) = a a+ a.b = a

2. (.) et (+) sont distributives l'une par rapport à l'autre :

Distributivité : a.(b+ c) = a.b+ a.c a+ (b.c) = (a+ b).(a+ c)

CU-Ghardaia Groupe (MI) 2012 Page 16/42

Page 18: Représentation des informations

Structure Machine Pour L1 Dpt. MI

3. 1 est l'élément neutre pour l'opération (.) et 0 l'est pour (+)

Éléments neutres : a.1 = a a+ 0 = a

4. L'opération unaire (-) dé�nie la complémentation :

Le complément : a.a = 0 a+ a = 1

2.3.1 Fonction logique

Une fonction logique est une correspondance faisant intervenir plusieursvariables logiques (n variables) et les opérations : .,+, , ayant un resultatlogique dans {0, 1}.

f : {0, 1}n −→ {0, 1}X = (x1, ..., xn) −→ f(X)

une fonction logique f fait correspondre à une combinaison (parmi 2n pos-sibles) une valeur dans {0,1}. Elle peut être représentée soit :

. Algébriquement f(a, b, c) = a.b+ b.c

. Tabulaire (par sa table de vérité TV)

. ou toute autre forme : graphique, en langage naturel...Exemple :

Soit la fonction dé�nie par sa TV suivante :

a b c F0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 11 0 1 11 1 0 01 1 1 0

f(a, b, c) = abc+ abc+ ab.

2.3.2 Précédence des opérateurs et notation

L'opérateur (.) est souvent omis dans les expressions, on notera alors abaulieu de a.b. En outre, Dans l'évaluation des expressions booléennes l'ordredes opérations est le suivant :

1. Les parenthèses ()

CU-Ghardaia Groupe (MI) 2012 Page 17/42

Page 19: Représentation des informations

Structure Machine Pour L1 Dpt. MI

2. Le complément ( ) (Non)

3. L'opération . (Et)

4. L'opération + (Ou)

2.3.3 Postulats et autres lois utiles

0.0 = 0 1 + 1 = 1

0.1 = 0 1 + 0 = 1

1.1 = 1 0 + 0 = 0

0 = 1 1 = 0 ¯a = a Involution

a.0 = 0 a+ 1 = 1

a.b = a+ b a+ b = ab (Demorgan)

a.b...z = a+ b...+ z a+ b+ ...+ z = ab...z (Demorgan généralisé)

(a+ b)(a+ b) = a a+ ab = a+ b

Exercice :

Soient les fonctions logiques suivantes :

f1 = abc

f2 = a+ bc

f3 = abc+ abc+ ab

f4 = ab+ ac

Établir les TV de chacune des fonctions, montrer en outre que f3 = f4

2.3.4 Principe de dualité

Tous les théorèmes (ou énoncés) de l'algèbre de Boole restent vrais si lesopérateurs .,+ et les éléments 0,1 sont interchangés.Exemple :

Considérons le théorème : a+a=aPreuve :

a+ a = a.1 + a.1 Élement neutre du .

a+ a = a(1 + 1) Distributivité du ./+

a+ a = a.1 Postulat 1+1=1

a+ a = a Élement neutre du .

CU-Ghardaia Groupe (MI) 2012 Page 18/42

Page 20: Représentation des informations

Structure Machine Pour L1 Dpt. MI

latex/not.png latex/not.pdf

Figure 2.1 � Inverseur

Preuve faite, on peut deduire donc sans le démontrer le théorème dual :a.a=aRemarque :

La preuve des relations booléennes peut se faire soit en usant les postulatset les lois de l'algèbre de Boole, c'est la méthode algébrique. Dans cette mé-thode il n'ya pas une approche unique et le travail de démonstration estlaissé à l'intuition. La deuxième méthode se base sur les tables de vérités, ilsu�t de montrer que les deux termes d'une expressions possèdent les mêmesvaleurs pour toutes les combinaisons de variables logiques formant la relation.

2.4 Opérateurs et portes logiques (Logic Gates)

Nous présentons dans cette section en parallèle, les opérateurs logiques.,+, , et les portes logiques associées, qui constituent les composants de basepour la réalisation de fonctions logiques.

2.4.1 Non(NOT), Inverseur

Opérateur unaire utilisé pour la négation de son entrée.

Non(a) = aa a0 11 0

La porte logique correspondante est l'inverseur, il est schématisé comme suit :

2.4.2 Et(AND)

Opérateur binaire réalisant la conjonction (et logique) de ses entrées.

Et(a, b) = ab

a b a.b0 0 00 1 01 0 01 1 1

CU-Ghardaia Groupe (MI) 2012 Page 19/42

Page 21: Représentation des informations

Structure Machine Pour L1 Dpt. MI

latex/and.png latex/and.pdf

Figure 2.2 � La Porte ET

latex/or.png latex/or.pdf

Figure 2.3 � La Porte OU

La porte logique correspondante est le AND, il est schématisé comme suit :

2.4.3 Ou(OR)

Opérateur binaire réalisant la disjonction (ou logique) de ses entrées.

Ou(a, b) = a+ b

a b a+ b0 0 00 1 11 0 11 1 1

La porte logique correspondante est le OR, il est schématisé comme suit :

2.4.4 Non Et(NAND)

Opérateur binaire réalisant le Non Et( négation du produit logique) deses entrées.

NonEt(a, b) = a.b = a ↑ b

a b a.b0 0 10 1 11 0 11 1 0

La porte logique correspondante est le NAND, il est schématisé comme suit :

latex/nand.png latex/nand.pdf

Figure 2.4 � La Porte NAND

CU-Ghardaia Groupe (MI) 2012 Page 20/42

Page 22: Représentation des informations

Structure Machine Pour L1 Dpt. MI

latex/nor.png latex/nor.pdf

Figure 2.5 � La Porte NOR

latex/xor.png latex/xor.pdf

Figure 2.6 � La Porte XOR

2.4.5 Non Ou(NOR)

Opérateur binaire réalisant le Non Ou(négation de la somme logique) deses entrées.

NonOu(a, b) = a+ b = a ↓ b

a b a+ b0 0 10 1 01 0 01 1 0

La porte logique correspondante est le NOR, il est schématisé comme suit :

2.4.6 Ou Exclusif(XOR)

Opérateur binaire réalisant la non égalité ou non équivalence de ses en-trées.

OuExcusif(a, b) = a⊕ b = ab+ ab = (a+ b)(a+ b)

a b a⊕ b0 0 00 1 11 0 11 1 0

La porte logique correspondante est le XOR, il est schématisé comme suit :

2.4.7 Non Ou-Exclusif(XNOR)

Opérateur binaire réalisant l'égalité ou l'équivalence de ses entrées.

NonOuExcusif(a, b) = a⊕ b = ab+ab = (a+b)(a+ b)

a b a⊕ b0 0 10 1 01 0 01 1 1

La porte logique correspondante est le XNOR, il est schématisé comme suit :Remarque sur les portes logiques à plusieurs entrées : Les portes

CU-Ghardaia Groupe (MI) 2012 Page 21/42

Page 23: Représentation des informations

Structure Machine Pour L1 Dpt. MI

latex/nand3.png latex/nand3.pdf

Figure 2.7 � La Porte NAND3

latex/logigramme.png latex/logigramme.pdf

Figure 2.8 � Un Logigramme

logiques, excepté l'inverseur, peuvent avoir plus de deux entrées. Faites at-tention à l'expression de la sortie notamment si elle est inversée.

2.4.8 Opérateurs complets (universels)

Les trois opérateurs (.,+, ) permettent d'exprimer n'importe quelle fonc-tion logique. On dit que ce groupe d'opérateur est un groupe complet ouuniversel (mais aucun des 3 ne forme seul un groupe complet).On veri�era aisément que les groupes suivants sont aussi universels : (+, ),(., ), (NAND),(NOR). Pour le démontrer il su�t d'exprimer les 3 opérateursde base (.,+, ) par les constituant de chaque groupe.Exemple : l'opérateur universel NAND

Exprimons les 3 opérateurs (.,+, ) par le NAND :

a = a.a = a ↑ a

a.b = a.b = (a ↑ b) ↑ (a ↑ b)

a+ b = a.b = (a ↑ a) ↑ (b ↑ b)

2.4.9 Logigramme

Le logigramme est le schéma logique d'une fonction booléenne, en rem-plaçant chaque opérateur logique par la porte logique correspondante.f(A,B,C,D) = (A+B)⊕ CD, son logigramme est le suivant :Exercice :

Donner le logigramme des fonctions suivantes :f(a, b, c) = ab(c+ b) + abcf(a, b, c) = (a+ b)(a+ c)(b+ c)

CU-Ghardaia Groupe (MI) 2012 Page 22/42

Page 24: Représentation des informations

Structure Machine Pour L1 Dpt. MI

2.5 Formes canoniques

Une fonction logique peut être exprimée algébriquement sous forme d'équa-tions quelconques, mais il existe deux formes particulières, dites formes cano-niques ou normales. Elle reposent sur les notions de mintermes et maxtermes.

2.5.1 Mintermes et Maxtermes

On appelle minterme, ou produit standard, le produit logique de toutesles variables apparaissant chacune sous la forme normale ou complémentée.De même, On appelle maxterme, ou somme standard, la somme logique detoutes les variables apparaissant chacune sous la forme normale ou com-plémentée. Pour n variables booléennes, il existe 2n mintermes et le mêmenombre de maxtermes.Exemples : Pour les 3 variables logiques a, b, c nous avons :

abc → minterme

abc → minterme

ac → n'est pas un minterme (b n'apparaît pas)

a+ b+ c → maxterme

a+ b+ c → maxterme

a+ b → n'est pas un maxterme(c n'apparaît pas)

2.5.2 Formes normales

Une fonction est sous forme canonique (FC) ou forme normale (FN) sitous ses termes sont des mintermes (maxtermes).Une fonction peut être exprimée à partir de sa TV :

. Elle est égale à la somme des mintermes pour lesquels elle vaut 1(f =∑mi), c'est la première forme canonique ou normale (forme disjonc-

tive), on dit aussi somme de produits : dans un minterme si une variablex = 1, on la note x, sinon on la note x

. Elle est égale au produit des maxtermes pour lesquels elle vaut 0(f =∏Mi), c'est la deuxième forme canonique ou normale (forme conjonc-

tive), on dit aussi produit de sommes : dans un maxterme si une variablex = 0, on la note x, sinon on la note x

. Les deux formes étant équivalente, on choisit la forme qui donne l'ex-pression la plus simple

Exemple :

Soit la fonction suivante dé�nie par sa TV ci-après :

CU-Ghardaia Groupe (MI) 2012 Page 23/42

Page 25: Représentation des informations

Structure Machine Pour L1 Dpt. MI

a b c F0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 11 1 1 1

f(a, b, c) = abc+ abc+ abc+ abc+ abc→ forme normale disjonctivef(a, b, c) = (a+ b+ c)(a+ b+ c)(a+ b+ c)→ forme normale conjonctiveExercices :

1. On dispose de 3 lampes, et on veut réaliser un circuit qui envoie un si-gnale si aumoins 2 des lampes sont allumées. Établir la TV du système,et écrire la fonction de sortie sous les 2 formes canoniques.

2. On désir réaliser un système d'alarme simple, ce système se déclenche(émetun signale) s'il est activé et si l'une des conditions suivantes est satis-faite :. La porte est ouverte,. Les verres sont brisées,. Un mouvement est détectéDonner les variables d'entrée et de sortie, établir la TV, et écrire lasortie sous la première forme canonique.

Synthèse de circuits logiques

Comment trouver le logigramme d'une fonction logique à partir de sadé�nition ?

1. Trouver l'expression de la fonction :. Comprendre la fonction. Identi�er les variables d'entrée. Identi�e la sortie. Établir la TV. Donner l'expression algébrique

2. Simpli�er (minimiser) l'expression de la fonction. Soit algébriquement. Ou par les méthodes graphiques, ou programmables.

3. Réaliser la fonction avec le minimum de portes logiques

CU-Ghardaia Groupe (MI) 2012 Page 24/42

Page 26: Représentation des informations

Structure Machine Pour L1 Dpt. MI

2.6 Simpli�cation de fonctions logiques

La représentation de l'information dans un calculateur repose sur l'al-gèbre de Boole. Il existe un lien direct entre les expressions logiques et leursimplémentations en circuits électroniques. La complexité d'une expressionlogique, décrivant une fonction ou un système, est corrélée à la complexitédu circuit correspondant. Il en résulte que la simpli�cation de l'expressionlogique permet d'obtenir un circuit minimal ayant un coût réduit et des per-formances meilleures.L'objectif de la simpli�cation est donc :

. Réduire au maximum l'expression de la fonction, en minimisant lenombre de termes et/ou de variables, a�n d'obtenir un circuit simple àfaible consommation énergitique et surface minime.

. Minimiser le coût de sa réalisation (peu de composants et portes lo-giques).

. Accroître les performances du crcuit optimal réalisé (temps de réponse).Remarques :

. Dans la littérature on utilise interchangeablement les termes : simpli�-cation, réduction, minimisation ou optimisation de fonctions logiques.

. C'est grâce au travaux de Shannon, que le passage de la représentationthéorique de l'information à son implémentation en circuit électroniqueest devenu possible.

Il existe plusieurs méthode de simpli�cation :. La méthode algébrique.. Les méthodes graphiques (Tableau Karnaugh, diagramme de venn).. Les méthodes automatiques ou programmables.

2.6.1 La simpli�cations algébrique

Basée sur lois et les propriétées de l'algèbre de Boole. On procède pro-gressivement à la minimisation des termes et/ou des variables de l'expressionlogique. Il n'existe pas d'approche unique, la méthode repose sur l'intuition,l'habilité et l'expérience, et il est souvent di�cile de savoir que le résultatobtenu est minimal.Qlq règles utilisées :

ab+ ab = a (a+ b)(a+ b) = aa+ ab = a a(a+ b) = aa+ ab = a+ b a(a+ b) = abExemples :

1. Simpli�er l'expression suivante : xyz + xyz + xyztxyz + xyz + xyzt = xy(z + z) + xyzt

CU-Ghardaia Groupe (MI) 2012 Page 25/42

Page 27: Représentation des informations

Structure Machine Pour L1 Dpt. MI

= xy + xyzt= x(y + yzt)= xy + xzt

2. Simpli�er l'expression de l'exercice des 3 lampes : abc+ abc+ abc+ abcabc+ abc+ abc+ abc = abc+ abc+ abc+ abc+ abc+ abc= bc(a+ a) + ab(c+ c) + ac(b+ b)= ab+ ac+ bc

3. Simpli�er l'expression du système d'alarme :AP V M +APV M +APVM +APV M +APV M +APV M +APVM= A(P V M + P V (M + M) + PV (M + M) + PV (M + M))= A(P V M + P V + PV + PV )= A(P V M + P V + P )= A(P V M + P + V )= A(P + V M + V )= A(P + V +M)

Exercice : Simpli�er : (ab+ c)(ab+ c)(ab+ c)(ab+ c)

2.6.2 La simpli�cations par le tableau de Karnaugh(veitch)

Le tableau de Karnaugh (TK) est une méthode simple de simpli�cationde fonctions logiques, c'est une forme graphique( ou visuelle) de la TV, oùchaque case représente un minterme(combinaison ou une ligne de la TV).Cette méthode repose sur la ralation b+ b = 1 dans l'élimination de variables.On transforme donc la TV de la fonction à simpli�er sous une forme qui meten évidence ce type de relations dans des cases adjacentes.

Cases adjacentes

deux cases sont dites adjacentes si seulement une seule variable changed'état (de x à x ou inversement) dans les mintermes qu'elles représentent. i.equ'une seule variable fait la di�érence entre ces cases.Exemples : ab et ab sont 2 mintermes adjacents, de même que pour abc etabc

Principe

Dans la procédure de simpli�cation, la variable qui change d'état entredeux cases sera donc éliminée. Plus généralement, l'approche consiste à re-grouper tout ensemble de cases à 1 adjacentes. Ces ensembles ont un nombrede cases égale à une puissance de 2 (1,2,4,8,16).Donc les plus grands ensembles donnent les expressions les plus simples (car

CU-Ghardaia Groupe (MI) 2012 Page 26/42

Page 28: Représentation des informations

Structure Machine Pour L1 Dpt. MI

on élimine plus de variables : pour 2k cases on élimine k variables).Remarque : Les recouvrements dans les regroupements de cases sont auto-risés.

TK à 2 variables

Avec 2 variables, nous aurons 22 soit 4 mintermes

a→b ↓

f(a, b)

ab ab

ab ab

f1(a, b)

0 1

1 1f1(a, b) = ab+ ab+ ab = a+ b

�� � ��� ba

0 1

0

1

a→b ↓

TK à 3 variables

Avec 3 variables, nous aurons 23 soit 8 mintermes. Reprenons l'exempledes 3 lampes.

f2(a, b, c)

0 0

0 1

01

11

0

1

00 01 11 10

�� � �� � ���

ab→c ↓

f2(a, b, c) = ab+ ac+ bc

Soit le TK à 3 variables suivant :

f3(a, b, c)

0 1

1 1

01

01

0

1

00 01 11 10'&$%�� �

ab→c ↓

f3(a, b, c) = ac+ b

TK à 4 variables

Prenons l'exercice du système d'alarme, nous avons 4 variables (A,P,V,M) :16 mintermes.

CU-Ghardaia Groupe (MI) 2012 Page 27/42

Page 29: Représentation des informations

Structure Machine Pour L1 Dpt. MI

f4(P, V,M,A)

0 0

0 1

00

11

0 0

1 1

00

11

00

01

11

10

00 01 11 10

�� � '&$%

'&$%

PV →MA ↓

f4(A,P, V,M) = A(P + V +M)

Un autre exemple :

f5(A,B,C,D)

1 0

0 1

10

11

1 0

0 0

10

10

00

01

11

10

00 01 11 10�

�� � ����

����

AB →CD ↓

f5(A,B,C,D) = AB + BD +BCD

TK à 5 variables

Pour 5 variables, le TK comporte alors 25 = 32 cases. On peut simpli�erces fonctions soit en construisant et juxtaposant deux tableaux de quatrevariables : B,C,D,E la cinquième variable A distingue les deux la première(A=0) et la deuxième (A=1), ou en utilisant la technique du TK à variableinscrite.Exemple :

Soit la fonction à 5 variables dé�nie par l'équation : f10 =∑

(0, 1, 2, 3, 6, 10, 11, 14, 16, 17, 18, 19, 26, 27).

1. Deux TK à 4 variables juxtaposés.

CU-Ghardaia Groupe (MI) 2012 Page 28/42

Page 30: Représentation des informations

Structure Machine Pour L1 Dpt. MI

1 0

1 0

00

00

1 1

1 0

11

10

00

01

11

10

00 01 11 10

�� �

BC →DE ↓

��

1 0

1 0

00

00

1 0

1 0

10

10

00

01

11

10

00 01 11 10�

BC →DE ↓

��

A(A = 0) A(A = 1)f6(A,B,C,D) = BC + CD + ADE

2. Un TK à variable inscriteUn TK à variables inscrites est un TK dans lequel on inscrit une ou plu-sieurs des variables indépendantes à l'intérieur du tableau. Lorsqu'unevariable se trouve dans une cellule d'un TK, il faut associer à la fonc-tion le minterme résultant du produit logique de cette variable par leminterme correspondant à la case considérée.

1 0

1 1

10

11

0 0

E E

00

00

00

01

11

10

00 01 11 10

�� � '&$%

��

AB →CD ↓

f6(A,B,C,D) = BC + CD + ADE

Règles à respecter dans les regroupements

1. Les regroupements doivent avoir la forme d'un rectangle (pas d'adja-cence dans les diagonaux)

2. Toutes les cases d'un rectangle doivent contenir des 1

3. le nombre de cases d'un groupe doit être égale à une puissance de 2

4. Le TK est cyclique et symetrique, il peut être vu comme un cylindre du2 cotés gauche-droit et haut-bas, donc les cases des 4 extremités sontadjacentes

CU-Ghardaia Groupe (MI) 2012 Page 29/42

Page 31: Représentation des informations

Structure Machine Pour L1 Dpt. MI

5. Les recouvrements sont autorisés entre les rectangles, mais sans redon-dance : càd que chaque rectangle doit avoir aumoins une case qui luisoit propre

6. Chaque rectangle doit être maximal

7. Chaque 1 doit être couvert par au moins un rectangle

Soit à simpli�er le TK à 4 variables suivant :

f7(A,B,C,D)

1 1

1 1

10

11

1 1

1 1

10

11

00

01

11

10

00 01 11 10�

$

%

'

&

$

%

'&

$%

AB →CD ↓

f6(A,B,C,D) = A+ B +D

Pseudo algorithme de regroupement

. Choisir une case à 1 et le recouvrir par le plus grand groupe possiblede cases à 1 adjacentes

. Tant que'il reste des cases à 1 non encore recouvertes faire

. Choisir une case à 1 non encore recouverte et le recouvrir avec lemaximum de cases à 1 non encore recouverte.

. Supprimer les groupements redondants.Exercices :

1. Simpli�er le TK suivant à 4 variables A,B,C,D :

latex/ex7.png latex/ex7.pdff8(A,B,C,D) = BD + AC + CD

2. Identi�er les erreurs dans les regroupements opérés dans le TK si-dessous :

CU-Ghardaia Groupe (MI) 2012 Page 30/42

Page 32: Représentation des informations

Structure Machine Pour L1 Dpt. MI

latex/ex8.png latex/ex8.pdf. le nombre de cases dans le premier bloc à gauche 6=puissance de 2. le rectangle à droite contient une case à 0. le rectange du milieu est redondant

Cas des fonctions incomplètement dé�nie

Il ya des situations où la fonction étudiée f ne soit pas totalement dé�-nie, càd, que sa valeur pour certaines combinaisons n'est pas spéci�ée. Cescombinaisons sont en pratique tel que :

. ne se présenent jamais,

. elles sont sans intérêt,

. interdites,

. ou facultativesLa valeur de f pour ces combinaisons n'est ni 0 ni 1, on la note X, φ, *, ou d(pour don't care). Dans la procédure de simpli�cation par TK, on considèreces cas indi�érent soit comme des 1 ou des 0 selon le remplacement qui o�replus de simpli�cation.Remarque :

Dans la simpli�cation par TK des cas indé�nis :

1. Ne charcher pas à inclure tous les cas non spéci�és,

2. Ne pas former des regroupements qui contiennent uniquement des casnon spéci�és.

Exemples :

1. Examiner les regroupements dans le TK ci-après :

latex/ex9.png latex/ex9.pdff9 = AB + CD + AC +BC +BD

CU-Ghardaia Groupe (MI) 2012 Page 31/42

Page 33: Représentation des informations

Structure Machine Pour L1 Dpt. MI

2. Simpli�ons la fonction d'un Led de l'a�cheur 7 segments, qui convertitun nombre binaire sur 4 bits en un vecteur de 7 bits qui commandel'a�cheur. La spéci�cation de ce convertisseur nous indique qu'il fautconvertir seulement les nombres de 0 à 9, càd que pour les nombres de10 à 15 le fonctionnement de ce circuit n'est dé�nie.

latex/xseg.png latex/xseg.pdf

Simpli�cation par regroupement des maxtermes

Dans la simpli�cation par TK, on peut procéder inversement, càd, onregroupe les cases à 0 aulieu des cases à 1. On obtient ainsi une expressionen deuxième forme canonique (produits de sommes). Les variables dans lestermes à 0 seront représentées par leurs formes normales, celles à 1 par leursformes complémentées.Exemples :

1 1

0 1

10

00

1 1

0 0

10

00

00

01

11

10

00 01 11 10

�� �

��

AB →CD ↓

f10(A,B,C,D) = (A+ B)(C + D)(B + D)

Récapitulons

La méthode de simpli�cation par TK est pratique pour les fonctions lo-giques ayant jusqu'à 5 ou 6 variables, au-delà la simpli�cation par cette mé-thode graphique devient moins évidente et très di�cile, on préfère dans cescas d'autres méthode automatiques et programmables telleque : la méthodeQUINE McCLUSKEY.

CU-Ghardaia Groupe (MI) 2012 Page 32/42

Page 34: Représentation des informations

Chapitre 3

Circuits Combinatoires

Objectif : Concevoir des circuits combinatoires

3.1 Introduction

Un circuit combinatoire est un circuit logique pour lequel les sorties nedépendent que des entrées (à chaque con�guration des entrées correspondune con�guration des sorties et une seule). Le circuit combinatoire est dé�nilorsque son nombre d'entrées m, son nombre de sorties n ainsi que l'état dechaque sortie en fonction des entrées ont été précisés, souvent, via une TV.L'examen des schémas logiques combinatoires complexes montre qu'on peutdistinguer deux grandes classes de fonctions :

. Des fonctions caractéristique du problème à résoudre et que l'on réa-lise habituellement avec des opérateurs élémentaires : Inverseurs, AND,OR, NAND, NOR....

. Des fonctions communes à de nombreux problèmes combinatoires, réa-lisables bien sûr avec les opérateurs élémentaires, mais que les construc-teurs, en raison de leur fréquence d'emploi, ont intégré dans des boitiers.

Ces fonctions communes portent sur plusieurs éléments binaires à la fois. Ils'agit de fonctions standards suivantes :

1. Arithmétiques : additionneurs, soustracteurs, multiplieurs,

2. Comparaison

3. Transcodage de l'information

4. Aiguillage de l'information

33

Page 35: Représentation des informations

Structure Machine Pour L1 Dpt. MI

3.2 Circuits Arithmétiques

3.2.1 Additionneurs

On désire concevoir un circuit capable de calculer la somme de deuxnombres A et B de n bits exprimés en RBNS. Le schéma bloc de ce circuitest le suivant : A,B, entrées sur n bits, S sortie la somme de n bits et Rn laretenue.

Exemples : Soit à additionner les deux nombres de 4 bits : 1001 et 00110 0 1 1

1 0 0 10 0 1 1

0 1 1 0 0

L'addition est réalisée d'un rang à un autre en commençant

par le poids le plus faible. Chaque addition à un rang i (ai + bi) génère unesomme si et une retenue si qui sera propagée au rang suivant. Le dernierrang (de plus fort poids) peut générer aussi une retenue sn.

Demi-additionneur

Étudiant l'addition sur le rang de faible poids, càd l'étage a0 + b0. Cecircuit a 2 bits en entrée (a0 et b0) et 2 bits en sortie (s0 et r0). Il calcule lasomme de 2 nombres sur 1 bit chacun.

a0 b0 s0 r00 0 0 00 1 1 01 0 1 01 1 0 1

s0 = a0 ⊕ b0 et r0 = a0.b0 latex/hadd.png

latex/hadd.pdf

Ce circuit ne tient pas compte de la retenue provenant du rang inférieur. Ilest dit demi-additionneur (1/2 ADD) ou semi-additionneur (half adder).

Additionneur complet

Pour réaliser le circuit additionneur n bits on adopte le principe suivant :Sur 4 bits à titre ilustratif :

CU-Ghardaia Groupe (MI) 2012 Page 34/42

Page 36: Représentation des informations

Structure Machine Pour L1 Dpt. MI

r4 r3 r2 r2 r1a4 a3 a2 a1 a0b4 b3 b2 b1 b0

r4 s4 s3 s2 s1 s0

Soit les bits de rang i (ai et bi), la somme si s'obtient à partir des bits ai etbi et de la retenue du rang précédent ri−1. Le circuit réalisant cette additionest dit additionneur complet(full adder), car il tient compte de la retenuepropagée du rang inférieur. L'additionneur global (sur n bits) est réalisé parla mise en cascade des cellules d'additionneurs complets dé�ni comme suit.

ai bi ri−1 si ri0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

si = ai ⊕ bi ⊕ ri−1 et ri = ai.bi + ri−1(ai ⊕ bi)

latex/add.png latex/add.pdf

3.2.2 Soustracteurs

Voir TD

3.2.3 Multiplieurs

Voir TD

3.2.4 Comparateurs

On désire réaliser un circuit qui compare deux nombres A , B exprimésen RBNS. i.e un circuit capable de calculer les trois fonctions suivantes :

. fe = (A = B)

. fs = (A > B)

. fe = (A < B)

CU-Ghardaia Groupe (MI) 2012 Page 35/42

Page 37: Représentation des informations

Structure Machine Pour L1 Dpt. MI

Ce circuit est réalisable en comparant chacun des bits pris deux à deux.Illustrons le principe de ce circuit sur deux bits : A = (a1a0) et B = (b1b0)A est égal à B si (a1 = b1) et (a0 = b0)A est supérieur à B si (a1 > b1) ou si (a1 = b1) et (a0 > b0)A est inférieur à B si (a1 < b1) ou si (a1 = b1) et (a0 < b0)Pour les bits de rang i, nous pouvons écrire les expressions suivantes :

(ai = bi) = ai ⊕ bi(ai > bi) = aibi(ai < bi) = aibi

D'où

fe = a1 ⊕ b1.a0 ⊕ b0fs = a1b1 + a1 ⊕ b1.a0b0fi = a1b1 + a1 ⊕ b1.a0b0

3.3 Circuits de transcodage

3.3.1 Encodeurs

Un encodeur( ou codeur) est un dispositif qui traduit une entrée activeparmi 2n en un code binaire sur (n bts). Si plusieurs entrées sont actives, onleur a�ecte une priorité, de manière que le circuit réalise l'opération seulementsur la sortie la plus prioritaire.Exemples : Encodeur prioritaire binaire 8 vers 3 (GS : indique qu'une entréeest active)

latex/cod.png latex/cod.pdf

3.3.2 Décodeurs

Le décodeur est le circuit inverse de l'encodeur, il a pour rôle d'activerexclusivement une des 2n sorties, correspondante au code binaire présent surl'entrée sur (n bits). Le décodeur est noté DEC n → 2n Le décodeur 2n

est donc équivalent à un démultiplexeur avec son entrée toujours à 1. Les

CU-Ghardaia Groupe (MI) 2012 Page 36/42

Page 38: Représentation des informations

Structure Machine Pour L1 Dpt. MI

convertisseurs de codes ( ou transcodeurs) sont une variante de décodeurs,qui donnent un code sur y bits à un code en entrée sur x bits.La �gure suivante montre un Dec 1→4 (G est le signal d'activation)

latex/dec.png latex/dec.pdf

3.4 Circuits d'aiguillage

3.4.1 Multiplexeurs

Le multiplexeur est un circuit fréquement utilisé, il a 2n entrées et une sor-tie contrôlée par n ligne de sélection ou de commande (on dit aussi d'adresse).Son rôle est d'aiguiller une des énrées vers la sortie, c'est pour cette raisonqu'il est appelé selecteur de données.Dans la �gure suivante un multiplexeur 4 vers 1 (Mux 4→ 1) est montré. lessélecteurs (s1s0) spéci�ent l'entrée à diriger vers la sortie z :Si s1s0=00 la sortie vaut I0Si s1s0=01 la sortie vaut I1Si s1s0=10 la sortie vaut I2Si s1s0=11 la sortie vaut I3

latex/mux.png latex/mux.pdf

De plus le multiplexeur n'est opérationnel que si le signal E de validationest actif (E = 1), dans le cas contraire la sortie est 0 quelles que soient lesentrées et les lignes de sélection. La TV de ce circuit est le suivant :

CU-Ghardaia Groupe (MI) 2012 Page 37/42

Page 39: Représentation des informations

Structure Machine Pour L1 Dpt. MI

E s1 s0 z0 x x 01 0 0 I01 0 1 I11 1 0 I21 1 1 13

z = Es1s0I0 + Es1s0I1 + Es1s0I2 + Es1s0I3

latex/mux1.png latex/mux1.pdf

Applications des multiplexeurs

Les multiplexeurs sont largement utilisés. Nopus citons ici quelques ap-plications typiques des multiplexeurs.

. Implémentation des fonctions logiquesLes multiplexeurs peuvent être utilisés dans la réalisation des fonctionslogiques à partir de leurs TV sans l'aide de portes logiques.Réalisons, à titre d'exemple, la fonction f(A,B,C) = BC+AB+ABCpar un Mux 4→ 1.

latex/mux2.png latex/mux2.pdf

CU-Ghardaia Groupe (MI) 2012 Page 38/42

Page 40: Représentation des informations

Structure Machine Pour L1 Dpt. MI

. La conversion parallèle-sériePour réaliser une conversion parallèle/série, on peut utilisé un multi-plexeur dont les entrées sont les données à sérialiser. la sérialisationest obtenue en donnons des valeurs successives (0 à n) aux lignes desélection.

3.4.2 Démultiplexeurs

Le démultiplexeur est le circuit inverse du multiplexeur, il a pour fonctionde distribuer l'information d'entrée vers l'une des 2n sorties, la sélection dela sortie exclusivement concernée étant e�ectuée par n lignes ou variables decommandes.Dans le schéma ci-dessous, on montre un démultiplexeur 1 vers 4 (D : ladonnée à aiguiller, E : signal d'activation)

latex/demux.png latex/demux.pdf

3.5 Générateurs de parité

Les générateurs de parité sont utilisés dans les codes de détection d'erreursen transmission de données. Le but est d'ajouter un bit qui donne le nombrede bits à 1 de l'information à transmettre.

CU-Ghardaia Groupe (MI) 2012 Page 39/42

Page 41: Représentation des informations

Structure Machine Pour L1 Dpt. MI

On présente ici le principe, la TV, et le schéma d'un générateur de paritépour un mot de 3 bits. Il existe de sorte de parité :

. La prité Impaire (I) : est à 1 lorsque le nombre de bits à 1 est impaire

. La prité Paire (P) : est à 1 lorsque le nombre de bits à 1 est paire

A B C P I0 0 0 1 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 0 1

P = AB +BC + AC + ABC = A⊕B ⊕ CI = P = A⊕B ⊕ C

latex/par.png latex/par.pdf

CU-Ghardaia Groupe (MI) 2012 Page 40/42

Page 42: Représentation des informations

Chapitre 4

Circuits Séquentiels

Objectif : Concevoir des circuits séquentiels

41

Page 43: Représentation des informations

Bibliographie

42