Structure Machine pour L1
Slimane OULAD NAOUI
s.ouladnaoui(at)univ-ghardaia.dz
Département des Mathématiques et d'Informat...
Table des matières
1 Représentation de l'Information 3
1.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Structure Machine Pour L1 Dpt. MI
2.4.1 Non(NOT), Inverseur . . . . . . . . . . . . . . . . . . . 19
2.4.2 Et(AND) . . . ....
Structure Machine Pour L1 Dpt. MI
Chapitre 1
Représentation de l'Information
Objectif : Connaître les représentations des ...
Structure Machine Pour L1 Dpt. MI
Dans nos programmes, le choix d'une représentation est xé lors de la dé-
claration (type...
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
...
Structure Machine Pour L1 Dpt. MI
son complément à 1 est le nombre 10010 qui est la représentation de (−13)10
en C1.
Repré...
Structure Machine Pour L1 Dpt. MI
inversement, se fait en complémentant le nombre bit à bit puis en ajoutant
1 au résultat...
Structure Machine Pour L1 Dpt. MI
4. Pour trouver la valeur décimale d'une chaîne (an−1 . . . a0) en C1 on
peut utiliser l...
Structure Machine Pour L1 Dpt. MI
deux nombres négatifs
-9 10111
-4 11100
−13 1 10011 bit de retenue à ne pas considérer
n...
Structure Machine Pour L1 Dpt. MI
1.3.2 Format en virgule ottante
Pour répondre aux limites ci-dessus, une représentation ...
Structure Machine Pour L1 Dpt. MI
Exposant biaisé
Pour éviter à traiter des exposants négatifs, on utilise cette technique...
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 nor...
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...
Structure Machine Pour L1 Dpt. MI
latex/gray.png latex/gray.pdf
Figure 1.1  Le Code Gray
latex/ascii.png latex/ascii.pdf
F...
Structure Machine Pour L1 Dpt. MI
Chapitre 2
Algèbre de Boole et Simplication
de Fonctions Logiques
Objectif : Prendre con...
Structure Machine Pour L1 Dpt. MI
2.2 Dénitions
2.2.1 Variable logique
Une variable logique est une grandeur ou un terme p...
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....
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 e...
Structure Machine Pour L1 Dpt. MI
latex/not.png latex/not.pdf
Figure 2.1  Inverseur
Preuve faite, on peut deduire donc san...
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...
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 ...
Structure Machine Pour L1 Dpt. MI
latex/nand3.png latex/nand3.pdf
Figure 2.7  La Porte NAND3
latex/logigramme.png latex/lo...
Structure Machine Pour L1 Dpt. MI
2.5 Formes canoniques
Une fonction logique peut être exprimée algébriquement sous forme ...
Structure Machine Pour L1 Dpt. MI
a b c F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
f(a, b, c) = abc...
Structure Machine Pour L1 Dpt. MI
2.6 Simplication de fonctions logiques
La représentation de l'information dans un calcul...
Structure Machine Pour L1 Dpt. MI
= xy + x¯yzt
= x(y + ¯yzt)
= xy + xzt
2. Simplier l'expression de l'exercice des 3 lampe...
Structure Machine Pour L1 Dpt. MI
on élimine plus de variables : pour 2k
cases on élimine k variables).
Remarque : Les rec...
b
a
0 1
0
1
a →
b ↓
TK à 3 variables
Avec 3 variables, nous aurons 23
soit 8 mintermes. Reprenons l'exemple
des 3 lampes.
...
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) :...
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
...
AB →
CD ↓
f5(A, B, C, D) = A ¯B + ¯B ¯D + B ¯CD
TK à 5 variables
Pour 5 variables, le TK comporte alors 25
= 32 cases. On ...
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) = ¯B ¯C + ¯CD + ¯AD ¯E
2. Un TK à variable inscrite
Un TK à variables inscrites est un T...
'

