Académique Documents
Professionnel Documents
Culture Documents
Chapitre I. Introduction.
1. Analogique- numrique. 2. Reprsentation des grandeurs binaires. 3. Circuits numriques. 4. Constantes et variables boolennes. 5. Rsum.
Chapitre I: Introduction
CHAPITRE I: INTRODUCTION.
I. ANALOGIQUE - NUMRIQUE.
Dans les sciences, dans les techniques, dans les affaires et dans la plupart des domaines, nous sommes amens utiliser des grandeurs. Ces grandeurs sont mesures, surveilles, enregistres, transformes mathmatiquement, observes et exploites de diverses faons dans des systmes rels diffrents. Il existe deux manires de reprsenter les valeurs des grandeurs: < Reprsentation analogique : on fait correspondre une grandeur une autre grandeur qui lui est directement proportionnelle. (Tachymtre automobile, thermostat,..) Ces grandeurs varient graduellement l'intrieur d'une gamme continue de valeurs. (La vitesse d'une automobile peut tre comprise entre zro et,admettons, 160 km/h.) Reprsentation numrique : une grandeur que l'on reprsente numriquement n'est pas proportionnelle une autre grandeur, mais est plutt exprime au moyen de symboles appels chiffres. ( une horloge numrique qui donne l'heure du jour au moyen de chiffres reprsentant les heures, les minutes et les secondes. La reprsentation numrique de l'heure du jour volue de faon discontinue, contrairement sa reprsentation analogique qui est continue )
<
La principale diffrence entre grandeur analogique et grandeur numrique peut s'exprimer simplement comme suit: analogique = continu numrique = discret (discontinu)
Il y aura donc 2 types de systmes: < Systme numrique qui est un regroupement d'lments dont le rle d'ensemble est de traiter des grandeurs physiques ou de l'information exprime sous une forme numrique, c'est--dire sous la forme de valeurs discrtes.
- 1-
Chapitre I: Introduction
<
Systme analogique, qui est un regroupement d'lments qui traite des grandeurs physiques de nature analogique. Dans un tel systme, les grandeurs varient continment l'intrieur d'un intervalle de valeurs.
- 2-
Chapitre I: Introduction
EXEMPLE:
Cette figure reprsente le schma fonctionnel type d'une chane de rgulation de la temprature. Comme on peut le voir, la temprature, une grandeur analogique, est mesure; cette mesure est convertie en une grandeur numrique par un convertisseur analogique- 3-
Chapitre I: Introduction
numrique (CAN). Cette grandeur numrique fait ensuite l'objet d'un traitement par des circuits numriques, formant ou non un calculateur numrique. La sortie numrique de ce bloc est transforme en grandeur analogique grce un convertisseur numrique-analogique (CNA). La sortie analogique est applique l'entre d'un contrleur qui intervient d'une certaine faon pour rgler la temprature.
Dans l'exemple illustr cette figure b), ce sont des trous perfors dans une bande de papier qui servent reprsenter les nombres binaires. Un trou correspond 1 et une absence de trou, 0. Il existe beaucoup de dispositifs ayant deux tats de fonctionnement ou qui peuvent fonctionner dans deux conditions opposes. Parmi ceux-ci mentionnons: l'ampoule lectrique (allume ou teinte), la diode (transmet ou bloque le courant), le relais (amor ou dsamor), le transistor ( bloqu ou satur), la cellule photolectrique (dans la lumire ou dans le noir), le thermostat (met en marche ou arrte)...
- 4-
Chapitre I: Introduction
Dans l'quipement lectronique numrique, l'information binaire revt l'aspect de courants ou de tensions prsents aux bornes d'entre ou de sortie des divers circuits. Habituellement, les bits 0 et 1 correspondent deux niveaux de tension nominaux. Par exemple, on peut tablir que zro volt reprsente le bit 0 et que + 5 V reprsente le bit 1. Dans la ralit, la divergence entre les circuits fait en sorte que l'on associe 0 et 1 des gammes de tensions. C'est ce qu'on peut voir la figure suivante a) o toute tension comprise entre 0 et 0,8 V est associe au bit 0 et toute tension comprise entre 2 et 5 V est associe au bit 1. Tous les signaux des entres et des sorties correspondront l'une ou l'autre de ces gammes.
La figure b) montre une forme d'onde numrique type qui successivement dfinit le nombre binaire 01010. Nous sommes maintenant en mesure de saisir une autre diffrence importante entre les systmes numriques et les systmes analogiques. Dans les systmes numriques, la valeur exacte d'une tension n'a pas d'importance; par exemple, une tension de 3,6 V signifie la mme chose qu'une tension de 4,3 V. Dans les systmes analogiques, la valeur exacte d'une tension a de l'importance. Donc, si la tension analogique est proportionnelle la temprature mesure par un transducteur, 3,6 V reprsenterait une temprature diffrente de 4,3 V. Autrement dit, la valeur de la tension vhicule un lment informatif important. Cette caractristique implique que la conception de circuits analogiques prcis est souvent une tche beaucoup plus difficile que la conception de circuits numriques, du fait de la fluctuation de la tension en fonction de la variation des valeurs des composants, de la temprature et du bruit.
- 5-
Chapitre I: Introduction
Circuits logiques
La faon suivant laquelle un circuit numrique ragit un signal d'entre est appele la logique du circuit. Chaque type de circuit numrique obit un certain ensemble de rgles logiques. C'est pour cette raison qu'on donne aussi aux circuits numriques le nom de circuits logiques. Nous tudierons tous les types de circuits logiques employs actuellement dans les systmes numriques. Au dbut, nous nous intressons seulement l'opration logique ralise par ces circuits, c'est--dire la relation entre les entres et les sorties du circuit.
- 6-
Chapitre I: Introduction
Chapitre I: Introduction
Exemples: Niveau logique 0 Faux Arrt Bas Non Ouvert Niveau logique 1 Vrai Marche Haut Oui Ferm
L'algbre de Boole est un outil qui permet d'exprimer les effets qu'ont les divers circuits numriques sur les entres logiques et de manipuler les variables logiques en vue de dterminer la meilleure faon de matrialiser une certaine fonction logique. Parce qu'il n'y a que deux valeurs possibles, l'algbre boolenne se manipule plus aisment que l'algbre ordinaire. En algbre boolenne, il n'y a pas de fraction, de partie dcimale, de nombre ngatif, de racine carre, de racine cubique, de logarithmes, de nombre imaginaire... En fait, dans cette algbre, on ne retrouve que trois oprations lmentaires: L'addition logique, dite aussi opration OU. Le symbole habituel de cette opration est le signe ( + ). La multiplication logique, dite aussi opration ET. Son symbole habituel est le signe de la multiplication (.). La complmentation ou l'inversion logique, dite aussi opration NON. Son symbole habituel est une barre de surlignement (-).
- 8-
Chapitre I: Introduction
V EN RSUM
* UNE VARIABLE LOGIQUE (binaire) < sera tout ce qui NE PEUT PRENDRE QUE 2 valeurs (tats) au cours dun problme ou dune discussion. sera note par lettre (ou autre symbole classique) Exemples: A, a sera note 0 ou FAUX (F) ou FALSE (F) ou niveau bas /LOW (L) ou la lettre minuscule barre lune des 2 valeurs possibles de la variable (ou tat) Exemple: <
<
<
sera note 1 ou VRAI (V) ou TRUE (T) ou niveau haut/HIGH (H) ou la lettre minuscule lautre valeur (tat) de la variable ne pourra jamais avoir quune seule des 2 valeurs un moment donn, cette valeur excluant lautre. on notera par la lettre X ou le symbole un tat indiffrent, soit 0 soit 1. ltat haute impdance aura comme notation, HI en logique 3 tats (TRI STATE)
<
< <
On dfinira pour les logiques lectroniques: 1 - HIGH TTL TTL.LS CMOS entre 2,4V et 5V entre 2V et 5,25V entre qq V et 18 V 0 - LOW entre 1,4V et 0V entre 0,8V et 0V
- 9-
Chapitre I: Introduction
* UNE FONCTION LOGIQUE. Cest une variable logique dont les tats (valeurs) dpendent des tats des variables dentre ( qui sont galement des variables logiques ) pendant le problme. Il arrive parfois que la fonction soit considre comme lune des entres: on tudiera ce moment de la logique squentielle.
* UNE VARIABLE COMPLMENTAIRE. Lorsque la fonction logique B est dans ltat oppos de la variable A on dit que < B est le complment de A < B sobtient en complmentant A < B est la fonction NON A < B est la fonction PAS A
B= A
B= B
* UN PROBLME LOGIQUE Un problme est logique lorsque la ou les variables ainsi que la ou les fonctions sont logiques.
- 10 -
F1 0 1
IDENTIQUE A
F2 1 0
- COMPLMENT DE
F3 1 1 UN
En logique TTL, F0 correspond une mise la masse F1 possde des tats identiques ceux de A Il a pour symbole =
- 11 -
F2 = A Postulat de lalgbre de Boole: INVOLUTION: Le symbole suivant peut galement tre rencontr
A= A
F3 correspond une mise au +Vcc ( 5V + ou - 5%) ou encore une mise en lair (attention aux potentiels flottants !( En technologie TTL))
- 12 -
F4 = F5 =
F11 F10
F6 = F9 F7 = F8
- 13 -
F15
F15 = 1
unit 1
OU INCLUSIF
F14
1
F14 = X + Y
(union) Implicati
Y6X
F13
F13 = X + Y
F12
1
F12 = X
F11
F11 = X + Y
Implicati
X 6Y
F10
1
F10 = Y
0
F9 = X u Y
F9
Equivale ET
NAND NON ET
F7 = X + Y
F9 = X .Y + X .Y
0
F8 = X . Y
F8
1
F7 = X . Y
F7
F6
F6 = X r Y
OU EXCLUSIF F = X .Y + X. Y 6
(dilemme)
F5
F5 = Y
F4
F4 = X.Y
F3
F3 = X
F2
F2 = X .Y
F1
F1 = X.Y
F1 = X + Y
F0
F0 = 0
- 14 -
3. FONCTION F8 = Fonction ET . Soit X et Y deux variables boolennes. Le rsultat de X ET Y est une variable boolenne. Table de vrit. X 0 0 1 1 Y 0 1 0 1 F8 0 0 0 1
L'oprateur ET est aussi not . , la table justifie cette notation, d'o X ET Y = X . Y Le rsultat peut tre dsign par une autre lettre, F8 par exemple, d'o l'on aura F8 = X . Y
- 15 -
4. FONCTION F14 = Fonction OU (union) . Soit X et Y deux variables boolennes. Le rsultat de X OU Y est une variable boolenne. Table de vrit. X 0 0 1 1 Y 0 1 0 1 F14 0 1 1 1
- 16 -
Le rsultat peut tre dsign par une autre lettre, F14 par exemple, d'o l'on aura F14 = X + Y
Remarque: viter de confondre l'oprateur + et l'oprateur ET. En langage courant, l'expression 2 et 3 font 5 signifie 2 + 3 = 5 tandis qu'en logique x ET y est une intersection revenant une multiplication. Le rsultat de l'opration ET est 1 si et seulement si tous les oprandes valent 1. Le rsultat de l'opration OU est 1 si au moins l'un des oprandes vaut 1. L'opration OU est une union revenant une addition.
5. FONCTION F7 = Fonction NAND . (NON ET) Soit X et Y deux variables boolennes. Le rsultat est une variable boolenne.
F7 = X. Y = X + Y
- 17 -
Table de vrit. X 0 0 1 1 Y 0 1 0 1 F7 1 1 1 0
F1 = X + Y = X. Y
Soit X et Y deux variables boolennes. Le rsultat de X ET Y est une variable boolenne.
- 18 -
Norme CEI
NORME USA
7. FONCTION F6 = Fonction OU EXCLUSIF . F6 est la fonction OU exclusif. Son symbole opratoire est
F6 = X Y = X. Y + X. Y
L'usage quotidien de OU est ambigu, il peut signifier l'un ou l'autre ou les deux ou lun ou l'autre et non les deux. On peut tre lanc ou intelligent ou les deux mais on est Paris ou Bruxelles et non aux deux endroits la fois. Il faut donc dfinir cette opration avec rigueur. C'est pour cela qu'on l'exprime l'aide d'un oprateur diffrent.
- 19 -
Table de vrit. X 0 0 1 1 Y 0 1 0 1 F6 0 1 1 0
8. FONCTION F9 = Fonction Egalit .- Comparateur On lappelle galement fonction concidence. Cest la fonction inverse du OU Exclusif. Sa sortie vaut 1 si et seulement si les 2 entres sont gales. Table de vrit.
- 20 -
X 0 0 1 1
Y 0 1 0 1
F9 1 0 0 1
F9 = XY + XY = X Y
Symboles recommands. Norme CEI Norme DIN 4070 NORME USA
Implantation de la fonction galit par le CI 74266 comprenant 4 portes NON OU exclusif 2 entres.
REMARQUES. 1. Fa = F15 - a avec a 0 ; 0, 1, 2, ..., 7C : 2. On ne peut patiquement dresser le tableau de toutes les fonctions possibles pour
- 21 -
nimporte quel nombre de variables. Pour 3 variables, par exemple, on a 23 = 8 combinaisons possibles et donc 28 = 256 fonctions. Il nous faut donc dautres mthodes pour tudier ces fonctions 3, 4, 5 variables.
- 22 -
2. LOIS DE COMMUTATIVIT. a) A . B = B . A b) A + B = B + A Lobservation des T.D.V. (Tables de vrit) nous donne ce rsultat immdiat. 3. LOIS DASSOCIATIVIT. a) A . (B . C) = (A . B) . C b) A + (B + C) = (A + B) + C Vrifions la loi b par induction parfaite, cest--dire par vrification dans tous les cas possibles en utilisant les T.D.V. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 B+C 0 1 1 1 0 1 1 1 A + (B + C) 0 1 1 1 1 1 1 1 A+B 0 0 1 1 1 1 1 1 (A + B) + C 0 1 1 1 1 1 1 1
Les rsultats des colonnes 5 et 7 sont identiques. On a donc bien vrifi cette loi.
- 23 -
On peut donc crire respectivement les fonctions . et + trois variables sous les formes: P= ABC et S = A + B + C puisque le regroupement des variables na pas dimportance.
EXERCICE: vrifier ces deux lois par induction parfaite. (en utilisant les tables de vrit)
- 24 -
REMARQUE: La loi dcriture de ces relations dans lautre sens sappelle la MISE EN FACTEUR ou EN VIDENCE. Les 2 montages suivants sont fonctionnellement identiques. Il est important de noter que le deuxime circuit exige 3 portes au lieu de deux. Il nest donc pas indiffrent de raliser les circuits dune faon ou dune autre. Pour minimiser les cots, il peut tre important de minimiser le nombre de portes. La mme remarque sapplique aux circuits se rapportant la deuxime loi de distributivit. ( prouver sous forme dexercice)
- 25 -
6. LOIS DE COMPLMENTARIT.
a) A + A = 1 b) A . A = 0 7. IDENTITS REMARQUABLES. a) 1. A = A b) 1 + A = 1 c) 0 . A = 0 d) 0 + A = A Remarque: Les circuits intgrs TTL prsentent la caractristique suivante: laisser une entre dune porte ouverte, (cest--dire en lair, donc non relie une tension ou la masse) revient avoir un 1 cette entre. Cette remarque est trs utile pour les sances de laboratoire. 8. LOIS DE DISTRIBUTIVIT INTERNE. a) A + (B + C) = (A + B) + (A + C) b) A . (B .C) = (A . B) . (A .C)
- 26 -
b) A+ AB=A+B en effet, A+ AB=A+AB+ AB A + A B = A + B (A + A ) A+ AB=A+B.1 A+ AB=A+B car A + AB = A mise en vidence complmentarit ( A + A = 1) identit remarquable B.1 = B
c) A . ( A + B) = A en effet; A . ( A + B) = AA + AB A . ( A + B) = A + AB A . ( A + B) = A
V. RELATIONS DE BASE DE LALGBRE DE BOOLE. Ces relations devront tre dmontres lors dune sance de laboratoire.
1 2 3 4 5
XY + X
Y= X
(X + Y) (X + Y ) = X X (X + Y) = X X ( X + Y) = XY XY + X Z
(X + Y) ( X + Z) (Y + Z) = (X + Y) (
X + XY = X X+
XY=X+Y X Z + YZ =
XY +
X + Z)
XY +X Y Z = XY + XZ
(X + Y) (X + Y +Z) = (X +Y) (X + Z)
- 27 -
( X + Y) = X. Y
X. Y = X + Y
(1) (2)
Le thorme (1) affirme que la somme logique complmente de deux variables est gale au produit logique des complments de ces deux variables. De mme, le thorme (2) stipule que le produit logique complment de deux variables est gal la somme logique des complments de ces deux variables.
( X + Y + Z) = X. Y.Z
X. Y.Z = X + Y + Z
Preuve par induction parfaite. X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1
(1) (2)
X+Y+Z
0 1 1 1 1 1 1 1
X+Y+Z
1 0 0 0 0 0 0 0
X.Y .Z
1 0 0 0 0 0 0 0
XYZ
0 0 0 0 0 0 0 1
XYZ
1 1 1 1 1 1 1 0
X+Y+Z
1 1 1 1 1 1 1 0
- 28 -
Remarque: On a dj vu quelque chose de semblable lors de l'tude des circuits NON-ET et NON-OU. On peut gnraliser ces rsultats n'importe quel nombre de variables. Ces deux thormes sont trs utiles pour les circuits logiques. Ils permettent entres autres de transformer un produit de sommes ou une somme de produits. Prenons un exemple: Soit l'expression Z = (x + y + z) (x + z ) ( x + y ), produit de trois sommes, transformer.
On peut crire Z =
- 29 -
Z = xy z + xz + xy Z = x (z + zy) + xy Z = x (z + y) + xy Z = xz + xy + xy Z = xz + y(x + x) Z = xz + y
- 30 -
Z = y(x + z) Z = y + (x + z)
- 31 -
Nous voyons donc qu'en manipulant algbriquement une fonction on peut choisir le type de portes de son implantation. Dans notre cas, l'implantation NOR est la plus simple puisqu'elle ne ncessite qu'un seul type de porte (donc un seul type de circuit intgr) et seulement deux portes (donc un seul circuit intgr). C'est un exemple de l'utilit pratique des thormes de De Morgan.
Remarquons que les lois rencontres aux pages 25, 26 se transforment entre elles lorsquon remplace 1 par 0, + par . et vice versa. 1 +A = 1 A+A=A 0.A=0 A.A=A 1.A=A A +A = 1 0+A=A A .A = 0
Cette proprit gnrale est appele DUALIT DE LALGBRE DE BOOLE Si donc on dmontre une relation on peut crire immdiatement sa duale en remplaant les oprations (.) Par (+) et (+) par (.), 1 par 0 et 0 par 1 Lobtention dune premire forme simplifie dune expression permet dcrire immdiatement une autre galit, duale de la premire.
- 32 -
Soit lexpression
- 33 -
PAS S=A
OU S=A+B
ET S=A.B
NAND
NOR
OU EXCLUSIF
S = A. B
S= A+B
S= A B
OU ET PAS
NAND
NOR
IX. Exercices.
- 34 -
2. Expression algbrique.
Soit les fonctions:
C = xyc + xyc + xyc + xyc = xy(c + c) + xyc + xyc = xy + xyc + xyc = x( y + yc) + xyc = x(y + c) + xyc = xy + xc + xyc = xc + y( x + xc) = xc + y(x + c) = xy + xc + yc
- 35 -
3. Table de vrit.
On peut reprsenter ces 2 fonctions sous forme de table de vrit. Les entres sont dans lordre binaire naturel. Nous avons trois variables x, y, et c, donc 23 = 8 combinaisons possibles. c 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 x 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 C 0 0 0 1 0 1 1 1
4.Table de Karnaugh La table de vrit prsente un inconvnient: le nombre de lignes crot en mme temps que le nombre de variables. Si n est le nombre de variables, le nombre de lignes est 2n. Pour trois variables on a huit lignes, pour quatre variables seize lignes, etc. On contourne cette difficult en plaant les variables d'entre aux entres d'une table aussi carre que possible. On a donc une table dite de Karnaugh double entre: une pour les lignes et une pour les colonnes. On numrote ensuite les colonnes et les lignes selon le code binaire rflchi. Pour la fonction S on a:
yx c
00 0 1
01 1 0
11 0 1
10 1 0
0 1
- 36 -
Pour la fonction C on a:
yx c
00 0 0
01 0 1
11 1 1
10 0 1
0 1
Pour la fonction C:
- 37 -
f ( x, y) =
x2 y2 = x+ y ( x y)
si
((x - y) 0)
Pour simplifier une fonction en algbre de Boole, cest trouver une forme plus condense, avec moins de fonctions qui peut aboutir une ralisation matrielle plus simple (encore que parfois la forme la plus rduite ne sera pas choisie car lors du passage la ralisation, la nature technologique du systme sera aussi dterminante, ainsi que des conditions de scurit supplmentaires ventuelles.) On utilisera souvent les relations caractristiques:
x. ( y.z) = ( x.y).z
- 38 -
De nombreux travaux de simplification et de synthse ont t effectus mais nous nous limiterons quelques mthodes trs connues: la simplification algbrique, par la table de Karnaugh, de Quine et Mc Cluskey,.... Avant de commencer ltude des mthodes de simplification nous allons dabord aborder les formes canoniques.
On distingue quatre formes canoniques: 1- Somme de produits implantation par des portes ET relies une porte OU. 2- Produit de sommes implantation par des portes OU relies une porte ET. 3- Forme NON-ET 4- Forme NON-OU. Ces deux dernires formes sont implantes par un seul type de porte. Elles se dduisent des deux premires. Nous donnerons la faon d'obtenir chacune de ces formes avant de donner des exemples.
- 39 -
Pour C on aura: C = xyc + xyc + xyc + xyc On retrouve galement l'expression initiale non simplifie.
- 40 -
C = xyc + xyc + xyc + xyc C = xyc + xyc + xyc + xyc C = xyc xyc xyc xyc
- 41 -
S = x+ y+ c+ x+ y+ c+ x+ y+ c+ x+ y+ c
On obtiendra de la mme faon la quatrime forme canonique de la fonction C, soit:
z = ab + abc
- 42 -
2. Simplification algbrique.
Les thormes de l'algbre boolenne tudis prcdemment nous seront d'un grand secours pour simplifier l'expression d'un circuit logique. Malheureusement, il n'est pas toujours facile de savoir quels thormes il faut invoquer pour obtenir le rsultat minimal. La simplification algbrique est souvent un processus d'approximations successives. L'exprience aidant, une personne peut exceller trouver d'assez bons rsultats. Les exemples qui suivent montrent diverses manires d'utiliser les thormes de l'algbre de Boole en vue de simplifier une expression. Remarquons que dans tous ces exemples on retrouve toujours deux tapes essentielles: 1. La transformation par applications successives des thormes de De Morgan et par multiplication de termes de l'expression pour obtenir une somme de produits. 2. Ensuite, la vrification de chaque produit pour trouver les variables communes, puis la mise en facteur de ces dernires, le cas chant. Quand une simplification est possible, la mise en facteur permet d'liminer un ou plusieurs termes. 3. Lorsque les simplifications napparaissent pas facilement, on peut toujours
( x + x) par ex.)
soit ajouter une fonction nulle (x. x par ex.) ou une fonction ET UN
- 43 -
z = ABC + AB. AC
( )
Quand on a l'expression, il est souvent judicieux de dcomposer, au moyen des thormes de De Morgan, les longs signes de complmentation et ensuite de multiplier tous les termes.
z= = = =
Maintenant que nous avons en main la somme de produits recherche, voyons les variables communes dans les divers termes en vue de mettre en facteur. Le premier et le troisime terme ont AC en commun; d'o, aprs la mise en facteur:
z= z= z= z=
Ce rsultat est la forme minimale de lexpression. La matrialisation du circuit correspondant est donne la figure suivante.
- 44 -
z= = = = =
- 45 -
videmment, le rsultat est le mme que celui trouv avec la 1re mthode. L'astuce d'additionner un terme se trouvant dj dans l'expression est toujours permis. En fait, on peut additionner le mme terme plus d'une fois, si cela s'avre ncessaire. EXEMPLES-EXERCICES. Simplifiez les expressions suivantes:
z = AC ABD + ABCD + ABC x = (A + B)( A + B + D) D F2 = (A + B).B + A. ( B + C).D (log22) F3 = A.B.C + A.B.C + A.BC + AB F4 = A.B(C.D + A.B + A.B.CD) + A( BCD + BCD)
- 46 -
Ces exemples mettent en lumire les points importants que voici: 1. La table de vrit donne la valeur de la sortie X pour chacune des combinaisons des valeurs d'entre: par contre, le diagramme K organise l'information de manire diffrente. Chaque ligne de la table de vrit correspond un carr du diagramme de Karnaugh. Par exemple, la figurre a), la ligne A = 0 et B = 0 de la table de vrit est le carr
AB du diagramme K. tant donn que pour cette ligne X vaut 1, on inscrit 1 dans
ce carr. De mme, on associe la ligne A = 1 et B = 1 le carr qui a les coordonnes AB. Comme X vaut aussi 1 dans ce cas, on retrouve un 1 dans ce carr. Les autres carrs de ce diagramme K contiennent des 0. Le mme raisonnement s'applique pour les diagrammes trois et quatre variables. 2. Les carrs d'un diagramme K sont dsigns de manire que les carrs adjacents horizontalement n'aient qu'une variable qui soit diffrente. Par exemple, le carr en haut gauche du diagramme quatre variables a comme
- 47 -
coordonnes ABCD et son voisin de droite, ABCD (seule D est diffrente). Il en est de mme pour les carrs adjacents verticalement, leurs coordonnes ne diffrent que par une variable. Par exemple, le carr en haut gauche a comme coordonnes ABCD , tandis que son voisin du dessous a ABCD (seule B est diffrente). Chaque case de la range du haut est considre comme adjacente la case correspondante de la range du bas. Par exemple, la case ABCD de la range du haut est adjacente la case dsigne
ABCD de la range du bas, tant donn que ces deux dsignations ne diffrent que
par la variable A. On peut imaginer que la range du haut est replie et vient continuer la range du bas. C'est aussi la mme chose pour les cases de la colonne de gauche qui sont adjacentes aux cases correspondantes de la colonne de droite. 3. Pour que les cases adjacentes verticalement et horizontalement ne diffrent que par une variable, il faut dsigner les cases de haut en bas selon l'ordre que voici:
AB,AB,AB,AB .
4. Ds qu'un diagramme K est garni de 1 et de 0, il s'agit, pour obtenir l'expression de X sous la forme d'une somme de produits, d'additionner logiquement les carrs qui renferment un 1. Dans le diagramme trois variables de la figure b, les carrs ayant les dsignations ABC,ABC,ABC et ABC contiennent des l , de sorte que X = ABC + ABC + ABC + ABC
Runion
Il est possible de simplifier l'expression de sortie X en combinant selon des rgles prcises les carrs du diagramme K qui contiennent des 1. On donne ce processus de combinaison le nom de runion.
- 48 -
coordonnes ABC . Notez que dans ces deux termes, seule la variable A est prsente la fois sous sa forme normale et sous sa forme complmente (B et C restent telles quelles). Ces deux termes peuvent tre runis (combins), ce qui a pour rsultat d'liminer la variable A, puisqu'on la retrouve aussi bien non complmente que complmente.
- 49 -
AB
Voyons un autre exemple: dans un diagramme K, la ligne du haut et la ligne du bas sont considres comme adjacentes, de sorte que dans le diagramme de la figure c) deux 1 peuvent tre runis pour donner ABC + ABC = BC La figure d) montre un diagramme K qui possde deux doublets pouvant tre runis. D'abord il y a deux 1 dans la ligne du haut qui sont voisins horizontalement; ensuite, il y a deux 1 dans la ligne du bas qui sont galement voisins, puisque dans un diagramme K la colonne de droite et la colonne de gauche sont considres comme adjacentes. La runion des deux 1 de la ligne du haut limine D, pour donner ABC , tandis que la runion des deux 1 de la ligne du bas limine C pour donner ABD . La valeur X finale est la somme logique de ces deux termes.
Rsum.
La runion dun doublet de 1 adjacents dans un diagramme K limine la variable qui est la fois non complmente et complmente.
Remarque: Il faut tre trs attentif quant laffectation de la pondration des variables utilises. En effet si on utilise une table de vrit ou une table de K 3 variables: ABC, il faut savoir si A correspond 20 ou 22. Le rsultat obtenu nest videmment pas le mme.
- 50 -
- 51 -
Quand on runit un quartet, on ne retrouve dans le terme rsultant que les variables qui restent sous la mme forme dans tous les carrs du quartet. Par exemple, en a), les coordonnes des quatre carrs sont:
X = AD
La preuve de ceci s'obtient comme dans les calculs prcdents.
Rsum.
La runion dun quartet de 1 adjacents limine les deux variables qui sont la fois non complmentes et complmentes.
- 52 -
Rsum.
La runion dun d'un octet de 1 adjacents limine les trois variables qui sont la fois non complmentes et complmentes Exercice: vrifier les autres simplifications de la figure.
- 53 -
Quand une variable est prsente la fois sous la forme non complmente et la forme conplmente dans une runion, cette variable est limine de l'expression. Seules apparaissent dans lexpression dfinitive les variables gardant la mme forme dans tous les carrs d'une runion.
prsent, il doit tre clair que plus une runion regroupe de 1 , plus le nombre de variables limines est grand. Plus prcisment encore, une runion de deux 1 provoque l'limination d'une variable, un runion de quatre 1 , l'limination de deux variables et une runion de huit 1 , l'limination de trois variables. C'est ce principe que nous nous proposons de mettre en application pour simplifier l'expression logique d'un diagramme K comprenant une combinaison quelconque de 0 et de 1 . En premier lieu, numrons les tapes de la marche suivre, ensuite nous en verrons l'application dans quelques exemples. Voici les tapes suivre pour simplifier une expression boolenne en recourant la mthode des diagrammes de Karnaugh: 1.Dessinez le diagramme K et placez des 1 dans les carrs correspondant aux lignes de la table de vrit dont la sortie est 1. Mettez des 0 dans les autres carrs. 2.tudiez le diagramme et reprez les 1 adjacents. Encerclez les 1, dit isols, qui ne sont voisins d'aucun autre 1. 3.Ensuite, trouvez les 1 qui sont adjacents seulement un autre 1. Runissez ces doublets de 1 adjacents. 4.Runissez tous les octets de 1 adjacents mme si des 1 se trouvent dj dans des doublets. 5.Runissez tous les quartets de 1 adjacents qui ont au moins un 1 qui n'a pas dj t regroup. 6.Runissez tous les doublets ncessaires pour inclure n'importe quel 1 non encore regroup, en prenant soin d'utiliser le moins de runions possibles. 7.Effectuez l'addition logique de tous les termes rsultant des runions.
- 54 -
EXEMPLES.
combinaisons des niveaux d'entre pour lesquels il nous importe peu que la sortie soit HAUTE ou BASSE. Une illustration de ce qu'on veut dire est donne dans la table de vrit de la figure si-dessous.
Dans cette table aucune valeur de z ne figure pour les conditions A, B, C = 1, 0, 0 et A, B, C = 0, I , 1. Au contraire, on a mis un x. Ce x signifie condition indiffrente. Plusieurs raisons peuvent expliquer la prsence de conditions indiffrentes , la plus courante tant que dans certaines situations ces combinaisons d'entre ne peuvent jamais survenir; par consquent, il est inutile de prciser pour elles une valeur de sortie. Un concepteur de circuit est libre de mettre des 0 ou des 1 vis--vis des conditions indiffrentes en vue de produire l'expression de sortie la plus simple. Par exemple, dans le diagramme K correspondant la table de vrit de la figure b) o x figure dans les carrs
ABC et un 0 dans le carr ABC , puisque ceci produit un quartet de 1 adjacents qui
peuvent tre runis pour produire z = A, comme on le voit la figure c). En prsence de conditions indiffrentes, nous devons dcider quel x de sortie est remplac par un 0 et quel x est remplac par un 1 en vue de runir de la faon la plus efficace les 1 adjacents du diagramme K (pour obtenir l'expression la plus simple). La dcision n'est pas toujours facile prendre.
Conclusion
La mthode des diagrammes de Karnaugh prsente plusieurs avantages comparativement la mthode algbrique. C'est une mthode dont l'application se fait de manire mthodique en suivant des tapes bien dfinies, habituellement moins nombreuses surtout dans le cas d'expressions plusieurs termes, et qui donne toujours l'expression minimale.
- 56 -
1. INTRODUCTION
Cette mthode de simplification d'une fonction logique, bien que prsentant des inconvnients pas rapport la mthode graphique tendant rechercher les composants premiers puis ceux que l'on doit runir pour former la fonction, possde l'avantage d'tre SYSTMATIQUE et donc PROGRAMMABLE. Pour tre valable, cette mthode est uniquement applicable la fonction logique crite sous sa forme canonique dite DISJONCTIVE, c'est--dire qui permet de faire apparatre tous les mintermes de celle-ci. Une fonction crite sous sa forme rduite, c'est--dire dont certains termes ne comportent pas TOUTES les variables indpendantes, devra ncessairement tre mise sous la forme canonique de faon faire apparatre tous les mintermes. Illustrons ceci par un exemple. Soit une fonction F dfinie par trois variables indpendantes a, b, c. et dont l'expression rduite est: F=(a+b).c Cette expression devient en application du principe de la distributivit: F = a.c + b.c Le 1er terme a.c est le minterme rduit de deux mintermes adjacents incluant les variables b et b c'est--dire :
a .b.c et a.b.c
Rappelons galement qu'en vertu de la relation a + a = 1 , le groupement de deux monmes adjacents conduit automatiquement l'limination d'une variable. Exemple:
Le monme ainsi obtenu est appel monme rduit et il contient n-1 lettres alors que les monmes initiaux en contenaient n . Les monmes se distinguent les uns des autres par une notation dite ternaire utilisant les symboles suivants:
- 0 - symbolise l'tat d'une variable CONTRAIRE - 1 - symbolise l'tat d'une variable DIRECTE - * - symbolise t'tat d'une variable INDIFFRENTE
Exemple: Envisageons le cas de la fonction F(a,b,c,d) . Nous savons que la table des combinaisons des tats logiques offre dans le cas prsent 16 possibilits diffrentes. Chaque combinaison est caractrise par un monme reprsentatif. Considrons deux monmes adjacents : a.b.c.d et a.b.c. d L'application de la notation ternaire permettra d'crire: a.b.c.d = ( 1111 ) a.b.c. d = ( 1110 ) Le groupement de ces monmes donnera naissance un monme rduit du fait de la disparition de la variable d , compte tenu de la proprit rappele ci-avant. La variable d qui a t limine lors du processus de fusion des monmes porte
- 58 -
le nom de variable INDIFFRENTE et se trouve symbolise par l'astrisque. Le monme rduit a.b.c s'crira donc en notation ternaire: a.b.c = ( 111* ) De mme, des groupements successifs peuvent amener des monmes rduits tels que:
a.b.c a.b.c
et et
a.b.c a.b.c
Nous constatons donc par cette nouvelle fusion la disparition de deux variables; savoir les variables d et c. Ces dernires deviennent des variables indiffrentes et seront notes par un astrisque dans la reprsentation symbolique suivante:
F(a, b,c,d) = a.b.c.d + a.b.c.d = (1111) + (1110) = (111*) et F(a, b,c,d) = a.b + a.b = (11**) + (10**) = (1***)
Ces exemples permettent d'laborer une mthode qui peut se dfinir comme suit
- 59 -
1. Pour des raisons principalement de PROGRAMMATION les mintermes de la fonction sont exprims SYSTMATIQUEMENT au moyen des notations simples symbolisant les tats logiques 0 et 1 , 2. On recherche systmatiquement les monmes rsultant du groupement de deux monmes adjacents au moyen de la notation ternaire utilisant les symboles 0 , 1 et * , 3. On poursuit la recherche des groupements de monmes adjacents par tapes successives jusqu' l'puisement des possibilits, 4. Les monmes devenus irrductibles s'appellent les IMPLICANTS PREMIERS de la fonction.
Remarques
1. Le processus de simplification dcrit ci-dessus sera traduit dans des tables successives. 2. Les diffrentes tables donneront leur tour naissance un tableau qui laissera apparatre les implicants premiers de la fonction. Illustrons cette mthode et ses remarques par un exemple pratique. Soit une fonction F dfinie partir de trois variables indpendantes. Dressons la table des combinaisons des tats logiques. RANGES 0 1 2 3 4 5 6 7 c 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 a 0 1 0 1 0 1 0 1 F 1 1 1 1 0 1 0 1 MONMES REPRSENTATIFS
c.b.a c.b.a c.b.a c.b.a c.b.a c.b. a c.b.a
c.b.a
F(a, b,c) = c.b.a + c.b.a + c.b.a + c.b.a + c.b.a + c.b.a F(a, b,c) = c.b + c.b + c.a F(a, b,c) = c + c.a F(a, b,c) = c + a
Les implicants premiers de la fonction F sont donc c et a. La fonction F(a,b,c) pourra donc scrire:
Le rsultat ci-dessus s'obtiendra aisment en appliquant systmatiquement la mthode dcrite ci-avant. A partir de la table des combinaisons et la suite de lanalyse de chaque range on peut dduire les commentaires suivants: - un classement par ordre croissant du nombre de variables l'tat 1 entranant obligatoirement la fonction l'tat logique 1 suscitera l'apparition de mintermes symboliss par la notation simple 0 et 1. Ainsi, - la range 0 ne laisse apparatre aucun l, donc le minterme appartient la classe 0 - la range 1 laisse apparatre un 1, donc le minterme correspondant appartient la classe 1, - la range 2 laisse apparatre un 1, donc le minterme correspondant appartient galement la classe 1, - la range 3 laisse apparatre deux l, donc le minterme correspondant appartient la classe 2 , - la range 4 laisse apparatre un 1 mais la fonction F n'est pas gale 1 donc le minterme correspondant ne sera pas retenu, - la range 5 laisse apparatre deux 1,donc le minterme correspondant appartient la classe 2, - la range 6 laisse apparatre deux 1 mais la fonction F n'est pas gale 1 donc le minterme correspondant ne sera pas retenu, - la range 7 laisse apparatre trois 1,donc le minterme correspondant appartient la classe 3,
- 61 -
Cette analyse systmatique va permettre d'laborer la table n1 qui suit. RANGE 0 1 2 3 5 7 CLASSE 0 1 1 2 1 3 NOTATION SIMPLE 000 001 010 011 101 111
A partir de la table prcdente, il faut oprer des groupements de mintermes adjacents de faon pouvoir finalement dterminer les implicants premiers. Remarquons que des mintermes peuvent tre utiliss plusieurs fois lorsquils sont adjacents plusieurs autres. Afin de passer en revue tous les groupements possibles, on marque les termes utiliss pas lapplication d'un X dans chaque table. - range 0 et range 1: limination dune variable, en loccurrence la variable a, do la notation ternaire (0 0 *). La range 0 et 1 sont marques dune croix. - range 0 et range 2: limination dune variable, en loccurrence la variable b, do la notation ternaire (0 * 0). La range 2 est marque dune croix. - range 1 et range 3: limination dune variable, en loccurrence la variable b, do la notation ternaire (0 * 1). La range 3 est marque dune croix. - range 1 et range 5: limination dune variable, en loccurrence la variable c, do la notation ternaire (* 0 1). La range 5 est marque dune croix. - range 2 et range 3: limination dune variable, en loccurrence la variable c, do la notation ternaire (0 1 *). - range 3 et range 7: limination dune variable, en loccurrence la variable c, do la notation ternaire (* 1 1). La range 7 est marque dune croix. - range 5 et range 7: limination dune variable, en loccurrence la variable b, do la notation ternaire (1 * 1).
- 62 -
La nouvelle analyse systmatique va permettre dlaborer la table n2 qui suit. N 1 2 3 4 5 6 7 GROUPEMENTS R0 et R1 R0 et R2 R1 et R3 R1 et R5 R2 et R3 R3 et R7 R5 et R7 NOTATIONS TERNAIRES 00* 0*0 0*1 *01 01* *11 1*1 2 1 CLASSES 0
A partir de1a table n2, il faudra nouveau oprer des groupements de faon tendre finalement vers les implicants premiers de la fonction. Il est remarquer qu'au fur et mesure des simplifications, le nombre de classes diminue, 4 en table n1 et 3 en table n2. On groupera les termes de la classe 0 avec les termes de la classe 1 et ensuite les termes de la classe 1 avec les termes de la classe 2. Cela donne: groupement N1 et groupement N3 : non adjacent donc non retenu. groupement N1 et groupement N4 : non adjacent donc non retenu. groupement N1 et groupement N5 : adjacent, retenu sous (0 * *). groupement N2 et groupement N3 : adjacent, retenu sous (0 * *). groupement N2 et groupement N4 : non adjacent donc non retenu. groupement N2 et groupement N5 : non adjacent donc non retenu. groupement N3 et groupement N6 : non adjacent donc non retenu. groupement N3 et groupement N7 : adjacent, retenu sous (* * 1). groupement N4 et groupement N6 : adjacent, retenu sous (* * 1). groupement N4 et groupement N7 : non adjacent donc non retenu. groupement N5 et groupement N6 : non adjacent donc non retenu. groupement N5 et groupement N7 : non adjacent donc non retenu.
Cette dernire analyse systmatique amine ta conclusion suivante: - les groupements N1 et N5 ainsi que N2 et N3 amne un IMPLICANT
- 63 -
PREMIER caractris par ta notation (0 * *), - les groupements N3 et N7 ainsi que N4 et N6 amne un IMPLICANT PREMIER autre caractris par ta notation (* * 1). Il n'est pas possible de concevoir une table N4 car les monmes rduits obtenus sont irrductibles. Ds lors, on notera que le 1er IMPLICANT PREMIER not (0 * *) et correspondant l'tat contraire de la variable logique c, soit c , dcoule de groupements successifs N1 provenant de la fusion de R0 et de R1, N5 provenant de la fusion de R2 et de R3, N2 provenant de la fusion de R0 et de R2, N3 provenant de la fusion de R1 et de R3, On remarquera que lorsqu'un terme est utilis plusieurs fois dans le processus de la rduction, il n'est port en compte qu'UNE seule FOIS. D'o le 1er implicant premier dcoule des groupements de ranges 0 , 1 , 2 et 3 de la table N1. Un raisonnement analogue au prcdent et relatif au 2d IMPLICANT PREMIER not (* * 1) correspondant l'tat direct de la variable a permis de dduire les groupements successifs: N3 provenant de la fusion de R1 et de R3, N7 provenant de la fusion de R5 et de R7, N4 provenant de la fusion de R1 et de R5, N6 provenant de la fusion de R3 et de R7. d D'o le 2 implicant premier dcoule des groupements de ranges 1,3,5 et 7de la table Nl. Cette nouvelle analyse permet la construction du tableau final ci-dessous dans lequel sont repris d'une part les implicants premiers obtenus et d'autre part les ranges initiales impliques dans le processus de rduction.
- 64 -
On examine ensuite les ranges qui ne sont utilises quune seule FOIS: ici les ranges marques dune croix cest--dire 0, 2, 5 et 7. Les implicants qui correspondent ces ranges sont retenues comme ncessaires. Dans le cas prsent, limplicant c est ncessaire pour 0 et 2, alors que limplicant a est ncessaire pour 5 et 7. Lexpression de la fonction F rduite sera donc: F = c + a Remarquons encore que sil subsiste des monmes, il conviendrait alors danalyser les diffrentes ouvertures minimales et dy rechercher la plus simple possible. Tableau synoptique de ltude dune fonction complte.
- 65 -
- 66 -
b) Forme polynomiale.
On peut dcomposer tout nombre N en fonction des puissances entires de la base de son systme de numration. Considrons, par exemple, le nombre dcimal (base10)93452.On notera en indice la base du systme de numration dans lequel le nombre N envisag est crit. On a: (93452)10 = 9 x 104 + 3 x 103 + 4 x 102 + 5 x 101 + 2 x100 Par dfinition, notre chelle, tout nombre lev la puissance 0 gale 1: a quel que soit a.
=1
- 67 -
Dans le systme dcimal nous disposons des dix symboles (appels chiffres) nots 0, 1, 2, 3, 4, 5, 6,7, 8, 9. Dans un nombre quelconque: - le chiffre de droite (2 dans notre exemple ) s'appelle le chiffre de poids faible, - celui de gauche (9 dans notre exemple) s'appelle le chiffre de poids fort. Ex crire N = (27674)10, sous forme polynomiale et dterminer les chiffres de poids fort et faible. (27674)10= 2 x 104 + 7 x 103 + 6 x 102 + 7 x 101 + 4 x 100 chiffre de poids fort: 2 chiffre de poids faible: 4.
On peut gnraliser cette notion et crire sous une forme plus abstraite tout nombre dcimal N de n + 1 chiffres. On aura:
N
a
i= 0
i= n
10 i les i sont des entiers 0 (i variant de 0 n) et n est l'exposant de 10 du chiffre de poids fort. le signe signifie identique
Ex. Soit N = (2345 6)10. Dterminer: a) le rang (ou poids) du chiffre 5 b) le rang (ou poids) du chiffre 3
- 68 -
Rp.
a): 1 b): 3
a
i= 0
i= n
10 i les i sont des entiers 0 (i variant de 0 n) et n est l'exposant de 10 du chiffre de poids fort. le signe signifie identique
Remarque:
Dans le cas d'une base b quelconque on respectera la mme notation et les mmes conventions. Tout nombre N de base b sera donc dcomposable en fonction des puissances entires de b. On aura donc:
a
i= 0
i= n
bi
o a i {0,1,2, ..., ( b - 1)} les i sont des entiers 0 et n est l'exposant de b du chiffre de poids fort.
a
i= 0
i= n
6i
o a i {0,1,2,3,4,5} les i sont des entiers 0 et n est l'exposant de 6 du chiffre de poids fort.
soit,
(54321) 6 5 64 + 4 63 + 3 62 + 2 61 + 1 60
- 69 -
a
i= 0
i= n
9i
o a i {0,1,2,3,4,5,6,7,8} les i sont des entiers 0 et n est l'exposant de 9 du chiffre de poids fort.
soit, (87836) 9 8 9 + 7 9 + 8 9 + 3 9 + 6 9
4 3 2 1
a
i= 0
i= n
12i
o a i {0,1,2,3,4,5,6,7,8,9, A, B} les i sont des entiers 0 et n est l'exposant de 12 du chiffre de poids fort.
4 3 2 1 0 soit, (9A73B)12 9 12 + A 12 + 7 12 + 3 12 + B 12
a
i= 0
i= n
2i
o a i {0,1} les i sont des entiers 0 et n est l'exposant de 2 du chiffre de poids fort.
5 4 3 2 1 0 soit, (101101) 2 1 2 + 0 2 + 1 2 + 1 2 + 0 2 + 1 2
- 70 -
(101101) 2 1 25 + 0 2 4 + 1 2 3 + 1 2 2 + 0 21 + 1 2 0 1 32 + 0 16 + 1 8 + 1 4 + 0 2 + 1 1 32 + 8 + 4 + 1 ( 45) 10
Exemple 2 Dterminer la valeur dcimale du nombre octal (base 8) N = (6734)8
(A732)16 A 163 + 7 162 + 3 161 + 2 160 10 4096 + 7 256 + 3 16 + 2 40960 + 1792 + 48 + 2 ( 42802) 10
a
i= 0
i= n
8i
o a i {0,1,2,3,4,5,6,7} les i sont des entiers 0 et n est l'exposant de 8 du chiffre de poids fort.
- 71 -
Le problme revient dterminer les valeurs de ai. Pour cela, appliquer l'algorithme suivant:
chercher la plus grande puissance entire de 8 contenue dans N = (39487), retrancher cette quantit de (39487)10, considrer maintenant le reste obtenu et recommencer ce processus.
Il faut donc connatre les diffrentes puissances entires de 8. Elles figurent dans la table ci-dessous. i 0 1 2 3 4 5 On aura successivement: 8i 1 8 64 512 4096 32768
- 72 -
Donc: (39487)10
1 85 + 1 84 + 5 83 + 7 81 + 7 80
On voit que 8 est absent, do a2 = 0, daprs notre relation. On a donc N = (39487)10 = (115077) 8
Exemple2 Convertir le nombre N = (47375)10,en binaire. Comme prcdemment pour 8, dressons une table des puissances entires de 2 et retranchons chaque fois la plus grande puissance entire de 2 possible.
15 13 12 11 8 3 2 1 0 Et lon a : N = (47375)10 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2
On voit que les termes 2 ,2 ,2 ,2 ,2 ,2 ,2 sont absents. Nous en concluons donc que
14
10
a 14 = a10 = a 9 = a 7 = a 6 = a 5 = a 4 = 0
- 73 -
a
i= 0
i= n
bi
o a i {0,1,2, ..., ( b - 1)} les i sont des entiers 0 et n est l'exposant de b du chiffre de poids fort.
On dresse une table donnant les diffrentes puissances entires de la base b du systme de numration dans lequel on veut convertir le nombre dcimal. Au nombre dcimal donn, on retranche la plus grande puissance entire de b possible. Cette puissance dfinit le rang du chiffre dans la reprsentation en base b du nombre. Le nombre de fois (<b) quon retranche cette puissance dfinit le chiffre de ce rang. (En binaire, on ne peut avoir que 1 ou 0, la valeur du chiffre crire est donc immdiate).
2. Deuxime procd de conversion d'un nombre de base dcimale en un nombre de base b quelconque.
Cette mthode est simple et plus rapide que la prcdente. Il est donc conseill de lutiliser dans tous les problmes de conversion. RSUM. Cet algorithme consiste diviser le nombre convertir par la base du nouveau systme et conserver le reste. On rpte ce processus en considrant chaque fois le quotient obtenu. On crit ensuite tous les restes partir de la fin et de gauche droite, en les convertissant en lettres sil y a lieu.
- 74 -
Vrification:
N 2 7 + 2 6 + 25 + 2 2 + 21 + 2 0 128 + 64 + 32 + 4 + 2 + 1 ( 231) 10
r/s
a
i= 0
i= n
10 -i
o a i {0,1,2, ...,9} les i sont des entiers > 0 et n est l'exposant de 10 du chiffre de poids faible.
Si le systme envisag est de base b, on adoptera les mmes conventions; on crira donc un nombre fractionnaire sous la forme:
r/s
a
i= 0
i= n
b -i
o a i {0,1,2, ..., (b - 1)} les i sont des entiers > 0 et n est l'exposant de 10 du chiffre de poids faible.
- 76 -
base b en dcimal..
Exemple 1: Convertir N=(0,1011001101)2 en dcimal. Nous aurons:
N 1 2-1 + 0 2-2 + 1 2-3 + 1 2-4 + 0 2-5 + 0 2-6 + 1 2-7 + 1 2-8 + 0 2-9 + 1 2-10
Pour calculer ce nombre, il nous faut des valeurs dcimales des puissances ngatives de 2. Elles apparaissent dans la table suivante. i 1 2 3 4 5 6 7 8 9 10 La somme 2-i 0,5 0,25 0,125 0,0625 0,03125 0,015625 0,0078125 0,00390625 0,001953125 0,0009765625
Donne
- 77 -
i 1 2 3 La somme
Donne
nombre de base b.
Exemple 1: Convertir N=(0,72145)10 en binaire. Solution: Lalgorithme utilis est analogue celui rencontr prcdemment (page 75), mais au lieu dune division, on aura une multiplication.
Donc, N =(0,72145)10 = (0,101110001)2 Il suffit donc dcrire de gauche droite les nombres encadrs pris de haut en bas. Exemple 2: Convertir N=(0,732)10 en octal. Solution
- 78 -
Ce code est nomm code binaire naturel et dans notre cas plus spcifique code 8421. Chacun de ces chiffres reprsente le poids dun bit. Ce code sera trs souvent utilis ultrieurement en techniques numriques: il serait donc utile quil vous soit familier ds prsent. Nous allons maintenant illustrer comment convertir rapidement un nombre de base 2 en un nombre de base 8.
- 79 -
Rgle: A partir de la virgule, grouper les bits par blocs de trois en allant vers la gauche pour la partie entire et vers la droite pourra la partie fractionnaire. convertir ensuite ces blocs en octal selon le code 8421. Cette proprit dcoule du fait que la base 8 du systme octal est une puissance entire de 2, en effet 8 =23 Exemple 1: Convertir en octal le nombre suivant: N = ( 110 111 011 , 001 101)2 =( 6 7 3 , 1 5 )8 Exemple 2: Convertir N = (567,315)8 en binaire. Solution: Ecrire, par blocs de 3 bits, la valeur binaire des chiffres du nombre octal. On obtient dans ce cas: N = ( 101 110 111 , 011 001 101 )2 Exemple 3: Convertir N= (79182)10 en binaire. Nous allons dabord convertir le nombre dcimal en base 8. Ensuite, nous convertirons chacun des chiffres trouvs en binaire (sur 3 bits car 8 = 23 ). Cest une mthode plus rapide que la conversion directe en binaire car le nombre de divisions par 2 est trois fois plus grand que celui des divisions par 8.
- 80 -
- 81 -
Donc: N = (2CA8)16 = (0010 1100 1010 1000)2 Exemple 3: N = (A78,B32)16 = (1010 0111 1000 , 1011 0011 0010)2
= (11432)10
1 10 = 10 101 10 = 1010
Cela nous permet de faire une autre remarque: ajouter un nombre son gal revient le multiplier par (10)2 , donc lui ajouter un 0:
0+ 0 = 0 0+ 1= 1 1+ 0 = 1 1+ 1 = 0
et report de 1
Lalgorithme de laddition des nombres binaires est le mme que celui de laddition des nombres dcimaux.
- 82 -
Exemple1:
Exemple2:
Pour 1+1 crire 0 et reporter 1. Pour 1+1 et 1 de report, ce qui revient 1+1+1, crire 1 et reporter 1, ce qui revient 11. Il faut faire de nombreux exercices pour se familiariser avec laddition en binaire.
2. La soustraction.
Lorsque le diminuteur est plus petit que le diminuende, on aura un rsultat de signe positif. Dans le cas contraire, intervertir les termes et affecter le rsultat du signe (-) (moins). Dressons la table de la soustraction:
0 0 = 0 0 1= 1 1 0 = 1 1 1 = 0
Exemple. 1011011 - 101111 101100
et retenue de 1.
- 83 -
3. La multiplication.
La disposition des nombres multiplier est la mme en binaire quen dcimal, lalgorithme est aussi le mme. Dressons la table de multiplication:
0 0 = 0 0 1= 0 1 0 = 0 1 1 = 1
Si on multiplie par 1, crire le multiplicande et si on multiplie par zro, crire 0. Exemple1:
Exemple2.
1101101
4. La division.
Pour la division binaire, on utilise la mme disposition et le mme algorithme que pour une division en base 10. Les chiffres du quotient, plus simples, sont 0 ou 1; 1 lorsque le diviseur est plus petit que le dividende et 0 dans lautre cas. Dividende
* * * *
Diviseur Quotient
Reste
- 84 -
Exemple1:
Exemple2:
. LA COMPLMENTATION.
1. Complment 1.
En dcimal, on forme le complment 9 d'un nombre, par exemple 78543, en soustrayant de 9 chaque chiffre de ce nombre. Dans notre cas, on obtient 21456. La somme de ces nombres donne 99999. En binaire, on forme le complment l d'un nombre en soustrayant de 1 chaque bit de ce nombre. Le complment 1 de 101101110010, par exemple, est 010010001101. Donc, pour obtenir le complment 1 d'un nombre binaire il suffit de complmenter
- 85 -
chaque bit: lorsqu'on a 1, crire 0 et lorsqu'on a 0, crire 1. La somme d'un nombre binaire et de son complment 1 est un nombre binaire uniquement compos de 1.
2. Le complment 2.
En dcimal, on forme le complment 10 ou complment vrai d'un nombre, par exemple 673425, en soustrayant de 10 le chiffre de rang 0 et de 9 les autres. Dans notre cas on obtient 326575. Effectuons la somme de ces deux nombres
On obtient
0010100101 + 1 0010100110
Une troisime mthode consiste conserver tous les bits partir de la droite jusqu'au premier 1 compris et de changer les autres bits de 0 en 1 ou de 1 en 0 comme pour le complment 1. Dans notre cas on aurait: 0010100110 bits conservs. Exemple Trouver le complment 2 de 101101101000 Rponse: 010010011000
- 86 -
Si nous prenons le complment 9 du diminuteur, nous obtenons 87542 qui ajout au diminuende donne:
Cette faon de procder sapplique galement aux nombres binaires en utilisant le complment 1. Exemple1: Soit la soustraction suivante:
- 87 -
On peut dj prvoir que lon peut se passer dajouter 1 la fin si on prend le complment 2 du nombre soustraire. Dans ce cas, on aura ajout 1 au moment de la complmentation et le rsultat sera le mme.
Exemple 2: Remarque 1: 11010 est quivalent 00011010, les zros en tte du nombre ntant pas significatifs. Remarque 2: dans cet exemple on a remplac les chiffres manquants en tte du nombre par des zros, ce qui nous a donn des 1 au moment de la complmentation. Cette remarque est trs importante sinon on ne retrouve pas le rsultat de la soustraction.
De plus, dans la plupart des cas, on reprsente les nombres ngatifs sous la forme complment 2. C'est le mode d'criture que nous retiendrons. Nous reprsenterons les nombres sous forme normalise huit caractres. Les nombres ngatifs seront reprsents sous leur forme complment 2. Exemple: Reprsenter sous forme binaire normalise huit caractres les nombres dcimaux.
. LES CODES.
Introduction.
L'action de faire correspondre des nombres, des lettres ou des mots, un groupe spcial de symboles s'appelle codage et le groupe de symboles un code. Un des codes que vous connaissez peut-tre le mieux est le code Morse dans lequel on utilise une srie de points et de traits pour reprsenter les lettres de l'alphabet. Tous les codes que nous avons considr jusqu prsent ont toujours t considrs partir de la base de numration et la valeur attribue un chiffre la toujours t en fonction de sa pondration cest--dire du rang quil occupait dans le nombre; il existe galement des codes non pondrs pour lesquels seule la combinaison des signes est significative de la valeur du nombre considr. Nous aurons donc:
- 89 -
- 90 -
Exemples: (874)10 = (1000 0111 0100)DCB (943)10 = (1001 0100 0011)DCB Remarque: - On fait toujours correspondre 4 bits chaque chiffre. - Seuls les groupes binaires 0000 1001 sont utiliss. - Le code DCB ne fait pas usage des groupes 1010, 1011, 1100, 1101, 1110 et 1111. Autrement dit, seuls dix des 16 groupes de 4 bits sont utiliss. Si l'une des combinaisons inadmissibles apparat dans une machine utilisant le code DC B, c'est gnralement le signe qu'une erreur s'est produite. (0110100000111001) DC B =(6839)10 (011111000001) DC B =(7***1)10 *** reprsente une erreur: en effet, 1100 nest pas accept Comparaison entre code DCB et nombre binaire. Il importe de bien raliser que le code DC B n'est pas un autre systme de numration comme les systmes octal, dcimal ou hexadcimal. En fait, ce code est le systme dcimal dont on a converti les chiffres en leur quivalent binaire. En outre, il faut bien comprendre qu'un nombre DCB n'est pas un nombre binaire pur. Quand on code selon le systme binaire pur, on prend le nombre dcimal dans son intgralit et on le convertit en binaire, sans le fractionner; par ailleurs, quand on code en DCB, c'est chaque chiffe individuel qui est remplac par son quivalent binaire. titre d'exemple, prenons le nombre 137 et trouvons son nombre binaire pur puis son quivalent DCB: (137)10 = (10001001)2 = (0001 0011 0111)DCB Le code DC B ncessite 12 bits pour reprsenter 137 tandis que le nombre binaire pur n'a besoin que de 8 bits. Il faut plus de bits en DCB qu'en binaire pur pour reprsenter les nombres dcimaux de plus d'un chiffre. Comme vous le savez, il en est ainsi parce que le code DCB n'utilise pas toutes les combinaisons possibles de groupes de 4 bits; c'est donc un code peu efficace. Le principal avantage du code DCB provient de la facilit relative avec laquelle on passe de ce code un nombre dcimal, et vice versa.. Il ne faut retenir que les groupes de 4 bits des chiffres 0 9. C'est un avantage non ngligeable du point de vue du matriel, puisque dans un systme numrique ce sont des circuits logiques qui ont la charge d'effectuer ces conversions.
- 91 -
quibinaire 86420 00001 00001 00010 00010 00100 00100 01000 01000 10000 10 01 10 01 10 01 10 01 10 01
10000 10
- 93 -
Un examen des groupes du code Gray pour chaque chiffre dcimal montre bien que lorsqu'on passe d'un certain chiffre au suivant, il n'y a qu'un bit qui est diffrent entre les deux groupes. Par exemple, la reprsentation de 3 dans le code Gray est 0010 et celle de 4 0110, il n'y a que le deuxime bit partir de la gauche qui soit diffrent. De mme, entre 14 et 15, soit entre 1001 et 1000, seul le dernier bit n'est pas pareil. On vient de voir l la principale caractristique du code Gray; l'oppos, dans le code binaire, il peut y avoir jusqu' quatre bits diffrents d'une reprsentation l'autre. Le code Gray sert souvent dans des situations o d'autres codes, comme le code binaire, peuvent produire des rsultats ambigus ou errons au moment de transitions entranant le changement de plusieurs bits dans le code. Par exemple, dans le code binaire, lorsqu'on passe de 0111 1000, les quatre bits changent en mme temps. Suivant le dispositif ou le circuit qui produit les bits, il pourra y avoir un diffrence prononce entre les temps de transition des divers bits. Si c'est le cas, la transition 0111 1000 pourra occasionner un ou plusieurs tats intermdiaires. Donc, s'il arrive que le bit de poids le plus fort change avant les autres, on observera les transitions suivantes:
- 94 -
0 1 1 9 1 1 1 9 9 1 0 0
1 1 9 0
L'apparition de 1111 est seulement temporaire mais cette reprsentation peut, comme en s'en doute bien, donner lieu un fonctionnement imprvisible des circuits contrls par ces bits. videmment, avec le code Gray une telle situation est impossible puisqu'un seul bit est chang la fois au cours d'une transition. Remarque: Ce code binaire est dit rflchi, car n-1 de ses bits peuvent tre gnrs par rflexion comme lillustre le tableau prcdent: cest comme si lon plaait un miroir actif sur les axes pour reproduire les lments du code, do le nom de codes rflchis.
Exemple dapplication du code Gray Le diagramme simplifi d'un codeur muni d'un mcanisme de positionnement rotatif est illustr la figure suivante. Trois anneaux conducteurs concentriques sont segments en huit secteurs. Chaque secteur de chaque anneau est fix une tension de niveau HAUT ou de niveau BAS afin de reprsenter 1 ou 0. Le 1 correspond un secteur fonc et le 0 correspond un secteur blanc . Les anneaux, tournant avec l'arbre, tablissent des contacts lectriques avec un arrangement de frotteurs position fixe, sur lesquels sont connectes des lignes de sortie. mesure que l'arbre accomplit une rotation de 360 dans le sens anti-horaire, les huit secteurs se dplacent sur les trois frotteurs en produisant une sortie binaire de 3 bits correspondant la position de l'arbre. La figure a) illustre l'arrangement binaire des secteurs, permettant, aux frotteurs de passer conscutivement de 000 001 010 011 et ainsi de suite. Les frotteurs produisent une sortie de 1 lorsqu'ils passent sur un secteur fonc et une sortie de 0 lorsqu'ils traversent un secteur blanc. Si un frotteur est lgrement en avance sur les autres durant sa transition d'un secteur un autre, il peut produire une sortie errone. Imaginons ce qui se produit lorsque les frotteurs sont sur le point de quitter le secteur 111 pour entrer dans le secteur 000. Si le frotteur du MSB est lgrement en avance, la position est indique incorrectement avec une
- 95 -
transition de 011 au lieu du 111 ou du 000. Il est pratiquement impossible de conserver un alignement mcanique prcis de tous les frotteurs dans ce type d'application. Par consquent, il est invitable que des erreurs se produiront lors des nombreuses transitions entre les secteurs. Le code Gray est employ pour liminer ce problme d'erreurs inhrent au code binaire. La figure b) montre que le code Gray assure le changement d'un seul bit entre les secteurs adjacents. Il n'y a donc plus d'erreur possible lors des transitions, mme si les frotteurs ne sont pas aligns prcisment. Examinons encore ce qui se passe lorsque les frotteurs sont sur le point de quitter le secteur 111 pour glisser sur le secteur suivant, 101. Les deux seules sorties possibles durant cette transition sont 111 et 101, peu importe l'alignement des frotteurs. Une situation similaire se produit galement pour les transitions de tous les autres secteurs.
- 96 -
Comme on le voit facilement, un seul bit change dtat dun nombre lautre. Reprsentation dun nombre Gray en dcimal. Procd: - 1. Le bit de poids le plus fort du code binaire, situ lextrme gauche, est identique au bit correspondant du code Gray correspondant du nombre binaire. - 2. Additionnez chaque nouveau bit du code binaire cr au bit de code Gray adjacent suivant (situ immdiatement droite). Rejetez les retenues. - 3. Convertir ce nombre binaire en dcimal.
- 96 bis-
- 97
- 98
Autre reprsentation.
- 99
5- Code ANSI utilis par Windows (code bas sur le code ASCII)
Les logiciels sous Windows de Microsoft utilisent la norme ANSI (American National Standard Institute) qui reprend en grande partie le code ASCII, et propose des extensions diffrentes selon le code de page retenu. Ainsi le code page 850 est-il un jeu de caractres multilingue alors que le code page 864 dfinit un jeu de caractres arabe , le code 865 un jeu nordique ... Ce code de page est choisi lors de la configuration du systme et permet de dfinir le jeu de caractres qui va tre employ avec la machine. L'utilisation du code ANSI se fait de la mme manire que pour un code ASCII, c'est dire que la valeur d'un caractre se dtermine par reprage des valeurs des intersections colonne-ligne.. Vous trouverez ci-aprs le tableau des codes ANSI correspondant au code page 850 trs employ en France (le code 437 est galement trs employ en France mais diffre assez peu du code de page 850), ainsi que le tableau du code page 864, afin de bien visualiser les diffrences, qui s'appliquent essentiellement la partie tendue du code.
- 100
- 101
1 0
0 0 0 0
1 1 1 1
1 1 1 1
0 0 0 0
1 1 1 1
0 1 0 1
0 0 0 0
0 1
Le bit supplmentaire est donc un bit de contrle gal la somme modulo 2 des n bits du mot originel. A la rception, le bit de parit sera calcul et s'il est gal la parit reue, le mot contrl sera considr comme valide. Cette procdure est aussi utilise pour vrifier l'intgrit des informations des mmoires RAM des ordinateurs. Dans la pratique, le bit de parit est souvent remplac par un bit d'imparit (mme principe). Par abus de langage, certains utilisateurs parlent alors de parit impaire (incorrect) par opposition une parit paire (plonasme) et disent que la parit sur un mot est paire si le nombre de bits 1 dans ce mot, y compris le bit de parit, est pair. Sinon, elle est impaire.
- 102
L'utilisation d'un bit de parit (ou d'imparit) est trs simple et facilement implmente par des circuits XOR. Cependant, elle n'est pas trs fiable puisquun nombre pair d'erreurs dans un mot ne sera pas dtect (erreurs simultanes sur deux, quatre, six ou huit bits, ce qui ne change pas la parit paire). Exemple: contrle de parit paire mission: 10110100 rception: 10010100 > erreur de transmission mission: 10110100 rception: 10000100 > OK et pourtant le message reu nest pas celui qui a t mis (2 erreurs).
Les codes dtecteurs d'erreurs ne permettent que de constater d'ventuelles erreurs. Ils ne fournissent aucune indication permettant de les corriger. Dans le cas d'une transmission de donnes, un bloc acquitt ngativement doit tre envoy une seconde fois ce qui peut s'avrer trs coteux en terme de dure de transmission si les messages sont trs longs ou si la frquence des erreurs est leve (d'o l'intrt de choisir une longueur de bloc et une vitesse de transmission optimales).
2. Les contrles LRC, VRC et la parit croise. La mthode du caractre LRC (Longitudinal Redondancy Check) est utilise pour renforcer le contrle de validit des informations changes. Pour un bloc de N caractres de n bits, nous calculons la parit sur tous les bits de rang 0, la parit sur tous les bits de rang 1, ...., la parit sur tous les bits de rang (n - 1). Nous obtenons donc n bits de parit regroups en un seul caractre appel LRC ou parit horizontale (par opposition la parit verticale). La parit horizontale est trs facilement obtenue en effectuant un simple
- 103
OU exclusif entre les N caractres dun bloc. Pour la parit verticale, un OU exclusif entre les n bits d'un mme caractre suffit. En utilisant les codes de blocs et le contrle de parit, il est possible d'assurer une vrification dite par parits croises ou LRC / VRC qui assure une meilleure dtection et la correction de certaines erreurs. Il convient pour cela de regrouper les caractres en blocs et d'ajouter la fin de chaque bloc un caractre supplmentaire dit LRC qui se combine au contrle VRC. Exemple: codage des caractres en ASCII (7 bits) et 3 caractres par bloc. Caractres transmettre: CD-RW C VRC 1 1 0 0 0 0 1 1 D 0 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 R 1 1 0 1 0 0 1 0 W 1 1 0 1 0 1 1 1 L RC 1 0 1 0 1 1 1 1 <--- parit croise
La squence de caractres transmises (en valeurs hexadcimales) est: C3 44 2D D2 D7 AF au lieu de 43 44 2D 52 57 Dans la pratique, la longueur d'un bloc est au moins de 256, 512 ou 1024 caractres. Mme s'il donne de meilleurs rsultats qu'une parit simple, un contrle par LRC et VRC ne garantit pas la dtection de toutes les erreurs.
- 104
Il suffit d'un nombre pair derreurs sur les mmes bits d'un nombre pair de caractres pour que le systme soit mis en dfaut. Un tel code dtecte donc toutes les erreurs simples, doubles ou triples et peut corriger toutes les erreurs simples. Exemple: considrons une erreur de transmission ayant affect un seul bit C
VRC
D 0 1 0 0 0 1 0 0
0 0 1 0 1 1 0 1
R 1 1 0 1 0 0 1 0
W 1 1 0 1 0 1 1 1
1 1 0 0 0 1 1 1
Vrifions la parit croise en fonction des codes LRC et VRC, tout est correct. Vrifions sparment les codes LRC et VRC en les recalculant. Il y a une erreur dans la 1 re colonne du VRC et une autre dans la 5 me ligne du LRC. L'intersection de cette ligne et de cette colonne nous permet de retrouver le bit erron et donc de le corriger (complmenter).
- 105
- Annexes
A. Reprsentation des nombres entiers signs. Codage en complment vrai (complment deux). Pour reprsenter des informations en binaire, la longueur minimale d'un mot devra tre telle que:
2n 1 < p 2n
On parle alors de codage sur n bits (ou n chiffres binaires). Inversement, n bits permettront de reprsenter 2 n informations diffrentes sur n bits chacune. Dans ce qui suit, nous ne nous intressons qu' la reprsentation d'objets en binaire (base 2) et sur des mots d'une longueur de n bits, numrots, de droite gauche, de 0 n - 1. Ainsi, un mot de huit bits (octet), sera reprsent par: 7 MSB MSB (Most Significant Bit) = bit de poids le plus fort LSB (Least Significant Bit) = bit de poids le plus faible Avec n bits, il est possible de coder 2 n entiers non signs ( N) de 0 2 n - 1. On parle alors de codage en binaire pur ou binaire naturel. Pour coder un sous-ensemble fini des entiers relatifs ( Z), 3 solutions sont envisageables: - codage en valeur absolue plus signe, - codage en complment un (complment restreint), - codage en complment deux (complment vrai). 6 5 4 3 2 1 0 LSB
- 106
Or, pour coder correctement les entiers signs, seule la mthode du complment deux (complment vrai) est valable et cest dailleurs elle qui a t retenue pour coder les nombres entiers signs sur les ordinateurs (Basic, Pascal, Delphi, C, C++, ...). Les entiers positifs sont reprsents en binaire pur sur les (n - 1) bits de droite avec zro pour le n ime bit. Les entiers ngatifs N sont cods par 2 n - |N| La somme de deux nombres opposs sera donc gale 2 n. Or, 2 n s'crit 1 suivi de n zros, ce qui ne peut pas tre reprsent sur n bits. En ignorant le 1 gnr en position n + 1, la somme sur n bits de deux valeurs opposes codes en complment 2 sur n bits est gale zro.
Le rsultat de l'addition binaire d'un nombre et de son complment donne n 0" et une retenue. Si on note N le complment deux de N, nous obtenons:
N + N = 2n
Dans la pratique, prendre le complment deux d'un nombre revient prendre son complment 1 (complmenter tous les bits) et ajouter 1 au rsultat (2 n = 2 n - 1 + 1). Le passage d'un entier positif l'entier ngatif de mme valeur absolue (et inversement) se fait en complmentant le nombre bit bit, puis en ajoutant 1 au rsultat de la complmentation. Par dfinition: N = 2 N = (2 1) N + 1 et
n n
[ (2
Cette rgle est valable aussi bien pour le codage que pour le dcodage (attention, d'abord complmenter, puis ajouter 1 et non pas effectuer lopration inverse).
- 107
Relations: Si 0 < N < 2 n - 1 (base 2, n bits, nombre N), alors: code (-N) = cv (N) = code (2 n - N)
cv (N) = cr (N) + 1 = code (2 n - N) code (N) = cv (code (-N)) code (-N) = cv (code (N)) code (N) + code (-N) = code (2 n) > valeur zro
code (A) + code (B) = code (A) + code (B) code (A) - code (B) = code (A) + code (-B)
Valeurs reprsentables sur n bits: positives de 000...000 011...111 (0 ... 2 n - 1 -1) ngatives de 100...000 111...111 (-2 n - 1 ... -1) Le bit de gauche est un bit de signe et il n'y a qu'une seule reprsentation du zro.
En complment deux, il existe donc un nombre ngatif de plus que de nombres positifs. Ceci est vrai pour toute reprsentation en complment vrai dans une base de numration paire. En revanche, lorsque la base est impaire, il y a symtrie parfaite par rapport zro. Exemple: pour n = 3
- 108
Valeur +0 +1 +2 +3 -4 -3 -2 -1
On remarquera le cas particulier du code binaire 100 (1 suivi de (n - 1) 0 dans le cas gnral) qui correspond la valeur dcimale - 4 (- 2 n - 1 en gnral) et pour lequel il n'existe pas d'oppos. Le codage des entiers signs en complment deux est aujourd'hui le plus rpandu, car il possde non seulement l'avantage du zro unique, mais galement celui de transformer une soustraction en simple addition du complment (ceci est vrai galement en complment 1 modulo la correction de 11...11 en 0). Il est donc possible d'utiliser les mmes circuits matriels pour raliser les additions et les soustractions (en fait, un simple additionneur peut suffire pour raliser les quatre oprations arithmtiques de base). Exemple: pour n = 16 Code 0000 0000 0000 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1110 Valeur +2 +1 0 -1 -2
- 109
Exemple : coder en complment deux et calculer la valeur de (15)10 - (10)10 En binaire pur, l'on obtient (1111)2 - (1010)2 = (101)2 En complment deux, il faut 5 bits pour coder les donnes puisque le bit de gauche est un bit de signe. 01111 <--- codage de + 15 + 10110 <--- complment deux de + 10 -----------100101 <--- rsultat correct sur 5 bits
Pour pouvoir coder ou dcoder un nombre sign, il est indispensable de connatre la longueur des mots utiliss pour la reprsentation (le nombre de bits si l'on est en base 2). La reprsentation des nombres entiers se fait le plus souvent sur 16 bits en complment deux. Dans ce cas, tout nombre entier N est tel que:
3276810 N 3276710
Type int short int unsigned int long int unsigned long
- 110
A. Reprsentation des nombres rels. La norme IEEE 754. Au cours des premires gnrations d'ordinateurs, chaque constructeur fixait ses propres conventions de reprsentation des rels sans tenir compte de ses concurrents. Il en rsulta que des calculs s'excutant correctement sur une machine donne, produisaient des rsultats diffrents, voire compltement errons sur dautres. Il tait donc souvent impossible de transporter un programme sans le modifier en fonction de l'architecture et des conventions de reprsentation de la nouvelle machine cible. Pour rsoudre ce problme, plusieurs standards de format et de prcision pour les flottants ont t dfinis. L'un de ces standards, aujourd'hui adopt par la plupart des constructeurs et dveloppeurs de logiciels est la norme IEEE-754 (de 1985). Elle dfinit le format de reprsentation des nombres en virgule flottante en simple et double prcision (sur 32 et 64 bits respectivement) et donne une liste des oprations pouvant tre effectues sur ces flottants. Cette norme (IEEE-754) a t prconise par lI.E.E.E. (Institute of Electrical and Electronics Engineers). * en simple prcision: La reprsentation est ralise sur 32 bits. La mantisse est code sur 23 bits explicites (m0 m22) et l'exposant sur 8 bits (e0 e7). La valeur du nombre est note comme suit:
- 111
Eint = valeur de la reprsentation interne de lexposant. signe 32 exposant e7 ... e0 30 23 mantisse m22 ... m0 22 0
* en double prcision: La reprsentation est ralise sur 64 bits. La mantisse est code sur 52 bits explicites (m0 m51) et l'exposant sur 11 bits (e0 e10). La valeur du nombre est note comme suit: valeur = (- 1) signe . 2 (E int - 1 0 2 3 ) . 1,mantisse Eint = valeur de la reprsentation interne de lexposant. signe 63 exposant e10 ... e0 62 52 mantisse m51 ... m0 51 0
Cest la norme IEEE-754 double prcision. Ce codage est du type mantisse en valeur absolue plus signe avec un exposant biais, le tout sur 32 bits (4 octets) ou 64 bits (8 octets). Le bit de signe de la mantisse est cod par 0 si cette dernire est positive et par 1 dans le cas contraire. La valeur absolue d'une mantisse non nulle est code sur 24 bits (ou 53 bits) et est comprise dans lintervalle [1, 2[ Le bit de poids 20 n'est pas cod explicitement puisque, la mantisse tant normalise, il vaudra toujours 1.
- 112
On ne code donc que la partie dcimale de la mantisse (23 ou 52 bits de droite). La forme de la mantisse est du type 1,xxxx Simple prcision bit de signe bit de lexposant bit de mantisse nombre total de bits codage de lexposant variation de lexposant plus petit nombre normalis plus grand nombre normalis chelle des nombres dcimaux plus petit nombre dnormalis 1 8 23 32 excdant 127 - 126 + 127 2 -126 ~ 2 + 128 10 - 38 10 + 38 ~ 10 - 45 Double prcision 1 11 52 64 excdant 1023 - 1022 + 1023 2 -1022 ~ 2 + 1024 10 - 308 10 + 308 ~ 10 - 324
En C++, il existe 3 types prdfinis de rels: Type float double long double Taille (en octets) 4 8 10 Intervalle 3,4 x 10 -38 ... 3,4 x 1038 1,7 x 10 -308 ... 1,7 x 10308 3,4 x 10 -4932 ... 1,1 x 104932 Prcision (chiffres) 7 15 19
Exemple: coder (2,5)10 en flottant simple prcision. Il faut procder comme suit: * convertir (2,5)10 en binaire > (10,1)2, * normaliser > 1,01 * 21 (exposant 1, mantisse 01), * calculer la reprsentation de l'exposant Eint: Eint = exposant + 127 > Eint = 128, * convertir lexposant en binaire > Eint = 10000000, * calculer le bit de signe, ici S = 0.
- 113
La reprsentation de 2,5 en machine est donc: 0 | 100 0000 0 | 010 0000 0000 0000 0000 0000 que l'on peut exprimer en hexadcimal: (40 20 00 00)16. Certaines conventions sont ncessaires pour reprsenter des nombres spciaux, tels que le zro absolu et linfini. Reprsentation de lexposant (RE) RE = 255 ou 2047 RE = 255 ou 2047 RE = 0 Mantisse (M) M 0 M=0 M 0 Valeur Signification
, selon le signe
Plus petits nombres reprsentables. Dnormalisation. Plus ou moins zro, selon le signe Nombre normal en virgule flottante. Normalisation.
M=0
Les divers formats de nombres du standard IEEE: * normalis: + 0 < exp < Max configuration quelconque de bits
- 114
Les nombres dnormaliss: Les nombres dnormaliss sont des reprsentations de nombres tels que le bit implicite est gal 0 (au lieu de 1 pour la normalisation). La valeur dun nombre dnormalis en reprsentation flottante sur 32 bits est: valeur = (- 1) signe . 2 (E int - 1 2 6 ) . 0,mantisse
Sans les nombres dnormaliss, les nombres plus petits que la plus petite valeur normalise seraient considrs comme gal 0.
X = 0 X+ = X = = NAN
arctan( ) =
2 X = NAN
0 = NAN 0
- 115
Domaines couverts: * IEEE 32 bits: nombres ngatifs > - 10 38 - 10 - 38 nombres positifs > 10 - 38 10 38 * IEEE 64 bits: nombres ngatifs > - 10 308 - 10 - 308 nombres positifs > 10 - 308 10 308 Densit des nombres: La densit selon laquelle les nombres en virgule flottante couvrent laxe continu des nombres rels dpend de lexposant. Si nous disposons de p bits pour la mantisse, lintervalle entre un nombre 2 f et un nombre 2 f + 1 est couvert par 2 p nombres quidistants en virgule flottante. Entre 210 (1024) et 211 (2048), il y a 223 (8.388.608) nombres en virgule flottante. La distance entre 2 nombres en virgule flottante est de 1/8192 (1,22 . 10 -4). Entre 220 (1.048.576) et 221 (2.097.152), la distance nest plus que de 1/8 (0,125). Prcision de la reprsentation: cest la diffrence quil y a entre les mantisses de deux nombres rels conscutifs dans la reprsentation choisie. Cette prcision est indpendante de lexposant, elle ne dpend que de la mantisse. Pour lIEEE-754 sur 32 bits > prcision de 2 - 23 (erreur < 10 - 7 ) > les 7 premiers chiffres sont correctement reprsents Pour lIEEE-754 sur 64 bits > prcision de 2 - 52 (erreur < 10 - 16 ) > les 16 premiers chiffres sont correctement reprsents Dpassement de capacit: Il y a dpassement de capacit lorsquun rsultat ne peut tre exprim selon le format virgule flottante adopt. Pour le format IEEE 32 bits, il y a dpassement de capacit si lexposant du rsultat normalis dpasse 2 127 (RE > 254) ou sil est plus petit que 2 -127 (RE < 0). 1,5 . 270 multipli par 1,5 . 280 provoque un dpassement de capacit (overflow).
- 116
1,5 . 270 divis par 1,5 . 280 provoque un dpassement de capacit (underflow). Exemple: quelle est la valeur dcimale reprsente par (41 40 00 00)16 0 100 0001 0 100 0000 0000 0000 0000 0000
Signe + > bit de signe 0 Exposant = 130 - 127 = 3 Mantisse = 1 + 0,5 = 1,5 (mantisse entre 1 et 2, bit implicite non cod) Valeur = 23 . 1,5 = 12 Arrondi: tant donn le nombre fixe de bits retenus pour la reprsentation, il est parfois ncessaire darrondir les rsultats obtenus. La norme IEEE-754 propose 4 manires darrondir les nombres: * arrondi au plus proche * arrondi vers 0 * arrondi vers + * arrondi vers
C. Retenue et dbordement.
Les entiers, mais galement tous les autres objets, sont reprsents en machine sur un nombre fini de bits. Le nombre de valeurs qu'il est possible de reprsenter est donc lui aussi fini. On ne peut donc coder qu'un sous-ensemble de N, de Z ou de R. Or il peut arriver qu'une opration arithmtique entre deux oprandes reprsentables sur n bits conduise un rsultat non reprsentable sur n bits. Dans certains cas, il faudra alors considrer ce rsultat comme erron, et dans dautres, il suffira dignorer les bits en trop pour obtenir le rsultat correct. Exemple : sur 8 bits en complment deux 0100 0000 <--- (64)10 + 0100 0001 <--- (65)10 ----------------1000 0001 <--- - (127)10 ce qui est faux !!! (overflow) 1111 1110 <--- - (2)10 + 1111 1100 <--- - (4)10 ----------------1 1111 1010 <--- - (6)10 correct en ignorant le 1 de gauche (retenue)
- 117
Supposons une reprsentation sur n bits numrots de gauche droite n-1 n-2 ... 1 0 Il y a retenue si une opration arithmtique provoque un report du bit (n-1) vers le bit n qui n'existe pas. Dans le cas d'une addition, on parle alors de carry. Pour une soustraction, on parle de borrow. Il y a dbordement (overflow) si le rsultat sur n bits d'une opration est faux, indpendamment d'un ventuel report. Dans le cas des entiers naturels (non signs) reprsents sur n bits (binaire pur), il y a toujours erreur par dpassement de capacit si une opration produit un carry. De plus, il ne peut pas y avoir derreur sans report. Dans le cas des entiers relatifs (signs), reprsents sur n bits (en complment deux), il ny a overflow que si une addition ou une soustraction sur n bits entre deux valeurs de mme signe conduit un rsultat de signe diffrent (deux valeurs de signes opposs ne peuvent pas provoquer d'erreur). N.B: * tous les processeurs disposent au niveau interne d'un registre spcial appel registre d'tat ou registre des indicateurs (status register) et refltant, comme son nom l'indique, l'tat du processeur un instant donn. * CF (carry flag) > indicateur de retenue
* OF (overflow flag) > indicateur de dbordement Relations: Intervalle de reprsentation de valeurs [MIN, MAX]: code (MAX) + 1 = code (MIN) code (MIN) - 1 = code (MAX)
- 118
S = A + B (S Somme et + Plus)
Table de vrit C est le report (ou carry) au rang i+1 du rang i A 0 0 1 1 B 0 1 0 1 S 0 1 1 0 C 0 0 0 1
S= A B C = A.B
- 119 -
S = ABC S = A BC
en
+ ABC
en
+ ABC
en
+ ABC en
- 121 -
2.
D = A B (D Diffrence et - Moins)
Table de vrit B0 est lemprunt (Borrow) au rang suprieur. A 0 1 1 0 B 0 0 1 1 D 0 1 0 1 B0 0 0 0 1
D = A B Bo = A.B
Remarque: La diffrence entre le semi-additionneur et le semi-soustracteur est tout simplement que lon entre A pour le semi-soustracteur dans le ET qui donne Bo et A pour le semi-additionneur dans le ET qui donne C.
- 122 -
D = A B Bo
en
Bo = A.B + (A B)..Bo S en
On peut raliser le soustracteur complet avec 2 semi-soustracteur et un circuit OU
- 123 -
3.Additionneur-soustracteur.
On peut raliser assez facilement un additionneur-soustracteur pour 2 lments binaires en faisant un aiguillage par la commande de MODE qui fera entrer A (ADD) ou A (SOUSTR.) Puisque les fonctions logiques sont identiques. Par exemple: S = M.A + M.A M=1 ADD A M=0 SOUSTR. A
S = M.A.M.A
- 124 -
- 125 -
EXEMPLE: Dterminer les niveaux logiques aux entres et aux sorties de ladditionneur 8 bits de la figure prcdente quand on effectue lopration en dcimal suivante: 137+72. Solution Il faut dabord convertir chaque nombre en son quivalent binaire de 8 bits: (137)10 = (10001001)2 (72)10 = (01001000)2 Ces 2 expressions binaires sont appliques aux entres A et B, cest--dire que lon retrouve sur les entres A de gauche droite, les valeurs binaires: 10001001, et sur les entres B, aussi de gauche droite les valeurs binaires: 010010000. Ladditionneur effectue laddition binaire de ces 2 nombres: [A] = 10001001 [B] = 01001000 [S] = 11010001 Les sorties de la somme portent de gauche droite le chiffre 11010001. Il ny a pas de dpassement sur le bits C8, qui est donc un 0.
5. NOTATION COMPLMENT 2.
Aujourd'hui, la majorit des ordinateurs expriment leurs nombres ngatifs selon la notation en complment 2 et utilisent cette notation quand ils effectuent des soustractions. L'addition et la soustraction des nombres signs se rsument une simple addition si on exprime les nombres ngatifs selon la notation en complment 2. Addition L'addition de nombres positifs et ngatifs, y compris leur bit de signe, est possible dans l'additionneur parallle de base si les nombres ngatifs sont sous leur version complment 2. On peut voir une illustration de ceci la figure suivante, dans le cas de l'addition de 3 + 6. Le nombre - 3 est sous sa forme complment 2 soit 1101, o le premier 1 est le bit de signe; le nombre + 6 est sous sa forme normale, soit 0110, le premier 0 tant le bit de signe. Ces nombres sont mmoriss dans les registres correspondants. L'additionneur parallle de 4 bits produit alors la somme 0011 sur les bornes de sortie, ce qui correspond + 3. La sortie C4 est 1, mais ce report est rejet dans la mthode complment 2.
- 126 -
Soustraction Quand on soustrait en utilisant la notation complment 2, le diminuteur est complment 2 puis additionn au diminuande (le nombre dont on soustrait le diminuteur). Supposons que le diminuande est dj mmoris dans l'accumulateur (registre A). Le diminuteur se voit alors transfr dans le registre B (dans un ordinateur ce nombre provient de la mmoire) puis est complment 2 avant d'tre additionn au nombre contenu dans le registre A. Les sorties somme de l'additionneur reprsentent la diffrence entre le diminuande et le diminuteur. Le circuit additionneur parallle dj examin peut tre modifi pour soustraire si on prvoit une faon de prendre le complment 2 du nombre contenu dans le registre B. On sait que le complment 2 d'un nombre binaire s'obtient en complmentant chaque bit et en ajoutant 1 son bit de poids le plus faible.
- 127 -
Cette figure montre comment un additionneur peut servir pour la soustraction. On utilise les sorties complmentes du registre B plutt que les sorties normales; c'est--dire qu'on applique aux entres de l'additionneur B 0 , B1 , B2 , B3 (se rappeler que B3 est le bit de signe). De cette manire, on complmente chaque bit du nombre B. En outre, on transforme Co en un 1 logique, de sorte qu'on additionne ainsi un 1 au bit de poids le plus faible de l'additionneur; cette faon de procder a le mme effet que d'additionner 1 au bit de poids le plus faible du registre B afin d'obtenir son complment 2. Les sorties S3-S0 prsentent un nombre correspondant au rsultat de l'opration de soustraction. videmment S3 est le bit de signe du rsultat et indique qu'il est soit positif, soit ngatif. Le report C4 est nouveau rejet. Pour bien fixer les ides, tudions les diverses tapes de la soustraction suivante: +4 - (+6): 1. +4 est mmoris dans le registre A sous la forme 0100. 2. + 6 est mmoris dans le registre B sous la forme 0110. 3. Les sorties complmentes du registre B sont transmises l'additionneur, ce qui arrive est donc 1001. 4. Le nombre 1001 est ajout 0100 par l'additionneur parallle; de plus, on fait en sorte que l'additionneur parallle ajoute un 1 au chiffre de son rang de poids le plus faible en s'assurant que Co = 1. La rponse apparaissant sur les bits de la somme est 1110 et C4 = 1, report qui est rejet comme on le sait. Ce nombre 1110 reprsente la diffrence recherche. Etant donn que le bit de signe gale 1, notre rponse est un nombre ngatif exprim dans sa version complment 2. On peut vrifier que 1110 reprsente - 210 en le complmentant 2; cette complmentation donne + 210: 1110 0001 + 1 0010 = +210
- 128 -
6. ADDITIONNEUR DCB.
La marche suivre pour additionner en DCB est la suivante: 1. Additionnez les reprsentations codes DCB pour chaque rang du chiffre dcimal; utilisez les rgles de l'addition binaire ordinaire. 2. Pour les rangs du nombre dont la somme est infrieure 9, la rponse est dj une reprsentation DCB valide et aucune correction n'est ncessaire. 3. Quand la somme de deux chiffres dpasse 9, il faut additionner une correction de 0110 la somme pour obtenir la reprsentation code DCB valide. Ceci a pour effet de produire un report qui doit tre additionn au rang immdiatement gauche du nombre dcimal. Un additionneur DCB doit pouvoir matrialiser les tapes prcdentes. Autrement dit, ce circuit doit tre en mesure de: 1. Additionner deux reprsentations codes DCB de 4 bits selon les rgles ordinaires de l'addition binaire. 2. Dterminer si la somme est suprieure 1001 (chiffre dcimal 9); dans l'affirmative, ajouter 0110 (6) cette somme et gnrer un report ramen sur le rang dcimal immdiatement gauche. L'exigence 1. ne pose pas vraiment de problme puisqu'on la ralise au moyen d'un additionneur parallle binaire 4 bits comme le CI 74LS83. Par exemple, si deux reprsentations codes DCB se trouvant respectivement sur A3A2A1A0 et B3B2B1B0 sont appliques un additionneur parallle de 4 bits, ce dernier ralise l'opration suivante: A3A2A1A0 reprsentation code DCB + B3B2B1B0 reprsentation code DCB S3S2S1S0 somme binaire courante S4 est en ralit C4, le report produit par le rang du bit de poids le plus fort. Les sorties de la somme S4S3S2S1S0 peuvent afficher toutes les valeurs de l'intervalle 00000 10010 (quand les deux reprsentations sont gales 1001 = 9). On doit retrouver dans l'additionneur DCB des portes logiques qui dcident quand S4S3S2S1S0 est suprieur 01001 et commandent l'addition de la correction. La somme dpasse 01001 dans les cas numrs ci-aprs: Soit X une sortie logique qui occupera le niveau HAUT seulement quand la somme est suprieure 01001 (c'est--dire dans les cas numrs ci-aprs). L'tude de ces diffrents cas nous permet de dcouvrir que X est au niveau HAUT quand l'une ou l'autre des conditions suivantes est ralise:
- 129 -
1. Quand S4 = 1 (somme suprieure 15). 2. Quand S3 = 1 et que S2 ou S3 ou les deux sont 1 (somme entre 10 et 15).
X = S 4 + S 3 (S 2 + S1 )
Quand X = 1, il faut additionner la correction 0110 aux bits de la somme et produire un report. La figure suivante nous montre les circuits complets d'un additionneur DCB, y compris les portes de dcision logiques qui produisent X.
- 130 -
Ce circuit est constitu de trois parties fondamentales. Les deux reprsentations codes DCB A3-A0 et B3-B0 sont additionnes dans l'additionneur 4 bits du haut pour donner la somme S4S3S2S1S0; les portes logiques matrialisent la condition X. L'additionneur 4 bits du bas additionne la correction 0110 aux bits de somme seulement quand X= 1 pour donner la somme DCB reprsente par 3210. X est galement utilis homme report; celui qu'il faut produire quand la somme dpasse 01001. videmment quand X = 0, il n'y a pas de report et pas d'addition de 0110. Dans de tels cas, 3210 = S3S2S1S0.
Cette figure illustre l'addition de deux nombres dcimaux de trois chiffres. Le registre A contient 12 bits, ce qui est suffisant pour 3 reprsentations codes DCB d'un nombre dcimal de 3 chiffres; de mme le registre B contient la reprsentation DCB de l'autre nombre dcimal de 3 chiffres. Les reprsentations codes A3-A0 et B3-B0 correspondent aux chiffres de poids faible qui sont appliqus au premier additionneur DCB. Chaque tage d'additionneurs DCB contient tous les circuits illustrs la figure de base dun additionneur DCB. Le premier additionneur DCB produit le groupe des sorties 3210, la reprsentation DCB du chiffre de poids faible de la somme. Le report de ce premier additionneur est envoy au second additionneur DCB qui additionne A7-A4 et B7-B4, les
- 131 -
reprsentations codes DCB des chiffres dcimaux du second rang du nombre. Ce deuxime additionneur produit 7654, la reprsentation DCB du second chiffre de la somme, et de mme pour le troisime chiffre. Evidemment il est possible d'tendre ce montage pour additionner des nombres dcimaux ayant une longueur quelconque simplement en ajoutant des bascules aux registres et en affectant un additionneur DCB chaque rang supplmentaire.
EXERCICE.
Dterminez les entres et les sorties du circuit de la figure prcdente si on l'utilise pour additionner 24710 et 53810.
Solution
Tout d'abord, exprimons les nombres dcimaux en code DCB. 247 = 0010 0100 0111 (DCB) 538 = 0101 0011 1000 (DCB) Ces reprsentations DCB sont places dans les registres A et B, respectivement, d'o: [A] = 0010 0100 0111 [B] = 0101 0011 1000 Le REPORT D'ENTRE qui arrive de l'addition du rang de poids le plus faible est 0. Une fois que les donnes sont dans les registres, les additionneurs DCB fournissent sur leurs sorties les sommes DCB de chaque chiffre. L'additionneur du rang de poids le plus faible ajoute 0111 (7) 1000 (8), ce qui donne 0101 (5) et un REPORT de 1 pour l'additionneur du centre. Ce dernier additionneur ajoute 0100 (4) 0011 (3) et le REPORT de 1, ce qui produit une somme de 1000 (8) et un REPORT de 0 sur l'additionneur du rang de poids le plus fort. Ce dernier ajoute 0010 (2) 0101 (5) pour donner une somme de (7) et aucune REPORT en sortie. Les sorties de somme s'affichent alors: [] = 0111 1000 0101 et le REPORT de l'tage du rang de poids le plus fort est 0.
7. MULTIPLICATEURS BINAIRES.
Afin de multiplier 2 nombres, nous aurons besoin dadditionneurs et de registres dcalage. Ceux-ci tant raliss laide de bascules, nous approfondirons ce problmes aprs avoir tudi le chapitre concernant les bascules, compteurs et registres dcalage.
- 132 -
la figure a), le groupe de donnes transmettre est appliqu aux entres d'un circuit gnrateur de parit, qui produit en sortie un bit de parit paire, P. Ce bit de parit est communiqu au rcepteur en mme temps que les donnes binaires, soit un total de cinq bits. la figure 4-24 b), on peut voir ces cinq bits (donne + parit) appliqus aux entres du circuit de contrle de la parit du rcepteur, circuit qui fournit en sortie un signal d'erreur, E, qui annonce la prsence ou l'absence d'une erreur monobit. Il nest pas tonnant de retrouver des portes OU exclusif dans ces circuits, tant donn qu'une porte OU exclusif opre de telle manire qu'elle produit un 1 si un nombre impair de ses entres sont 1 et un 0 si un nombre pair de ses entres sont 1.
- 133 -
9. COMPARATEURS DE GRANDEURS.
Il s'agit d'un circuit logique combinatoire qui compare deux grandeurs binaires et produit des sorties qui dsignent lequel des mots est le plus grand. La figure suivante illustre le symbole logique et la table de vrit du comparateur de grandeurs 4 bits 74LS85, qui existe galement dans les versions 7485 et 74HC85.
Sorties
Le 74LS85 possde trois sorties vraies au niveau HAUT; la sortie OA>B qui passe au niveau HAUT quand le mot A est plus grand que le mot B; la sortie OA<B qui passe au niveau HAUT quand le mot A est plus petit que le mot B; enfin, la sortie OA=B qui devient son niveau vrai (HAUT) quand les deux mots ont la mme grandeur.
Entres en cascade
Le montage en cascade des entres constitue une faon d'tendre la comparaison plus de 4 bits. Dans cette solution, on monte en cascade deux ou plusieurs comparateurs de 4 bits. On constate que les entres en cascade ont les mmes indices que les sorties correspondantes. Quand une comparaison de 4 bits est effectue, comme la figure suivante les entres en cascade doivent tre raccordes selon l'ordre indiqu afin d'obtenir du comparateur des sorties correctes.
- 135 -
Pour monter en cascade deux comparateurs, il faut que les sorties de celui de poids le plus faible soient connectes aux entres ayant les mmes indices dans le comparateur de rang suprieur. C'est ce que montre la figure b), o le comparateur de gauche compare les 4 bits de poids infrieur de deux mots de 8 bits: A7A6A5A4A3A2A1A0 et B7B6B5B4B3B2B1B0. Les sorties sont amenes aux entres en cascade du comparateur e droite, qui confronte dj les 4 bits de poids le plus fort. Les sorties de ce dernier tage de comparaison contiennent le rsultat final de la comparaison des mots de 8 bits.
Applications
Les comparateurs de grandeurs sont employs assez intensivement dans les circuits de dcodage des adresses des ordinateurs; ce sont eux qui permettent de slectionner le priphrique d'entre/ sortie ou de localiser la zone mmoire contenant les donnes que l'on veut retrouver. Ces lments comparent le code d'adresse envoy par le processeur central (UCT) un code d'adresse matriel; si les deux concident, la sortie OA=B du comparateur active le dispositif ayant l'adresse correspondante. Les comparateurs de grandeurs sont galement trs utiles dans les applications de rgulation o un nombre binaire figurant le comportement d'une variable physique rgule (comme la vitesse, la position) est compar une valeur de consigne. Les sorties du comparateur servent de dclencheur l'envoi de signaux pour la conduite des mcanismes qui ramnent la variable physique vers son point de consigne.
Symbole
La figure 9-41 nous montre le symbole IEEE/ANSI du comparateur 74LS85. Notez l'emploi des lettres P et Q pour reprsenter les variables d'entre. Il s'agit de la dsignation sanctionne par la norme IEEE/ANSI.
- 136 -
1. LES DCODEURS.
Le dcodeur est un circuit logique qui tablit la correspondance entre un code d'entre binaire de N-bits et M lignes de sortie; pour chacune des combinaisons possibles des entres, une seule ligne de sortie est valide. N est un entier quelconque et M est un entier infrieur ou gal 2N
Cette figure nous fait voir le schma gnral d'un dcodeur ayant N entres et M sorties. tant donn que chacune des N entres peut tre soit 0 soit 1, il y a 2N combinaisons ou codes d'entre possibles. Pour chacune des combinaisons d'entre possibles, une seule des M sorties passera au niveau HAUT; toutes les autres sorties demeureront au niveau BAS. 137
De nombreux dcodeurs sont conus pour avoir des sorties vraies au niveau BAS, c'est--dire que seule la sortie choisie est au niveau BAS tandis que les autres demeurent au niveau HAUT. Quand cette convention s'applique, il y a toujours sur les lignes de sortie du schma des petits ronds. Certains dcodeurs n'utilisent pas toute la gamme des 2N codes d'entre possibles, mais seulement un sous-ensemble de celle-ci. Par exemple, un dcodeur DCB-dcimal a comme entre un code binaire de 4 bits et dix lignes de sortie, une pour chacune des dix reprsentations du code DCB, 0000 1001. Souvent, les dcodeurs de ce genre sont conus de faon ce que les codes inutiliss n'activent aucune des sorties lorsqu'ils se retrouvent appliqus sur l'entre.
Cette figure nous fait voir les circuits d'un dcodeur ayant trois voies d'entre et 23 = 8 voies de sortie. Sur ce schma il n'y a que des portes ET, de sorte que les sorties sont vraies au niveau HAUT. Pour avoir des sorties vraies au niveau BAS, il faut utiliser des portes NON-ET. Remarquez que pour un code d'entre donn, la seule sortie qui est vraie (HAUT) est celle correspondant l'quivalent dcimal du code d'entre binaire (par 138
Entres VALIDATION
Certains dcodeurs sont dots d'une ou de plusieurs entres VALIDATION qui servent commander son fonctionnement. Par exemple, reportez-vous au codeur illustr la figure prcdente et imaginez qu'il y ait une ligne commune VALIDATION raccorde une quatrime entre de chaque porte. Quand cette ligne est garde au niveau HAUT, le dcodeur fonctionne normalement et le code d'entre A, B, C dtermine quelle sortie passe au niveau HAUT. Quand VALIDATION est garde au niveau BAS, toutes les sorties sont forces dans l'tat BAS quels que soient les niveaux appliqus aux entres A, B, C. Donc ce dcodeur est VALID seulement si le signal VALIDATION est au niveau HAUT.
La figure suivante a) nous montre le schma logique du dcodeur 74LS138 tel que le donne le manuel des fiches techniques TTL de Fairchild. Fonctionnement de ce dcodeur. On remarquera tout dabord, que ses sorties sont celles de portes NON-ET, par consquent elles sont vraies au niveau BAS. C'est d'ailleurs ce qu'indique la faon dont sont dsignes les sorties, O 7 ,O 6 ,O 5 ,... ; la barre de complmentation indique des sorties vraies au niveau BAS. Le code d'entre est appliqu aux bornes A2, A1, A0, o A2 est le bit de poids fort. Comme il a trois entres et huit sorties, c'est un dcodeur entre trois voies, sortie huit voies ou, ce qui est quivalent, un dcodeur 1 parmi 8. Les entres E 1 , E 2 et E 3 sont des entres de validation distinctes qui sont combines dans une porte ET. Pour valider les portes NON-ET de sortie afin qu'elles indiquent le code d'entre A2, A1, A0 correspondant, il faut que la sortie de cette porte ET soit au niveau HAUT. C'est ce qui se produit seulement quand E 1 = E 2 = 0 et E 3 = 1 Autrement dit, ces trois entres doivent tre dans leur tat vrai pour rendre actives les sorties du dcodeur. Si au moins une de ces entres validation est dans son tat non vrai, la sortie de ET est au niveau BAS, ce qui impose aux sorties de toutes les NON-ET leur tat inactif HAUT, et cela quel que soit le code d'entre. 139
D'ailleurs, la figure b) rsume tout ceci dans une table de vrit. Rappelons que X veut toujours dire condition indiffrente. Le symbole logique du 74LS138 vous est montr la figure c). Notez comment on reprsente les sorties vraies au niveau BAS et les entres de validation. Mme si la porte ET de validation est dessine l'extrieur, en ralit, elle fait partie des circuits internes de la puce. 140
Exercices: 1) Indiquez les tats des sorties d'un 74LS 138 pour chacune des conditions d'entre que voici: a) E 1 = 0, E 2 = 1, E 3 = 1, A 2 = 1, A 1 = 1 et A 0 = 0 b) E 1 = 0, E 2 = 0, E 3 = 1, A 2 = 0, A 1 = 1 et A 0 = 1
Solution a) Lorsque E 2 = 1 , le dcodeur est dsactiv et toutes ses sorties se trouvent dans leur tat HAUT (inactif). C'est ce qu'on peut dduire de la table de vrit ou bien en relevant les niveaux logiques tout au long du circuit logique. Toutes les sorties de validation sont actives, de sorte que la section de dcodage est valide. Elle dcode donc le code d'entre 0112 = 3 10 afin d'activer la sortie O 3 . Donc, O 3 se trouve au niveau BAS et toutes les autres sorties sont au niveau HAUT.
b)
2) La figure suivante montre comment il est possible d'agencer quatre 74LS 138 et un INVERSEUR pour obtenir un dcodeur 1 parmi 32. Ces dcodeurs sont nots Z1-Z4 afin de s'y rfrer facilement et les huit sorties de chacun de ceux-ci sont combines pour donner un total de 32 sorties. Un code d'entre de 5 bits A4 A3 A2 A1 A0 n'ouvre qu'une seule des 32 sorties pour chacune des 32 reprsentations d'entre possibles. a) Dites quelle sortie est active si A4 A3 A2 A1 A0 = 01101. b) Indiquez la plage des codes d'entre qui rend actives toutes les sorties de la puce Z4.
141
142
Solution a) Le code d'entre 5 bits est compos de 2 parties distinctes. Les bits A4 et A3 dterminent lequel des quatre botiers Z1-Z4 est valid, alors que la section A2 A1 A0 fixe la sortie de la puce valide qui passe son niveau vrai. Si A4A3 = 01, seul Z2 a ses entres de validation au niveau vrai. Donc Z2 ragit au code A2 A1 A0 = 101 et fait passer sa sortie
O 5 sa valeur vraie, sortie rebaptise O13 . Donc le code d'entre 01101, l'quivalent
binaire du chiffre dcimal 13, fait passer la sortie O13 au niveau BAS tandis que toutes les autres sorties restent au niveau HAUT. b) Pour valider Z4, il faut que A4 et A3 soient tous les deux 1. Donc tous les codes d'entre compris entre 11000(2410) et 11111(3110) rendent active une sortie de Z4. Cette plage de codes correspond aux sorties O 24
O 31 .
Dcodeurs DCB-dcimal
143
La figure prcdente a) montre le schma logique d'un dcodeur DCB-dcimal 7442, que l'on retrouve aussi en version 74LS42 et 74HC42. Une sortie ne passe 0 qu'au moment o son entre correspondante DCB est applique. Par exemple, la sortie O 5 ne devient au niveau BAS que lorsque les valeurs sur les entres sont DCBA = 0101. Dans le cas des combinaisons DCB non valides, aucune des entres n'est valide. Ce dcodeur reoit frquemment le nom de dcodeur entre 4 voies, sortie 10 voies ou dcodeur 1 parmi 10. Le symbole logique et la table de vrit du 7442 sont reproduits galement sur cette figure. Remarquez l'absence dans ce dcodeur d'une entre de validation.
Dcodeur/pilote DCB-dcimal
Le TTL 7445 est un dcodeur/pilote DCB-dcimal. Le terme pilote est ajout la dsignation de cet lment pour indiquer des sorties en collecteur ouvert qui permettent une sortie TTL de fonctionner avec un courant plus intense et dans des limites de tension suprieures aux valeurs normales. Les sorties du 7445 peuvent absorber jusqu' 80 mA dans l'tat BAS et tre portes jusqu' 30 V dans l'tat HAUT. Ceci lui permet d'attaquer directement des charges comme des LEDs, des relais ou des moteurs courant continu.
144
Applications du dcodeur
Les dcodeurs servent chaque fois qu'une sortie ou un groupe de sorties ne doit tre valid qu' la ralisation d'une certaine combinaison des niveaux d'entre. Ces niveaux d'entre sont frquemment fournis par un compteur ou un registre. Quand les entres d'un dcodeur sont alimentes par un compteur qui dnombre sans arrt, les sorties du dcodeur sont actives les unes la suite des autres et peuvent alors servir une tche de synchronisation ou de squencement pour mettre en marche ou l'arrt diffrents dispositifs. Les dcodeurs sont largement utiliss dans les mmoires des ordinateurs: ce sont eux qui reoivent le code d'adresse du processeur central et activent l'emplacement mmoire dsign par l'adresse. C'est une application que nous tudierons plus en dtail plus tard, quand nous aborderons le sujet des mmoires. Un autre domaine d'applications considrable des dcodeurs est celui de la conversion de donnes binaires en une forme se prtant un affichage numrique.
145
Un pilote/dcodeur DCB-7 segments accepte en entre les 4 bits DCB et rend actives les sorties qui vont permettre de faire passer un courant dans les segments qui forment le chiffre dcimal correspondant. La logique de ce dcodeur est plus complique que ce que l'on a vu prcdemment, parce que chaque sortie peut tre mise au niveau vrai dans plus d'une combinaison de bits d'entre. Par exemple, le segment e est allum lorsque sont forms les chiffres 0, 2, 6 et 8, c'est--dire quand les codes d'entre sont 0000, 0010, 0110 ou 1000.
Le pilote/dcodeur DCB-7 segments, illustr la figure suivante a) (TTL 7446 ou 7447), pilote un afficheur DEL 7 segments. Chaque segment est constitu d'une ou deux diodes lectroluminescentes. Les anodes de ces diodes sont toutes runies Vcc ( + 5 V). Leurs cathodes sont connectes au travers de rsistances limitatrices de courant aux sorties appropries du pilote/dcodeur. Celui-ci a des sorties qui sont vraies au niveau BAS, soit des transistors pilotes collecteur ouvert pouvant absorber un courant passablement intense. C'est la raison pour laquelle les afficheurs DEL peuvent ncessiter entre 10 mA et 40 mA par segment, selon leur type et leur taille. Pour illustrer le fonctionnement de ce circuit, soit l'entre DCB D = 0, C = 1, B = 0, A _ 1, correspondant la reprsentation DCB de 5. En rponse cette entre, les sorties
146
Exercice. Rechercher les quations logiques et chacune des sorties (entres des segments) a,b,c,d,e,f,g, dans le cas dun afficheur anode commune.
147
148
149
LT: Lamp test: borne de test (allumage de tous les segments) BI/RBO: Blanking Input / Ripple Blanking Ouput RBI : Ripple Blanking Input Ces 2 derniers permettent dliminer la visualisation des zros non significatifs. On raccorde BI/RBO RBI de ltat suivant (de rang plus lev) Tous les segments seront allums si LT =0 et BI/RBO = 1 Si BI/RBO = 0 alors tous les segments seront teints Remarques complmentaires concernant la broche BI/RBO BI/RBO est un ET logique cbl et est utilis en entre pour la commande d'extinction (BI) ou en sortie correspondante (RBO). 1) L'entre BI doit tre ouverte ou au niveau Haut pour les sorties de 0 15. RBI doit tre ouvert ou au niveau Haut pour l'effacement des zros dcimaux. 2) Lorsque l'entre BI est maintenue au niveau bas (L), tous les segments sont teints, quels que soient les niveaux des autres entres. 3) Lorsque RBI et les entres A, B, C et D sont au niveau bas (L) et LT au niveau Haut, tous les segments sont teints et RBO passe au niveau bas (L). 4) Lorsque BI/RBO est ouvert ou au niveau Haut et que LT passe au niveau bas (L), tous les segments sont allums. Symboles IEE/ANSI
Remarques 1) on numrote les entres et les sorties lintrieur du rectangle. 2) un losange soulign signale une sortie collecteur ouvert. 3) le triangle signifie que lon a affaire un tampon-pilote dot de caractristiques de tension et de courant dpassant les valeurs normales
150
3. CODEURS .
Si le dcodage est un processus partir duquel une reprsentation de N bits produit un signal HAUT (ou BAS) sur une et seulement une des lignes de sortie d'un dcodeur, alors le processus inverse est le codage et il utilise un circuit logique appel codeur. Un codeur a un certain nombre de voies d'entre, dont une seule est active la fois; une certaine voie d'entre correspond une reprsentation de sortie de N bits. La figure suivante nous montre le schma gnral d'un codeur ayant M entres et N sorties. Dans ce cas-ci, les entres sont vraies au niveau HAUT, ce qui veut dire que normalement elles sont au niveau BAS.
Nous avons vu qu'un dcodeur binaire-octal fait correspondre un code d'entre binaire de 3 bits une seule des huit voies de sortie possibles. l'inverse, un codeur octal-binaire a 8 voies d'entre et produit une reprsentation de sortie binaire de 3 bits.
En analysant successivement les rponses des circuits logiques, on en conclue qu'un 151
niveau BAS sur une seule entre donne lieu en sortie un code binaire qui correspond cette entre. Par exemple, un BAS sur A 3 (pendant que toutes les autres entres sont 1) produit
Codeurs de priorit
Comme on l'a dit prcdemment, le codeur de la figure prcdente produit des rsultats errons si au moins deux entres sont rendues actives simultanment. Un codeur de priorit est une version modifie du codeur lmentaire et cette version modifie possde les circuits logiques ncessaires pour que le code de sortie choisi, quand deux entres sont actives, soit celui qui correspond au nombre le plus haut. Dans un tel codeur, quand les deux entres A 5 et A 3 sont actives en mme temps, la rponse donne en sortie est 101. De mme, ce codeur produit en sortie le code 110 si les entres
Examinons la table de vrit afin de dduire le fonctionnement de ce CI. La premire ligne de cette table montre que toutes les entres sont inactives au niveau HAUT. Pour cette condition, les sorties sont 1111, soit l'inverse de 0000, le code DCB de 0. La deuxime ligne de cette table montre qu'un niveau BAS sur A 9 , et cela quelles que soient les valeurs sur les autres entres, donne lieu au code de sortie 0110, soit l'inverse de 1001, le code DCB de 9. La troisime ligne dmontre qu'un niveau BAS sur A 8 , la condition que le niveau sur A 9 soit HAUT, produit le code de sortie 0111, soit l'inverse de 1000, le 152
code DCB pour 8. Le mme raisonnement pour toutes les lignes de cette table nous apprend qu'une entre au niveau BAS, si toutes les entres de rang suprieur sont au niveau HAUT, donne l'inverse du code DCB correspondant cette entre. Les sorties du 74147 sont normalement 1 quand aucune des entres n'est son niveau vrai. Ceci correspond la condition d'entre du chiffre dcimal 0. Il n'y a en ralit aucune entre A 0 , puisque le codeur suppose que l'tat d'entre du chiffre dcimal 0 est celui cr quand toutes les autres entres sont 1. Pour obtenir le code DCB naturel partir des sorties DCB complmentes du 74147, il faut ajouter un INVERSEUR chacune des sorties.
153
4. TRANSCODEURS .
Dans ce cas, on code les sorties partir dun codage diffrent des entres. Le transcodeur va donc laborer les grandeurs de sortie codes partir des entres codes. On rencontre 2 types de transcodeurs: - conversion de code. - affichage par segments ou matrice de points. Le second a dj t tudi dans les dcodeurs, nous nous attacherons donc plus prcisment aux transcodeurs ( de conversion de code)
Principe:
Pour passer dun code binaire lautre, il suffit de considrer les entres et les sorties dans une double table de vrit qui permet dtablir les quations logiques de transcodage et les mthodes traditionnelles.
Exemple:
dcimal N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 GRAY C B 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 0 0 A 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 S3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 BINAIRE S2 S1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 S0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
S3 = D S2 = C D S3 = B C D = B S2 S 4 = A B C D = A S1
154
On obtient 2 possibilits de cblages selon que lon adopte la premire ou la deuxime forme dquation. La seconde permet une conomie de matriel, mais sera moins rapide ( le repiquage de grandeur logique accumule les retards)
Remarques: - Le nombre dlments binaires dentres et de sorties peut tre diffrent, le principe reste le mme.
- Lorsque le nombre dentres devient trop important, ou que le code est trs complexe, on peut utiliser des mmoires R.O.M. (Read only mmemory) ou des PROM (programmable ROM) ou EPROM ou EEPROM ou EAROM qui seront tudies plus tard. - On peut galement considrer un codeur comme tant un transcodeur (codage en code X des 10 chiffres dcimaux par ex. ) - Voici quelques exemples: toutes les sorties sont portes au niveau haut sauf celle qui est slectionne: il en est de mme des entres.
155
156
5. MULTIPLEXEURS.
Un multiplexeur ou slecteur de donnes est un circuit logique ayant plusieurs entres de donnes, mais seulement une sortie qui communique les donnes. L'aiguillage de l'entre de donnes qui nous intresse sur la sortie est
command par les entres SELECT (appeles parfois entres d'adresse). La figure suivante illustre le symbole d'un multiplexeur gnral (MUX). Dans ce symbole, les entres et les sorties sont reprsentes par des flches paisses afin d'indiquer qu'il peut y avoir plus d'un conducteur.
Un multiplexeur se comporte comme un commutateur dans lequel un code numrique appliqu aux entres SELECT commande les entres de donnes qui sont raccordes la sortie. Il peut y avoir sur la sortie Z les donnes introduites sur I0 quand on applique un certain code d'entre SELECT; ou bien Z peut avoir les donnes de I1 en rponse un autre code d'entre SELECT, et ainsi de suite. Autrement dit, un multiplexeur choisit une source de donnes d'entre parmi N et transmet celles-ci la seule voie de sortie existante. C'est ce qu'on appelle le multiplexage.
157
Z = I 0 S + I 1S Si S = 0 Z = I0 Si S = 1 Z = I1
Multiplexeur quatre entres
Le mme principe de base sert construire un multiplexeur quatre entres, comme celui de la figure ci-dessous.
Dans ce cas-ci, il y a quatre entres qui sont transmises la sortie selon le choix indiqu par l'une des quatre combinaisons possibles des entres de slection S1S0. Chaque entre de donnes aboutit une porte ET dont les deux autres entres correspondent une certaine combinaison des niveaux des entres de slection; ainsi I0 est runi avec S1 S0 de sorte que I0 traverse la porte ET et atteint la sortie Z seulement quand S1 = 0 et S0 = 0. La table accompagnant cette figure donne la valeur de la sortie pour les trois autres codes de slection d'entre. On peut se procurer dans le commerce des multiplexeurs deux, quatre, huit et seize entres fabriqus selon la technologie TTL ou CMOS. Ces CI de base peuvent tre combins afin de multiplexer un nombre d'entres encore plus grand.
158
Ce multiplexeur dispose d'une entre validation, E , et il fournit la sortie normale et la sortie complmente. Quand E = 0 , les entres de slection S2S1S0 choisissent une entre de donnes (I0 I7) dont les valeurs se retrouvent sur la sortie Z. Quand E = 1 , le multiplexeur est invalid de sorte que Z = 0 quel que soit le code d'entre de slection. Ce fonctionnement est rsum dans le tableau de la figure b); le symbole logique du 74151 est illustr la figure c).
159
Le circuit de la figure suivante a recours deux 74151, un INVERSEUR et une porte OU.
Explication:
Au total, ce circuit a 16 entres de donnes, 8 pour chaque multiplexeur. Les deux sorties du multiplexeur sont runies dans une porte OU pour produire une seule sortie X. Ce circuit fonctionne comme un multiplexeur 16 entres. Les 4 entres de slection S3S2S1S0 choisissent l'une des 16 entres pour la faire passer jusqu' X. L'entre S3 choisit le multiplexeur qui est valid. Quand S3 = 0, le multiplexeur du haut est valid, et les entres S2S1S0 dfinissent laquelle des entres de ce multiplexeur passera jusqu' la sortie et franchira la porte OU pour atteindre X. Quand S3 = 1, c'est le multiplexeur du bas qui est valid et les entres S2S1S0 choisissent l'entre de donnes de ce dernier qui atteint la sortie X.
160
Dterminez les conditions dentre qui placent sur chacune des sorties Z le niveau logique de son entre I0 correspondante. Mme question pour I1 . Rponse:
161
Application du 74151.
La figure prcdente nous montre comment on utilise un multiplexeur 8 entres pour matrialiser un circuit logique qui fonctionne conformment aux indications de la table de vrit. Les variables d'entre A, B, C sont raccordes respectivement S0, S1, S2, et ce sont les niveaux appliqus ces entres qui dterminent l'entre de donnes qui est transfre la sortie Z. Conformment cette table de vrit, Z doit tre 0 quand CBA = 000. Ainsi l'entre du multiplexeur I0 doit tre raccorde 0. De la mme faon, Z est suppose tre 0 quand CBA = 011, 100, 101 et 110, de sorte que les entres I3, I4, I5 et I6 sont raccordes en permanence la masse (niveau BAS). L'autre groupe de conditions CBA doit donner Z = 1, de sorte qu'il faut raccorder en permanence les entres du multiplexeur Il, I2 et I7 un niveau HAUT. Il est facile de voir que toute table de vrit 3 variables peut tre matrialise au moyen d'un multiplexeur 8 entres. Cette mthode de matrialisation est souvent beaucoup plus efficace que l'utilisation de portes logiques distinctes. Par exemple, si nous crivons la somme de produits correspondant la table de vrit de la figure prcdente, nous trouvons:
162
Il existe une mthode encore plus efficace, soit raliser de telles fonctions logiques en se servant de multiplexeurs. Cette mthode permet un concepteur logicien de prendre un multiplexeur trois entres de slection (par ex. le 74151) et de construire une fonction logique quatre variables.
5. DMULTIPLEXEURS.
On vient de voir qu'un multiplexeur est sollicit par plusieurs entres, mais ne transmet qu'une de ces dernires la sortie. Un dmultiplexeur effectue l'opration
inverse: il n'a qu'une entre et dirige celle-ci vers une sortie parmi plusieurs sorties. La figure suivante nous montre le schma gnral d'un
dmultiplexeur (DEMUX). Les flches plus larges utilises pour reprsenter les entres et les sorties signifient plusieurs conducteurs. Le code d'entre de slection dtermine quelle sortie l'entre DONNES est transmise. Autrement dit, le dmultiplexeur reoit des donnes d'une entre et choisit de les diriger vers une des N voies de sortie possibles; il fonctionne comme un commutateur.
163
164
Le circuit du dmultiplexeur de cette figure est trs semblable celui du dcodeur entre trois voies, sortie huit voies de la page 138, si on excepte le fait qu'une quatrime entre (I) a t ajoute chaque porte. Nous avons dj soulign que de nombreux dcodeurs intgrs ont une entre VALIDATION, et que ceci correspond une entre supplmentaire pour les portes du dcodeur. Ce genre de botier de dcodeur peut donc servir de dmultiplexeur, les entres du code binaire (par exemple A, B, C de la figure de la page 138) jouant le rle des entres SELECT et l'entre VALIDATION jouant le rle de l'entre de donnes I. C'est donc une des raisons pour laquelle les fabricants de CI donnent souvent le nom de dcodeur/ dmultiplexeur ce dispositif puisqu'il peut servir l'une ou l'autre de ces fonctions. Nous avons dj tudi le 74LS138 dans son rle de dcodeur un parmi huit. La figure suivante nous montre maintenant comment l'utiliser titre de dmultiplexeur. L'entre de validation E, est utilise comme l'entre de donnes I, tandis que les deux autres entres de validation sont gardes en permanence leur niveau vrai. Les entres A2 A1 A0 accueillent le code de slection. Pour illustrer son fonctionnement, supposons que les entres de slection sont 000. On sait que ce code ouvre seulement la sortie appele
O 0 et garde
toutes les autres sorties au niveau HAUT. O 0 passe 0 seulement si E 1 passe 0, et cette sortie passe 1 si E 1 passe 1. Autrement dit, O 0 suit les niveaux appliqus la borne E 1 (c'est--dire l'entre de donnes I). Pendant ce temps toutes les autres sorties demeurent 1. De la mme faon, un code de slection diffrent appliqu aux entres A2 A1 A0 ouvre la sortie correspondante qui alors suit les valeurs appliques sur l'entre de donnes I.
165
La figure b) montre les formes d'ondes types pour le cas slectionn par A2 A1 A0 = 000, soit la sortie O 0 . Dans cet exemple, le signal de donnes appliqu sur E 1 est achemin sur
O 0 et toutes les autres sorties restent dans leur tat inactif, soit l'tat HAUT.
Dmultiplexeur d'horloge
Le principe du dmultiplexage trouve de nombreuses applications un peu partout. La figure suivante nous fait voir le dmultiplexeur 74LS138 utilis titre de dmultiplexeur d'horloge. Command par les lignes SELECT, ce dispositif aiguille le signal d'horloge vers la destination voulue. Par exemple, quand S2 S1 S0 = 000, le signal d'horloge appliqu I est pass la sortie O 0 . S2 S1 S0 = 101, l'horloge est passe la sortie O 5 .
166
BIBLIOGRAPHIE
- Cours de Monsieur D. Anjel - CIRCUITS NUMRIQUES Thorie et applications - INTRODUCTION AUX CIRCUITS LOGIQUES -TTL APPLICATIONS -LOGIQUE COMBINATOIRE -LOGIQUE SQUENTIELLE -DIGITAL ELECTRONICS Ronald Tocci Letocha Texas Instruments J. Lagasse J. Lagasse Kleitz
-ARCHITECTURE ET TECHNOLOGIE DES ORDINATEURS P. Zandla et Y. Ligion - ARTICLES PUBLIS SUR INTERNET.