$
%
AB →
CD ↓
f6(A, B, C, D) = ¯B ¯C + ¯CD + ¯AD ¯E
Règles à respecter dans les regroupements
1. Les regroupements doivent avo...
Structure Machine Pour L1 Dpt. MI
5. Les recouvrements sont autorisés entre les rectangles, mais sans redon-
dance : càd q...
Structure Machine Pour L1 Dpt. MI
latex/ex8.png latex/ex8.pdf
le nombre de cases dans le premier bloc à gauche =puissance ...
Prochain SlideShare
Chargement dans…5
×

Représentation de l'Information

1 323 vues

Publié le

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

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 323
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
22
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Représentation de l'Information

  1. 1. Structure Machine pour L1 Slimane OULAD NAOUI s.ouladnaoui(at)univ-ghardaia.dz Département des Mathématiques et d'Informatique Centre universitaire de Ghardaia Février 2012
  2. 2. Table des matières 1 Représentation de l'Information 3 1.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Représentation des nombres signés . . . . . . . . . . . . . . . 3 1.2.1 Représnetation signe valeur absolue(SVA) (signed-magnitude) 4 1.2.2 Représentation par le complément à la base diminué(diminished radix complement) . . . . . . . . . . . . . . . . . . . . 5 1.2.3 Représentation par le complément à la base(radix com- plement) . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.4 Arithmétique en complément vrai . . . . . . . . . . . . 8 1.3 Représentation des nombres réels . . . . . . . . . . . . . . . . 9 1.3.1 Format en virgule xe . . . . . . . . . . . . . . . . . . 9 1.3.2 Format en virgule ottante . . . . . . . . . . . . . . . . 10 1.3.3 Arithmétique en virgule ottante . . . . . . . . . . . . 11 1.3.4 La norme IEEE 754 . . . . . . . . . . . . . . . . . . . . 12 1.4 Autre codages . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.1 Le codage BCD (Binary-Coded Decimal) . . . . . . . . 13 1.4.2 Le code Excess3, (XS3)ou STIBITIZ . . . . . . . . . . 13 1.4.3 Le code Gray ou binaire rééchi . . . . . . . . . . . . . 13 1.4.4 Codage des caractères . . . . . . . . . . . . . . . . . . 13 2 Algèbre de Boole et Simplication de Fonctions Logiques 15 2.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.1 Variable logique . . . . . . . . . . . . . . . . . . . . . . 16 2.2.2 Opération unaire, binaire, n-aire . . . . . . . . . . . . . 16 2.3 Algèbre de Boole . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1 Fonction logique . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 Précédence des opérateurs et notation . . . . . . . . . 17 2.3.3 Postulats et autres lois utiles . . . . . . . . . . . . . . . 18 2.3.4 Principe de dualité . . . . . . . . . . . . . . . . . . . . 18 2.4 Opérateurs et portes logiques (Logic Gates) . . . . . . . . . . 19 1
  3. 3. Structure Machine Pour L1 Dpt. MI 2.4.1 Non(NOT), Inverseur . . . . . . . . . . . . . . . . . . . 19 2.4.2 Et(AND) . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.3 Ou(OR) . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4.4 Non Et(NAND) . . . . . . . . . . . . . . . . . . . . . . 20 2.4.5 Non Ou(NOR) . . . . . . . . . . . . . . . . . . . . . . 21 2.4.6 Ou Exclusif(XOR) . . . . . . . . . . . . . . . . . . . . 21 2.4.7 Non Ou-Exclusif(XNOR) . . . . . . . . . . . . . . . . . 21 2.4.8 Opérateurs complets (universels) . . . . . . . . . . . . 22 2.4.9 Logigramme . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5 Formes canoniques . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5.1 Mintermes et Maxtermes . . . . . . . . . . . . . . . . . 23 2.5.2 Formes normales . . . . . . . . . . . . . . . . . . . . . 23 2.6 Simplication de fonctions logiques . . . . . . . . . . . . . . . 25 2.6.1 La simplications algébrique . . . . . . . . . . . . . . . 25 2.6.2 La simplications par le tableau de Karnaugh(veitch) . 26 3 Circuits Combinatoires 33 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Circuits Arithmétiques . . . . . . . . . . . . . . . . . . . . . . 34 3.2.1 Additionneurs . . . . . . . . . . . . . . . . . . . . . . . 34 3.2.2 Soustracteurs . . . . . . . . . . . . . . . . . . . . . . . 35 3.2.3 Multiplieurs . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2.4 Comparateurs . . . . . . . . . . . . . . . . . . . . . . . 35 3.3 Circuits de transcodage . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1 Encodeurs . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.2 Décodeurs . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4 Circuits d'aiguillage . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.1 Multiplexeurs . . . . . . . . . . . . . . . . . . . . . . . 37 3.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
  4. 4. 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, chires....) 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ésentation interne, 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 bits appelé 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 processeur n-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
  5. 5. 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 la représentation des nombres permet de réaliser des gains en espace mémoire et 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 dans une 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 chire de poids fort(faible) La représentation des entiers naturels ne pose pas de diculté, mais celle des entiers relatifs est plus délicate puisque il faut pouvoir représenter et manipuler le signe. Le but est de trouver une représentation transparente dans les opérations quelque soit le signe. Voyons comment représenter les nombres 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) du nombre, 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 nous travaillons sur n bits, ce codage peut être schématisé ainsi : 1 bit an−1 S 0:+ 1:− n−1 bits an−2an−3 · · · a0 V A Exemples : Sur 3 bits : CU-Ghardaia Groupe (MI) 2012 Page 4/42
  6. 6. 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écial du 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ême méthode 2-6 . Indication : pour calculer x − y en SVA si y x alors calculer y − 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çon qu'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 bits de 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 sut donc de le retrancher de 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
  7. 7. Structure Machine Pour L1 Dpt. MI son complément à 1 est le nombre 10010 qui est la représentation de (−13)10 en 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 le nombre lui même : C1(C1(N)) = N Intervalle 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ément d'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(radix complement) Comme dans la méthode précédente un nombre positif est représenté par son code RBNS, mais le codage d'un nombre négatif s'eectue en complé- mantation à la base : N + N = bn , (b : la base utilisée, n : le nombre de bits de 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 − N Pour obtenir le complément à 2 d'un nombre N il sut donc de le retrancher de 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
  8. 8. Structure Machine Pour L1 Dpt. MI inversement, se fait en complémentant le nombre bit à bit puis en ajoutant 1 au résultat. Exemples : Représenter en C2 sur 8 bits le nombre -77. (−77)10 = (?)8 C2 = C1(+77)+1 = C1(01001101)+1 = 10110010+1 = (10110011)8 C2 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 donne l'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 sont traité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 le nombre lui même : C2(C2(N)) = N. La représentation en C2 s'est imposée dans les calculateurs modernes, car elle simplie 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 le signe 3. Pour trouver rapidement le C2 d'un nombre, il sut d'inverser tous les bits 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
  9. 9. Structure Machine Pour L1 Dpt. MI 4. Pour trouver la valeur décimale d'une chaîne (an−1 . . . a0) en C1 on peut 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 on peut 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 de bits ainsi que la méthode de représentation des données, Ex. la chaîne suivante (10100110) codée sur 8 bits peut représenter selon le codage adopté 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
  10. 10. 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 dit retenue 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, si le 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é (overow), 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 et d'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 + p Exemple : 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. Nous avons 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 une limitation dans l'étendue et la précision. CU-Ghardaia Groupe (MI) 2012 Page 9/42
  11. 11. Structure Machine Pour L1 Dpt. MI 1.3.2 Format en virgule ottante Pour répondre aux limites ci-dessus, une représentation similaire à la notation scientique, bien connue dans les calculettes a été introduite. Un nombre réel N peut s'écrire :    N = ±M ∗ be , Avec M : 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, et un nombre peut avoir plusieurs représentations. An d'unier le codage, ce format a été normalisé, en précisant la forme de la mantisse, de l'exposant, le comportement en cas d'anomalies(overow, 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 chire est diérent de 0 Pour le représenter il faut coder la mantisse et son signe, ainsi que l'exposant et 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 ottante sur 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égative Exposant e = −5 en C2 sur 4 bits : 1011 Mantisse M = 1101 sur 8 bits : 11010000 Donc (−0, 015)8 sera codé par la chaîne : 0101111010000 CU-Ghardaia Groupe (MI) 2012 Page 10/42
  12. 12. Structure Machine Pour L1 Dpt. MI Exposant biaisé Pour éviter à traiter des exposants négatifs, on utilise cette technique consistant à ajouter 2k−1 (k : les bits de l'exposant) à l'exposant réel. Cette valeur 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 mais sur 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égative Exposant e = −5, ajoutant le biais = 24−1 = 8 → −5 + 8 = +3 → 0011 Mantisse M = 1101 sur 11 bits → 11010000000 Donc (−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, 1110101 Le signe S = 0, Exposant e = 1 en complément à 2 → 0001 Mantisse M = 1110101 sur 6 bits → 111010 CU-Ghardaia Groupe (MI) 2012 Page 11/42
  13. 13. 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 que N = ±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 pour le signe, l'exposant biaisé (en exess +1023) est codé sur 11 bits, la mantisse sur 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 → 10000010 Mantisse M = 010001 à compléter sur 23 bits → 01000100000000000000000 Donc le résultat sera codé par la chaîne → 1 10000010 01000100000000000000000 Le standard IEEE 754, prévoit aussi les codages spéciaux suivants : Exposant Mantisse Correspondance Remarques 0 0 0 Zéro 0 = 0 ±(0, M) ∗ 2−126 Nbre dénormalisés(plus petits) = 0 et = 11111111 Qlq ±1, M ∗ 2e−biais Selon le signe 11111111 0 ±∞ Selon le signe 11111111 = 0 NaN Not a Number (Erreurs) 1.4 Autre codages Il existe plusieurs codages pour les diérents types de données. Ce cours limité en durée ne peut les couvrir tous, on se limitera donc à quelque-uns. CU-Ghardaia Groupe (MI) 2012 Page 12/42
  14. 14. 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 seule représentation appelée Décimal Codé Binaire (DCB). Il a l'avantage, dans certaines situations ( les entrées/sorties E/S sont plus nombreuses que les opérations de calcul), d'éviter les opérations coûteuses de conversion (décimal → binaire). Ici on fait correspondre à chaque chire d'un nombre en décimal son équivalent en binaire sur 4 bits, donc les seules combinaisons possibles sont celles associées aux chires de 0..9 càd 0000..1001. Dans les opérations arithmétiques en BCD, Il est parfois nécessaire de corriger le 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 chire puis conver- tir le résultat en binaire. Par rapport à BCD, XS(N) = BCD(N) + 3 Dans les opérations arithmétiques en XS3, Il est parfois nécessaire de corriger le 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'un seul bit. Dans le tableau suivant, on donne les 16 premiers nombres de ce code. 1.4.4 Codage des caractères Pour le codage des caractères, le code ASCII(American Standard Code for 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. Le tableau ci-dessous montre les codes ASCCII sur 7 bits comme initialement déni. CU-Ghardaia Groupe (MI) 2012 Page 13/42
  15. 15. 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
  16. 16. Structure Machine Pour L1 Dpt. MI Chapitre 2 Algèbre de Boole et Simplication de Fonctions Logiques Objectif : Prendre connaissance de la théorie et les techniques permet- tant la synthèse ecace 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). Ces travaux n'ont pas connu d'intérêt que 70 ans plus tard, lorsque Claude SHANNAN(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(circuits logiques 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 et 0. Les opérateurs ET, OU, NON deviennent des opérateurs algébriques de multiplication, d'addition et de complémentation. CU-Ghardaia Groupe (MI) 2012 Page 15/42
  17. 17. 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 prendre comme valeur deux états Vrai ou Faux (correspondantes aux constantes 1 ou 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 ou opérande, elle est dite binaire si elle accepte deux opérandes, et en général n-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 (+) et une 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ériant 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
  18. 18. 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 plusieurs variables logiques (n variables) et les opérations : .,+, , ayant un resultat logique 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 F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 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 ab aulieu de a.b. En outre, Dans l'évaluation des expressions booléennes l'ordre des opérations est le suivant : 1. Les parenthèses () CU-Ghardaia Groupe (MI) 2012 Page 17/42
  19. 19. 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 Involut 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 les opérateurs .,+ et les éléments 0,1 sont interchangés. Exemple : Considérons le théorème : a+a=a Preuve : 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
  20. 20. 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=a Remarque : La preuve des relations booléennes peut se faire soit en usant les postulats et 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 est laissé à l'intuition. La deuxième méthode se base sur les tables de vérités, il sut de montrer que les deux termes d'une expressions possèdent les mêmes valeurs 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 base pour 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) = ¯a a a 0 1 1 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.b 0 0 0 0 1 0 1 0 0 1 1 1 CU-Ghardaia Groupe (MI) 2012 Page 19/42
  21. 21. 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 + b 0 0 0 0 1 1 1 0 1 1 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) de ses entrées. NonEt(a, b) = a.b = a ↑ b a b a.b 0 0 1 0 1 1 1 0 1 1 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
  22. 22. 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) de ses entrées. NonOu(a, b) = a + b = a ↓ b a b a + b 0 0 1 0 1 0 1 0 0 1 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 + a¯b = (a + b)(¯a + ¯b) a b a ⊕ b 0 0 0 0 1 1 1 0 1 1 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 = ¯a¯b+ab = (¯a+b)(a+¯b) a b a ⊕ b 0 0 1 0 1 0 1 0 0 1 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
  23. 23. 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 ou universel (mais aucun des 3 ne forme seul un groupe complet). On veriera aisément que les groupes suivants sont aussi universels : (+,¯), (.,¯), (NAND),(NOR). Pour le démontrer il sut d'exprimer les 3 opérateurs de 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) + a¯bc f(a, b, c) = (a + b)(¯a + c)(b + ¯c) CU-Ghardaia Groupe (MI) 2012 Page 22/42
  24. 24. 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 toutes les variables apparaissant chacune sous la forme normale ou complémentée. De même, On appelle maxterme, ou somme standard, la somme logique de toutes 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ême nombre de maxtermes. Exemples : Pour les 3 variables logiques a, b, c nous avons : abc → minterme ¯ab¯c → minterme a¯c → 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) si tous 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 variable x = 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 variable x = 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
  25. 25. Structure Machine Pour L1 Dpt. MI a b c F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 f(a, b, c) = abc + a¯b¯c + abc + ab¯c + abc → forme normale disjonctive f(a, b, c) = (a + b + c)(a + ¯b + c)(a + b + ¯c) → forme normale conjonctive Exercices : 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(émet un 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 la sortie sous la première forme canonique. Synthèse de circuits logiques Comment trouver le logigramme d'une fonction logique à partir de sa dénition ? 1. Trouver l'expression de la fonction : Comprendre la fonction Identier les variables d'entrée Identie la sortie Établir la TV Donner l'expression algébrique 2. Simplier (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
  26. 26. Structure Machine Pour L1 Dpt. MI 2.6 Simplication 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 leurs implémentations en circuits électroniques. La complexité d'une expression logique, décrivant une fonction ou un système, est corrélée à la complexité du circuit correspondant. Il en résulte que la simplication de l'expression logique permet d'obtenir un circuit minimal ayant un coût réduit et des per- formances meilleures. L'objectif de la simplication est donc : Réduire au maximum l'expression de la fonction, en minimisant le nombre de termes et/ou de variables, an 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ésentation théorique de l'information à son implémentation en circuit électronique est devenu possible. Il existe plusieurs méthode de simplication : La méthode algébrique. Les méthodes graphiques (Tableau Karnaugh, diagramme de venn). Les méthodes automatiques ou programmables. 2.6.1 La simplications 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'expression logique. Il n'existe pas d'approche unique, la méthode repose sur l'intuition, l'habilité et l'expérience, et il est souvent dicile de savoir que le résultat obtenu est minimal. Qlq règles utilisées : ab + a¯b = a (a + b)(a + ¯b) = a a + ab = a a(a + b) = a a + ¯ab = a + b a(¯a + b) = ab Exemples : 1. Simplier l'expression suivante : xyz + xy¯z + x¯yzt xyz + xy¯z + x¯yzt = xy(z + ¯z) + x¯yzt CU-Ghardaia Groupe (MI) 2012 Page 25/42
  27. 27. Structure Machine Pour L1 Dpt. MI = xy + x¯yzt = x(y + ¯yzt) = xy + xzt 2. Simplier l'expression de l'exercice des 3 lampes : abc + ¯abc + a¯bc + ab¯c abc + ¯abc + a¯bc + ab¯c = abc + ¯abc + a¯bc + ab¯c + abc + abc = bc(a + ¯a) + ab(c + ¯c) + ac(b + ¯b) = ab + ac + bc 3. Simplier l'expression du système d'alarme : A ¯P ¯V M + A ¯PV ¯M + A ¯PV M + AP ¯V ¯M + AP ¯V M + APV ¯M + APV M = A( ¯P ¯V M + ¯PV (M + ¯M) + P ¯V (M + ¯M) + PV (M + ¯M)) = A( ¯P ¯V M + ¯PV + P ¯V + PV ) = A( ¯P ¯V M + ¯PV + P) = A( ¯P ¯V M + P + V ) = A(P + ¯V M + V ) = A(P + V + M) Exercice : Simplier : (ab + c)(a¯b + c)(¯ab + c)(ab + ¯c) 2.6.2 La simplications par le tableau de Karnaugh(veitch) Le tableau de Karnaugh (TK) est une méthode simple de simplication de 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 à simplier sous une forme qui met en évidence ce type de relations dans des cases adjacentes. Cases adjacentes deux cases sont dites adjacentes si seulement une seule variable change d'état (de x à ¯x ou inversement) dans les mintermes qu'elles représentent. i.e qu'une seule variable fait la diérence entre ces cases. Exemples : ab et a¯b sont 2 mintermes adjacents, de même que pour abc et ¯abc Principe Dans la procédure de simplication, la variable qui change d'état entre deux cases sera donc éliminée. Plus généralement, l'approche consiste à re- grouper tout ensemble de cases à 1 adjacentes. Ces ensembles ont un nombre de 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
  28. 28. 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) ¯a¯b a¯b ¯ab ab f1(a, b) 0 1 1 1 f1(a, b) = a¯b + ¯ab + ab = a + b
  29. 29. b a 0 1 0 1 a → b ↓ TK à 3 variables Avec 3 variables, nous aurons 23 soit 8 mintermes. Reprenons l'exemple des 3 lampes. f2(a, b, c) 0 0 0 1 01 11 0 1 00 01 11 10
  30. 30. 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 ' $ %
  31. 31. 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
  32. 32. 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
  33. 33. ' $ % ' $ % 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
  34. 34. AB → CD ↓ f5(A, B, C, D) = A ¯B + ¯B ¯D + B ¯CD TK à 5 variables Pour 5 variables, le TK comporte alors 25 = 32 cases. On peut simplier ces fonctions soit en construisant et juxtaposant deux tableaux de quatre variables : 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 à variable inscrite. 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, 1. Deux TK à 4 variables juxtaposés. CU-Ghardaia Groupe (MI) 2012 Page 28/42
  35. 35. 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
  36. 36. BC → DE ↓
  37. 37. 1 0 1 0 00 00 1 0 1 0 10 10 00 01 11 10 00 01 11 10
  38. 38. BC → DE ↓
  39. 39. ¯A(A = 0) A(A = 1) f6(A, B, C, D) = ¯B ¯C + ¯CD + ¯AD ¯E 2. Un TK à variable inscrite Un TK à variables inscrites est un TK dans lequel on inscrit une ou plu- sieurs des variables indépendantes à l'intérieur du tableau. Lorsqu'une variable 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 le minterme 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
  40. 40. ' $ %
  41. 41. AB → CD ↓ f6(A, B, C, D) = ¯B ¯C + ¯CD + ¯AD ¯E 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 du 2 cotés gauche-droit et haut-bas, donc les cases des 4 extremités sont adjacentes CU-Ghardaia Groupe (MI) 2012 Page 29/42
  42. 42. 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 lui soit propre 6. Chaque rectangle doit être maximal 7. Chaque 1 doit être couvert par au moins un rectangle Soit à simplier 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 possible de 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 le maximum de cases à 1 non encore recouverte. Supprimer les groupements redondants. Exercices : 1. Simplier le TK suivant à 4 variables A, B, C, D : latex/ex7.png latex/ex7.pdf f8(A, B, C, D) = ¯B ¯D + AC + C ¯D 2. Identier les erreurs dans les regroupements opérés dans le TK si- dessous : CU-Ghardaia Groupe (MI) 2012 Page 30/42
  43. 43. Structure Machine Pour L1 Dpt. MI latex/ex8.png latex/ex8.pdf le nombre de cases dans le premier bloc à gauche =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. Ces combinaisons sont en pratique tel que : ne se présenent jamais, elles sont sans intérêt, interdites, ou facultatives La 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 simplication par TK, on considère ces cas indiérent soit comme des 1 ou des 0 selon le remplacement qui ore plus de simplication. Remarque : Dans la simplication 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 cas non spéciés. Exemples : 1. Examiner les regroupements dans le TK ci-après : latex/ex9.png latex/ex9.pdf f9 = AB + CD + AC + BC + BD CU-Ghardaia Groupe (MI) 2012 Page 31/42
  44. 44. Structure Machine Pour L1 Dpt. MI 2. Simplions la fonction d'un Led de l'acheur 7 segments, qui convertit un nombre binaire sur 4 bits en un vecteur de 7 bits qui commande l'acheur. La spécication de ce convertisseur nous indique qu'il faut convertir seulement les nombres de 0 à 9, càd que pour les nombres de 10 à 15 le fonctionnement de ce circuit n'est dénie. latex/xseg.png latex/xseg.pdf Simplication par regroupement des maxtermes Dans la simplication par TK, on peut procéder inversement, càd, on regroupe les cases à 0 aulieu des cases à 1. On obtient ainsi une expression en deuxième forme canonique (produits de sommes). Les variables dans les termes à 0 seront représentées par leurs formes normales, celles à 1 par leurs formes complémentées. Exemples : 1 1 0 1 10 00 1 1 0 0 10 00 00 01 11 10 00 01 11 10
  45. 45. AB → CD ↓ f10(A, B, C, D) = ( ¯A + ¯B)( ¯C + ¯D)(B + ¯D) Récapitulons La méthode de simplication par TK est pratique pour les fonctions lo- giques ayant jusqu'à 5 ou 6 variables, au-delà la simplication par cette mé- thode graphique devient moins évidente et très dicile, on préfère dans ces cas d'autres méthode automatiques et programmables telleque : la méthode QUINE McCLUSKEY. CU-Ghardaia Groupe (MI) 2012 Page 32/42
  46. 46. Chapitre 3 Circuits Combinatoires Objectif : Concevoir des circuits combinatoires 3.1 Introduction Un circuit combinatoire est un circuit logique pour lequel les sorties ne dépendent que des entrées (à chaque conguration des entrées correspond une conguration des sorties et une seule). Le circuit combinatoire est déni lorsque son nombre d'entrées m, son nombre de sorties n ainsi que l'état de chaque 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 peut distinguer 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. Il s'agit de fonctions standards suivantes : 1. Arithmétiques : additionneurs, soustracteurs, multiplieurs, 2. Comparaison 3. Transcodage de l'information 4. Aiguillage de l'information 33
  47. 47. 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 deux nombres A et B de n bits exprimés en RBNS. Le schéma bloc de ce circuit est le suivant : A,B, entrées sur n bits, S sortie la somme de n bits et Rn la retenue. Exemples : Soit à additionner les deux nombres de 4 bits : 1001 et 0011 0 0 1 1 1 0 0 1 0 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 une somme si et une retenue si qui sera propagée au rang suivant. Le dernier rang (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. Ce circuit a 2 bits en entrée (a0 et b0) et 2 bits en sortie (s0 et r0). Il calcule la somme de 2 nombres sur 1 bit chacun. a0 b0 s0 r0 0 0 0 0 0 1 1 0 1 0 1 0 1 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. Il est 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
  48. 48. Structure Machine Pour L1 Dpt. MI r4 r3 r2 r2 r1 a4 a3 a2 a1 a0 b4 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 et bi et de la retenue du rang précédent ri−1. Le circuit réalisant cette addition est dit additionneur complet(full adder), car il tient compte de la retenue propagée du rang inférieur. L'additionneur global (sur n bits) est réalisé par la mise en cascade des cellules d'additionneurs complets déni comme suit. ai bi ri−1 si ri 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 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és en 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
  49. 49. 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) = ai ¯bi (ai bi) = ¯aibi D'où fe = a1 ⊕ b1.a0 ⊕ b0 fs = a1 ¯b1 + a1 ⊕ b1.a0 ¯b0 fi = ¯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 active parmi 2n en un code binaire sur (n bts). Si plusieurs entrées sont actives, on leur aecte une priorité, de manière que le circuit réalise l'opération seulement sur la sortie la plus prioritaire. Exemples : Encodeur prioritaire binaire 8 vers 3 (GS : indique qu'une entrée est 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'activer exclusivement une des 2n sorties, correspondante au code binaire présent sur l'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
  50. 50. 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 raison qu'il est appelé selecteur de données. Dans la gure suivante un multiplexeur 4 vers 1 (Mux 4→ 1) est montré. les sélecteurs (s1s0) spécient l'entrée à diriger vers la sortie z : Si s1s0=00 la sortie vaut I0 Si s1s0=01 la sortie vaut I1 Si s1s0=10 la sortie vaut I2 Si 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 validation est actif (E = 1), dans le cas contraire la sortie est 0 quelles que soient les entrées et les lignes de sélection. La TV de ce circuit est le suivant : CU-Ghardaia Groupe (MI) 2012 Page 37/42
  51. 51. Structure Machine Pour L1 Dpt. MI E s1 s0 z 0 x x 0 1 0 0 I0 1 0 1 I1 1 1 0 I2 1 1 1 13 z = E ¯s1 ¯s0I0 + E ¯s1s0I1 + Es1 ¯s0I2 + 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 logiques Les multiplexeurs peuvent être utilisés dans la réalisation des fonctions logiques à partir de leurs TV sans l'aide de portes logiques. Réalisons, à titre d'exemple, la fonction f(A, B, C) = BC + ¯AB+A ¯B ¯C par un Mux 4→ 1. latex/mux2.png latex/mux2.pdf CU-Ghardaia Groupe (MI) 2012 Page 38/42
  52. 52. Structure Machine Pour L1 Dpt. MI La conversion parallèle-série Pour 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érialisation est obtenue en donnons des valeurs successives (0 à n) aux lignes de sélection. 3.4.2 Démultiplexeurs Le démultiplexeur est le circuit inverse du multiplexeur, il a pour fonction de distribuer l'information d'entrée vers l'une des 2n sorties, la sélection de la sortie exclusivement concernée étant eectuée par n lignes ou variables de commandes. Dans le schéma ci-dessous, on montre un démultiplexeur 1 vers 4 (D : la donné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'erreurs en transmission de données. Le but est d'ajouter un bit qui donne le nombre de bits à 1 de l'information à transmettre. CU-Ghardaia Groupe (MI) 2012 Page 39/42
  53. 53. 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 I 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 P = AB + BC + AC + ¯A ¯B ¯C = A ⊕ B ⊕ C I = ¯P = A ⊕ B ⊕ C latex/par.png latex/par.pdf CU-Ghardaia Groupe (MI) 2012 Page 40/42
  54. 54. Chapitre 4 Circuits Séquentiels Objectif : Concevoir des circuits séquentiels 41
  55. 55. Bibliographie 42

×