Vous êtes sur la page 1sur 176

TECHNIQUES NUMRIQUES.

1re Bachelier en lectronique applique.

Michelle VANDEVILLE. Ing Matre-assistant

Partie 1/2: Logique combinatoire.


Chapitre I. Introduction.
1. Analogique- numrique. 2. Reprsentation des grandeurs binaires. 3. Circuits numriques. 4. Constantes et variables boolennes. 5. Rsum.

Chapitre II Lalgbre de BOOLE.


1. Introduction. 2. Fonctions logiques sur 1 variable logique. 3. Fonctions logiques sur 2 variables logiques. 4. Axiomes ou lois fondamentales de lalgbre de Boole. 5. Relations de base de lalgbre de Boole. 6. Thorme de Morgan. 7. Dualit de lalgbre de Boole. 8. Tableau- exercice. 9. Exercices.

Chapitre III Simplification des fonctions logiques.


1. Modes de reprsentation des fonctions logiques: - introduction. - expression algbrique. - table de vrit. - table de Karnaugh. - logigrammes. 2. Mthodes de simplification des fonctions logiques: - introduction. - simplification algbrique. - La mthode des diagrammes de Karnaugh. - Quine et Mc Cluskey. 3. Exercices.

Chapitre IV systme de numration et codes.


- Bases. - Passage dun code lautre (entiers, rels). - Oprations arithmtiques en binaires. - La complmentation. - Classification des diffrents codes: - pondrs: naturel, BCD. - non pondrs: biquinaire, quibinaire, biternaire, excess3, Gray, alpha-numriques. - Contrle- dtecteurs derreurs.

Chapitre V Problmes de logique combinatoire


- Arithmtique binaire: oprations et circuits. - additionneur (semi...). - soustracteur (semi...). - additionneur - soustracteur. - additionneur parallle intgr. - notation complment 2. - additionneur DCB. - gnrateur et contrleur de parit. - multiplicateurs binaires. - comparateurs de grandeurs. - Circuits logiques MSI. - dcodeurs. - pilotes / dcodeurs DCB- 7 segments. - codeurs. - transcodeurs. - multiplexeurs. - dmultiplexeurs. -dcodeur/ codeur et multplexeur/dmultiplexeur.

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.

Avantages des techniques numriques


Un nombre de plus en plus grand d'applications en lectronique, et mme d'autres disciplines, exploitent les techniques numriques pour raliser ce qui auparavant tait effectu par des solutions analogiques. Cette conversion la technologie numrique s'explique par les raisons suivantes: 1.Les systmes numriques sont plus simples concevoir. Pour la raison bien vidente qu'on utilise des circuits de commutation dans lesquels les valeurs de la tension et du courant n'ont pas tre rigoureusement exactes; il suffit qu'elles soient dans les limites d'un intervalle (HAUT ou BAS). 2.Le stockage de l'information est facile. (Mmoires) 3. La prcision et l'exactitude sont accrues. Les systmes numriques peuvent oprer sur le nombre de chiffres ncessaires pour atteindre une certaine prcision, et pour cela il suffit d'ajouter plus de circuits de commutation. Dans les systmes analogiques, la prcision ne peut gnralement dpasser trois ou quatre chiffres, tant donn que la tension et le courant dpendent directement des valeurs des composants du circuit. 4.On peut programmer leurs oprations. Il est relativement facile de concevoir un circuit numrique pouvant tre contrl par un ensemble d'instructions, appel un programme. Il est vrai que l'on peut aussi programmer les systmes analogiques, mais les oprations programmables sont peu varies et lmentaires. 5.Les circuits numriques sont moins affects par le bruit. Les fluctuations parasites de la tension (bruit) ne sont pas aussi critiques dans les systmes numriques, toujours pour la raison que le fonctionnement ne dpend pas d'une valeur exacte. Donc le bruit ne perturbe rien tant que l'on peut continuer distinguer entre un tat HAUT et un tat BAS. 6.On peut mettre un grand nombre de circuits numriques dans une puce de CI. (Circuit intgr).

- 2-

Chapitre I: Introduction

Les limitations des techniques numriques


Il n'y a vraiment qu'un seul inconvnient majeur qui joue contre les circuits numriques:

Le monde rel est analogique.


La majorit des grandeurs physiques sont analogiques, et souvent ce sont des grandeurs de cette nature que l'on retrouve aux entres et aux sorties d'un systme que l'on veut surveiller, commander ou rgler. En voici quelques exemples: la temprature, la pression, la position, la vitesse, un niveau de liquide, un dbit. Nous avons pris l'habitude de prsenter ces grandeurs dans un habillage numrique, en disant par exemple que la temprature est 64 (ou 63,8 si on veut tre plus prcis), alors qu'en ralit nous effectuons une approximation numrique d'une grandeur essentiellement analogique. Pour exploiter au mieux les techniques numriques dans le traitement d'entres et de sorties analogiques, on doit mettre en oeuvre les trois phases suivantes: 1. Traduire les signaux analogiques du monde rel en signaux numriques. 2. Traiter (agir sur) l'information numrique. 3. Convertir les sorties numriques en une forme analogique adapte au monde rel

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.

II REPRSENTATION DES GRANDEURS BINAIRES.


Dans les systmes numriques, l'information traite a gnralement la forme de nombres binaires. Tout dispositif ayant deux tats ou conditions de fonctionnement convient la reprsentation de grandeurs binaires. Par exemple, un interrupteur n'a que deux tats: ouvert ou ferm. On peut dcider arbitrairement qu'un interrupteur ouvert correspond au nombre binaire 0 et qu'un interrupteur ferm correspond au nombre binaire 1. Au moyen de cette convention, il nous est maintenant possible de reprsenter n'importe quel nombre binaire au moyen d'interrupteurs. Cest ce que montre la figure suivante a) sur laquelle les diffrents interrupteurs dfinissent le nombre (10010) 2.

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

III CIRCUITS NUMRIQUES.


Les circuits numriques sont conus pour fournir des tensions de sortie qui se trouvent dans les gammes de tensions correspondant aux valeurs binaires 1 et 0. De la mme manire, les circuits numriques sont conus pour ragir de faon prvisible des tensions d'entre qui se trouvent dans les gammes dfinies pour 0 et 1. Cela veut dire qu'un circuit numrique ragira toujours de la mme faon toutes les tensions d'entre qui se situent dans la gamme de 0; de mme, il ne fera pas de distinction entre les tensions comprises dans la gamme de 1. La figure suivante reprsente un circuit numrique type dont l'entre est Ve et la sortie Vs. On peut observer la sortie pour deux formes d'onde d'entre diffrentes. Notez que la sortie Vs est identique dans les deux cas, puisque ces tensions d'entre sont aux mmes niveaux binaires bien qu'elles soient numriquement diffrentes.

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

Circuits numriques intgrs.


La presque totalit des circuits numriques qui se trouvent dans l'quipement moderne d'aujourd'hui sont des circuits intgrs (CI). Le large ventail de CI logiques qui existent dans le commerce rend possible la ralisation de systmes numriques complexes qui sont plus petits et plus fiables que leur quivalent construit avec des composants discrets. Les circuits numriques intgrs sont fabriqus selon plusieurs technologies de fabrication de CI, les plus courantes tant les technologies TTL, CMOS, NMOS et ECL. Chacune d'elles se distingue par le type de circuit servant raliser l'opration logique recherche. Par exemple, les circuits TTL (Transistor-Transistor Logic) utilisent des transistors bipolaires comme principaux lments de circuit, tandis que les technologies CMOS (Complementary Metal Oxide Semiconductor) emploient comme principal lment de circuit le transistor MOS enrichissement (MOSFET). Nous aborderons l'tude des techniques de CI, leurs caractristiques, leurs avantages et leurs inconvnients respectifs, ds que nous connatrons bien les circuits logiques de base. Un chapitre du cours sera consacr ltude de ces diffrentes familles.

IV CONSTANTES ET VARIABLES BOOLENNES.


Lalgbre boolenne se distingue principalement de lalgbre ordinaire par des constantes et des variables qui ne peuvent prendre que 2 valeurs possibles 0 et 1. Une variable boolenne est une grandeur qui peut, des moments diffrents, avoir la valeur 1 ou 0. Les variables boolennes servent souvent reprsenter un niveau de tension sur un fil ou aux bornes d'entre ou de sortie d'un circuit. Par exemple, dans un certain circuit numrique, on pourra avoir attribu la valeur boolenne 0 l'intervalle de tensions 0 0,8 V, et la valeur boolenne 1 l'intervalle 2 5 V. Les tensions comprises entre 0,8 et 2 V sont indtermines et ne doivent jamais survenir. Ainsi, les valeurs boolennes 0 et 1 ne reprsentent pas des nombres rels mais plutt l'tat d'une variable lectrique ou ce qui est convenu d'appeler un niveau logique. On dit que la tension d'un circuit numrique est au niveau logique 1 ou au niveau logique 0, selon la valeur relle de cette tension. Dans le domaine de la logique numrique, on utilise d'autres expressions qui sont synonymes de 0 et 1.
- 7-

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 -

Chapitre II Lalgbre de BOOLE.


1. Introduction. 2. Fonctions logiques sur 1 variable logique. 3. Fonctions logiques sur 2 variables logiques. 4. Axiomes ou lois fondamentales de lalgbre de Boole. 5. Relations de base de lalgbre de Boole. 6. Thorme de Morgan. 7. Dualit de lalgbre de Boole. 8. Tableau- exercice. 9. Exercices.

Chapitre II: Lalgbre de Boole

CHAPITRE II: LALGBRE DE BOOLE.


I. INTRODUCTION.
Lalgbre de Boole (nom de son inventeur) est une algbre semblable, sous certains aspects, l'algbre classique dont elle diffre cependant de manire caractristique. D'importantes applications du domaine des ordinateurs et des appareils de mesures numriques reposent sur elle. Cette algbre peut galement porter divers noms: algbre des propositions, algbre de la logique. L'algbre de Boole est un ensemble de variables deux tats, de valeurs de vrit 1 (vrai), 0 (faux), muni d'un nombre limit d'oprateurs: NON, ET, OU. La manipulation de ces variables dites boolennes l'aide de ces oprateurs donne des fonctions, boolennes elles-aussi, car leur rsultat est une variable boolenne.

II. FONCTIONS LOGIQUES SUR 1 VARIABLE LOGIQUE.


A 0 1 NOM de la fonction F0 0 0
NULLE

F1 0 1
IDENTIQUE A

F2 1 0
- COMPLMENT DE

F3 1 1 UN

- PAS - NON - NOT

En logique TTL, F0 correspond une mise la masse F1 possde des tats identiques ceux de A Il a pour symbole =
- 11 -

Chapitre II: Lalgbre de Boole

F2 possde des tats complments des tats de A Il a pour symbole (barre)

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 -

Chapitre II: Lalgbre de Boole

III. FONCTIONS LOGIQUES SUR 2 VARIABLES LOGIQUES.


Aprs analyse du tableau de la page suivante, nous constatons que: Nous avons un tableau 2 entres X et Y et 16 sorties F0 F15. Remarquons que sur 2 variables logiques on obtient 24 fonctions. Le chiffre 4 tant le nombre de combinaisons possibles de X et Y. F0 = F1 = F2 = F3 =

F15 F14 F13 F12

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

Chapitre II: Lalgbre de Boole

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

PAS Inhibiti PAS Inhibiti


NON OU NOR

Ngation dune variable

F4

F4 = X.Y

F3

F3 = X

Ngation dune variable

F2

F2 = X .Y

F1

F1 = X.Y

F1 = X + Y

F0

F0 = 0

null 0 0 Equation Boolenne NOM de la fonction 0 1

- 14 -

Chapitre II: Lalgbre de Boole

EXPLICATION DE CERTAINES FONCTIONS PARTICULIRES 1. FONCTION F0 = Fonction nulle. Correspond la masse.

2. FONCTION F3 = X et F5 = Y - Opration NON Implantation de linversion par le CI 7404 comprenant 6 inverseurs.

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 -

Chapitre II: Lalgbre de Boole

F8 est 1 lorsque X et Y sont ltat 1.

Symboles recommands. Norme CEI Norme DIN 4070 NORME USA

Implantation de la fonction ET par le CI 7408 comprenant 4 portes ET 2 entres.

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

L'oprateur OU est aussi not + , la table justifie cette notation, d'o X OU Y = X + Y .

- 16 -

Chapitre II: Lalgbre de Boole

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.

Symboles recommands. Norme CEI Norme DIN 4070 NORME USA

Implantation de la fonction OU par le CI 7432 comprenant 4 portes OU 2 entres.

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 -

Chapitre II: Lalgbre de Boole

Table de vrit. X 0 0 1 1 Y 0 1 0 1 F7 1 1 1 0

Symboles recommands. Norme CEI Norme DIN 4070 NORME USA

Implantation de la fonction NAND par le CI 7400 comprenant 4 portes NAND 2 entres.

6. FONCTION F1 =Fonction NOR .

F1 = X + Y = X. Y
Soit X et Y deux variables boolennes. Le rsultat de X ET Y est une variable boolenne.

- 18 -

Chapitre II: Lalgbre de Boole

Table de vrit. X 0 0 1 1 Symboles recommands. Y 0 1 0 1 F1 1 0 0 0

Norme CEI

Norme DIN 4070

NORME USA

Implantation de la fonction NOR par le CI 7402 comprenant 4 portes NOR 2 entres.

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 -

Chapitre II: Lalgbre de Boole

Table de vrit. X 0 0 1 1 Y 0 1 0 1 F6 0 1 1 0

Symboles recommands. Norme CEI Norme DIN 4070 NORME USA

Implantation de la fonction OU Exclusif par le CI 7486 comprenant 4 portes OU Exclusif 2 entres.

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 -

Chapitre II: Lalgbre de Boole

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 -

Chapitre II: Lalgbre de Boole

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.

Tableau des symboles, selon les normes cites

- 22 -

Chapitre II: Lalgbre de Boole

IV. AXIOMES OU LOIS FONDAMENTALES DE LALGBRES DE BOOLE.


Soit A, B et C trois variables boolennes, les oprateurs NON, ET et OU. Nous pouvons ds lors noncer les lois suivantes vrifiables par les tables de vrit correspondantes. 1. LOIS DE FERMETURE. a) A . B est une variable boolenne dfinie par la table de vrit de l'opration ET. b) A + B est une variable boolenne dfinie par la table de vrit de l'opration OU.

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 -

Chapitre II: Lalgbre de Boole

Ainsi on a, au niveau des schmas:

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.

4. LOIS DE DISTRIBUTIVIT. a) de lopration ET sur lopration OU A . (B + C) = (A . B) + (A . C) b) de lopration OU sur lopration ET A + (B . C) = (A + B) . (A + C)

EXERCICE: vrifier ces deux lois par induction parfaite. (en utilisant les tables de vrit)

- 24 -

Chapitre II: Lalgbre de Boole

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)

5. LOI DIDEMPOTENTE. a) A + A = A b) A . A = A En effet, A 0 1 A+A 0 1 A.A 0 1

- 25 -

Chapitre II: Lalgbre de Boole

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)

9.RELATIONS PARTICULIRES. a) A + AB = A en effet, A + AB = A (1 + B) A + AB = A (1) A + AB = A

- 26 -

Chapitre II: Lalgbre de Boole

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

distributivit idempotence Proprit remarquable 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 -

Chapitre II: Lalgbre de Boole

VI. THORMES DE DE MORGAN.


Deux des plus importants thormes de l'algbre boolenne nous ont t lgus par le mathmaticien De Morgan. Les thormes de De Morgan se rvlent d'une grande utilit pour simplifier des expressions comprenant des sommes ou des produits de variables complments. Voici ces deux thormes:

( 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.

Il en est de mme pour 3 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 -

Chapitre II: Lalgbre de Boole

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 =

Z puisqu'une double inversion est une opration d'effet nul, ainsi:

Z=Z Z = (x + y + z)(x + z)( x + y) Z= x+y+z+x+z+x+y


D'aprs le thorme 1 de De Morgan, on remarquera que l'expression obtenue est une implantation diffrente de la mme fonction. En supposant que les variables et leur complment sont disponibles, l'expression originale ncessite, pour tre implante, trois portes OU (x + y + z), (x + z ), ( x + y ), et une porte ET trois entres pour faire le produit des trois sorties des portes OU. Par contre, l'expression finale ncessite quatre portes NON-OU suivant le schma ci-dessous:

- 29 -

Chapitre II: Lalgbre de Boole

Lexpression ci-dessus nest pas simplifie.

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

On a alors une expression simplifie qui peut scrire:

Z = xz.y Z = (x + z).y Z = yx + y.z Z = y(x + z)

Ceci est une implantation ET, OU

- 30 -

Chapitre II: Lalgbre de Boole

On peut aussi crire:

Z=Z Z = yx + y.z Z = yx.y.z


Ceci est une implantation NAND

De la mme manire, on obtient:

Z = y(x + z) Z = y + (x + z)

Ceci est une implantation NOR

- 31 -

Chapitre II: Lalgbre de Boole

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.

VII. DUALIT DE L'ALGBRE DE BOOLE.


En se reportant aux deux paragraphes prcdents, on remarque que toutes les fonctions boolennes et les thormes de De Morgan vont toujours par deux. Le remplacement dans la premire relation des oprations (.) Par (+) et (+) par (.) donne la deuxime. RSUM:

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 -

Chapitre II: Lalgbre de Boole

Soit lexpression

Z = ab + ab + ab Z = b(a + a) + ab (mise en facteur) Z = b + ab puisque a + a = 1 et b.1 = b Z = a + b (relation de base III et commutativit)

Do: ab + ab + ab = a + b (1) On en dduit donc immdiatement la relation:

(a + b)(a + b)(a + b) = a.b (2)


En se servant de la dualit de lalgbre de Boole. Vrification: Dveloppons le premier membre de (2), on aura successivement:

(aa + ab + ab + b)(a + b) = 0 + b(1 + a + a ) (a + b) = b(a + b) = ba + bb = ab, soit le deuxime membre de (2)

- 33 -

Chapitre II: Lalgbre de Boole

VIII. Complter le tableau suivant.


On ralise ! Avec 9

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 -

Chapitre III Simplification des fonctions logiques.


1. Modes de reprsentation des fonctions logiques: - introduction. - expression algbrique. - table de vrit. - table de Karnaugh. - logigrammes. 2. Mthodes de simplification des fonctions logiques: - introduction. - simplification algbrique. - La mthode des diagrammes de Karnaugh. - Quine et Mc Cluskey. 3. Exercices.

Chapitre III: Simplification des fonctions logiques.

CHAPITRE III: SIMPLIFICATION DES FONCTIONS LOGIQUES.


I. MODES DE REPRSENTATION DES FONCTIONS LOGIQUES:
1. Introduction.
Ce chapitre a pour objectif de savoir reprsenter une fonction logique sous ses 4 formes: - expression algbrique. - table de vrit. - table de Karnaugh - logigramme.

2. Expression algbrique.
Soit les fonctions:

S = xyc + xyc + xyc + xyc C = xyc + xyc + xyc + xyc C = xy + xc + yc


Ces expressions sont sous forme algbrique. Les deux expressions de C sont quivalentes. La deuxime est sous forme simplifie. En effet:

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 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

Pour la fonction C on a:
yx c

00 0 0

01 0 1

11 1 1

10 0 1

0 1

5.Logigramme. Pour la fonction S:

Pour la fonction C:

- 37 -

Chapitre III: Simplification des fonctions logiques.

II. MTHODES DE SIMPLIFICATION DES FONCTIONS LOGIQUES: 1. Introduction.


Pour simplifier une fonction en algbre, on recherche une forme dcriture plus condense et plus facile calculer. Par exemple:

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+ x = 1 x+ x = x x+ y = y+ x x + ( y + z) = ( x + y ) + z x. ( y + z) = x.y + x.z x + x.y = x 1+ x = 1 0+ x = x x + y = x.y

xx = 0 x.x = x x.y = y.x

(idempotence) (commutativit) (associativit)

x. ( y.z) = ( x.y).z

(x + y).z = x.z + y.z (distributivit) x. ( x + y) = x (absorption)


(De Morgan)

x.1 = x 0.x = 0 x.y = x + y x + xy = x + y

- 38 -

Chapitre III: Simplification des fonctions logiques.

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.

LES FORMES CANONIQUES.


Les formes qui permettent de localiser chaque case d'une table de Karnaugh comportant un 1 ou un 0 ou chaque ligne d'une table de vrit comportant un 1 ou un 0 sont appeles formes canoniques. Ces formes sont en gnral simplifiables. Elles sont utiles dans certains cas de simplification ou de recherche d'implantations symtriques pour faciliter le dpannage.

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.

A) PREMIRE FORME CANONIQUE: SOMME DE PRODUITS


Considrer la table de vrit ou la table de Karnaugh. chaque 1 de la variable de sortie, faire correspondre un produit des n variables d'entre sous la forme normale lorsque la variable d'entre est 1, sous la forme complment si la variable d'entre est 0. S'il y a p 1, faire la somme logique de ces p produits. Chaque produit doit contenir toutes les variables. L'expression obtenue est gnralement simplifiable.

- 39 -

Chapitre III: Simplification des fonctions logiques.

Dans notre cas, la table de vrit de la fonction S prcdente permet d'crire:

S = xyc + xyc + xyc + xyc Lignes 1 2 4 7 On retrouve l'expression initiale de S.

Pour C on aura: C = xyc + xyc + xyc + xyc On retrouve galement l'expression initiale non simplifie.

B) DEUXIME FORME CANONIQUE: PRODUIT DE SOMMES


Considrer la table de vrit ou la table de Karnaugh. chaque 0 de la variable de sortie, faire correspondre une somme des n variables d'entre sous la forme normale lorsque la variable d'entre est gale 0, sous la forme complment si la variable d'entre est gale 1. S'il y a q 0, faire le produit logique de ces q sommes. Chaque somme doit contenir toutes les variables. L'expression obtenue est gnralement simplifiable. Dans notre cas, la table de Karnaugh de la fonction S prcdente permet dcrire:

S = ( x + y + c)( x + y + c)( x + y + c)( x + y + c)

Cette forme se simplifie:

S = ( xx + xy + xc + yx + yy + yc + cx + cy + cc)( xx + xy + xc + yx + yy + yc + cx + cy + cc) S = ( xy + yx + c)( xy + yx + c) S = xyc + xyc + xyc + xyc


C'est bien l'expression de dpart. La premire et la deuxime formes canoniques sont donc deux faons d'crire la mme fonction. La deuxime forme canonique de C, partir de sa table de Karnaugh permet dcrire:

S = xyxy + xyyx + xyc + yxxy + yxyx + yxc + cxy + cyx + cc

- 40 -

Chapitre III: Simplification des fonctions logiques.

C = (x + y + c)(x + y + c)(x + y + c)(x + y + c) Simplifions cette expression: C= C= C= C = xy + xc + yc

C) TROISIME FORME CANONIQUE: FORME NON-ET


On la dduit de la premire forme canonique, elle conduit des diagrammes logiques nutilisant que des portes NON-ET. En effet, considrons une fonction logique qui se prsente sous la forme dune somme de produits, par exemple:

S = xyc + xyc + xyc + xyc On a donc S = xyc + xyc + xyc + xyc


Puisquune double inversion est une opration deffet nul. Daprs les thormes de De Morgan, on obtient:

S = xyc xyc xyc xyc


On obtiendra de la mme faon la troisime forme canonique de la fonction C, soit:

C = xyc + xyc + xyc + xyc C = xyc + xyc + xyc + xyc C = xyc xyc xyc xyc

- 41 -

Chapitre III: Simplification des fonctions logiques.

D) QUATRIME FORME CANONIQUE: FORME NON-OU


Partir de la deuxime forme canonique, produit de sommes:

S = ( x + y + c)( x + y + c)( x + y + c)( x + y + c)


On obtient la quatrime forme canonique de lexpression S:

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:

C = (x + y + c)(x + y + c)(x + y + c)(x + y + c) C = x+ y+ c+ x+ y+ c+ x+ y+ c+ x+ y+ c


EXERCICES.
1. Ecrire les quatre formes canoniques de la fonction donne par la table de vrit cidessous: z y x t 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0

2. Ecrire les quatre formes canoniques de lexpression

z = ab + abc

- 42 -

Chapitre III: Simplification des fonctions logiques.

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

EXEMPLE 1 Simplifiez ce circuit logique

- 43 -

Chapitre III: Simplification des fonctions logiques.

La premire tape consiste tablir l'expression de la sortie. Cette expression est:

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 -

Chapitre III: Simplification des fonctions logiques.

EXEMPLE 2 Simplifier lexpression

z = ABC + ABC + ABC


1re mthode. Les 2 premiers termes de lexpression ont les variables AB en commun

z= = = = =

2me mthode. Lexpression originale est

z = ABC + ABC + ABC


Les deux premiers termes ont en commun les variables AB, tandis que le premier et le dernier terme ont AC en commun. Comment savoir s'il faut choisir de mettre en facteur AB ou AC ? En ralit, on peut effectuer les deux mises en facteur en utilisant deux fois le terme ABC. Autrement dit, il faut rcrire l'expression de la faon suivante:

z = ABC + ABC + ABC + ABC


c'est--dire ajouter une autre fois ABC. Cette addition est admissible et ne change pas l'expression puisque ABC + ABC = ABC. Maintenant, mettons en facteur AB dans les deux premiers termes et AC dans les deux derniers.

z = AB(C + C) + AC( B + B) z = AB.1 + AC.1 z = AB + AC z = A ( B + C)

- 45 -

Chapitre III: Simplification des fonctions logiques.

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)

3. La mthode des diagrammes de Karnaugh.


Le diagramme de Karnaugh est un outil graphique qui permet de simplifier de manire mthodique une quation logique ou le processus de passage d'une table de vrit son circuit correspondant. Bien que les diagrammes de Karnaugh (ou diagrammes K) soient applicables des problmes ayant un nombre quelconque de variables d'entre, ils ne sont plus d'une grande utilit en pratique quand le nombre de variables dpasse six. Nous n'allons pas aborder de problmes ayant plus de quatre entres, puisque ceux ayant cinq et six entres sont des problmes d'envergure qu'il est prfrable de traiter avec un programme informatique.

La forme du diagramme de Kamaugh


Le diagramme K, tout comme la table de vrit, est un instrument qui met en vidence les rapports entre les entres logiques et la sortie recherche. La figure suivante nous fait voir trois exemples de diagrammes de Karnaugh pour deux, trois et quatre variables, ainsi que les tables de vrit correspondantes.

- 46 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

Runion de doublets (de paires)


La figure a) reproduit le diagramme K correspondant une certaine table de vrit trois variables. Si on y regarde de prs, il y a dans ce diagramme deux 1 qui sont voisins verticalement; le premier a les coordonnes

ABC tandis que le second a les

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 -

Chapitre III: Simplification des fonctions logiques.

La preuve de cette dernire affirmation est simple, la voici:

X = ABC + ABC X = BC(A + A ) X = BC(1) = BC


Le mme principe joue toujours pour tout doublet de 1 voisins verticalement ou horizontalement. On voit la figure b) deux 1 voisins horizontalement. Il est possible de runir ces deux 1 et d'liminer la variable C, celle qui est la fois non complmente et complmente. Le rsultat est alors X =

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 -

Chapitre III: Simplification des fonctions logiques.

Runion de quartets (groupes de quatre)


Il peut arriver quun diagramme K contienne quatre 1 qui soient adjacents, cest--dire quil contienne un quartet de 1 adjacents. La figure suivante regroupe plusieurs exemples de tels quartets. En a) les quatre 1 sont voisins verticalement, alors quen b), ils le sont horizontalement. Le diagramme de c) renferme quatre 1 arrangs en carr qui sont considrs adjacents, parce que, comme nous lavons dj dit, dans un diagramme K les lignes du haut et du bas et les colonnes droite et gauche sont considres comme adjacentes.

- 51 -

Chapitre III: Simplification des fonctions logiques.

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:

ABC, ABC, ABC et ABC


L'examen de ces quatre termes nous apprend que seule la variable C demeure inchange. En effet A et B apparaissent tous les deux sous la forme non complmente et la forme complmente. D'o le fait que l'expression dfinitive pour X est simplement X = C. En voici la dmonstration:

X = ABC + ABC + ABC + ABC X = AC( B + B) + AC( B + B) X = AC + AC X = C(A + A) X=C


Comme autre exemple, voyons la figure d) o quatre carrs renferment des 1, soit

ABCD,ABCD,ABCD,ABCD . L'examen de ces termes nous rvle que seules


les variables A et D restent telles quelles, de sorte que l'expression simplifie pour X est

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.

Exercice: vrifier les autres simplifications de la figure.

- 52 -

Chapitre III: Simplification des fonctions logiques.

Runion doctets (groupes de huit)


Quand on runit huit 1 adjacents, on dit qu'on runit un octet de 1 adjacents. On peut voir la figure suivante plusieurs exemples de runion d'octets. La runion d'un octet dans un diagramme K quatre variables donne lieu l'limination de trois variables, car une seule variable demeure inchange. Par exemple, observez bien les huit carrs runis en a). Seule la variable B est toujours sous la mme forme dans les huit termes, alors que toutes les autres sont non complmentes et complmentes. Aussi, pour ce diagramme X = B.

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 -

Chapitre III: Simplification des fonctions logiques.

Le processus de simplification au complet


Nous venons de voir comment la runion de doublets, de quartets et d'octets de 1 adjacents dans un diagramme K aboutit une expression simplifie. Voici la rgle gnrale valable pour toute runion quel que soit le nombre de 1 adjacents:

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 -

Chapitre III: Simplification des fonctions logiques.

EXEMPLES.

Les conditions indiffrentes .


Certains circuits logiques peuvent tre conus pour que certaines conditions d'entre ne correspondent aucun niveau de sortie particulier, principalement parce que ces conditions ne doivent jamais survenir. En d'autres mots, il existe certaines
- 55 -

Chapitre III: Simplification des fonctions logiques.

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 ABC , le concepteur peut dcider de mettre un 1 dans le carr

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 -

Chapitre III: Simplification des fonctions logiques.

4. MTHODE DE QUINE - Mac CLUSKEY (notes provenant du cours de Mr


CAPUTO)

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.c = a.b.c + ab.c


Le second terme b.c est quant lui le minterme rduit de deux mintermes incluant les variables a et a c'est--dire :

b.c = a.b.c + a.b.c


Le terme a.b.c tant double, il ne sera comptabilis qu'une seule fois. L'expression canonique de la fonction F(a,b,c) sera donc

F(a, b,c) = a.b.c + a.b.c + ab.c


- 57 -

Chapitre III: Simplification des fonctions logiques.

2. TUDE D'UNE FONCTION COMPLTE


Rappelons que deux monmes adjacents ne diffrent lun de lautre que par ltat logique dune seule variable. Exemples: a.b.c.d et a.b.c. d

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:

a.b.c.d + a.b.c.d = a.b.c. (d + d ) = a.b.c

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 -

Chapitre III: Simplification des fonctions logiques.

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

qui donneraient a.b qui donneraient a.b

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:

a.b = ( 11** ) a.b = ( 10** )


En rsum, nous crirons

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 -

Chapitre III: Simplification des fonctions logiques.

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

La fonction F scrira sous sa forme canonique:


- 60 -

Chapitre III: Simplification des fonctions logiques.

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:

F(a, b,c) = c + a = (0**) + (**1)

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 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

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 -

Chapitre III: Simplification des fonctions logiques.

- 66 -

Chapitre IV systme de numration et codes.


- Bases. - Passage dun code lautre (entiers, rels). - Oprations arithmtiques en binaires. - La complmentation. - Classification des diffrents codes: - pondrs: naturel, BCD. - non pondrs: biquinaire, quibinaire, excess3, Gray, alpha-numriques. - Contrle- dtecteurs derreurs.

Chapitre IV: Systmes et numration et codes.

CHAPITRE IV: SYSTMES DE NUMRATION ET CODES.


. BASES. 1. Introduction.
Ce chapitre expose la transition entre le codage et le fonctionnement intrinsque dun calculateur lectronique automatique ou ordinateur. Nous donnerons des exemples de codage pour le calcul numrique et nous vrifierons que l'algorithme d'une opration ne dpend pas du systme de numration choisi. Nous n'exposerons pas la thorie des quatre oprations lmentaires (addition, soustraction, multiplication, division) mais nous tablirons un parallle entre les techniques de ces oprations dans les systmes de numration binaire et dcimal. Nous verrons de plus les premires notions de codage chiffr. Notions essentielles, car dans un ordinateur, mme les caractres de l'alphabet (a, b, c,... , z) sont cods sous forme numrique binaire. Il faut donc se familiariser avec le calcul binaire et le codage.

2. Base d'un systme de numration


a) Dfinition dune base.
La base d'un systme de numration est le nombre de chiffres diffrents qu'utilise ce systme de numration.

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 -

Chapitre IV: Systmes et numration et codes.

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

o a i est un chiffre tel que 0 a i 9

c) Rang d'un chiffre.


Le rang d'un chiffre d'un nombre de base b quelconque est gal l'exposant de la base associe ce chiffre dans la reprsentation polynomiale du nombre considr. Soit par exemple, N = (87 672)10 alors: 2 est de rang 0, 6 est de rang 2, 8 est de rang 4. Le rang des chiffres crot de la droite vers la gauche. Le rang du chiffre de droite est nul par dfinition.

Ex. Soit N = (2345 6)10. Dterminer: a) le rang (ou poids) du chiffre 5 b) le rang (ou poids) du chiffre 3
- 68 -

Chapitre IV: Systmes et numration et codes.

Rp.

a): 1 b): 3

d) Reprsentation polynomiale d'un nombre n de base b quelconque .


Nous avons vu la dcomposition de tout nombre dcimal N en fonction de ses puissances entires de 10, soit:
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

o a i est un chiffre tel que 0 a i 9

Remarque:

On aurait d crire en toute rigueur mathmatique: a i 0,1,2,3,4,5,6,7,8,9

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.

Exemple1: Dans le systme base 6, on aura:

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 -

Chapitre IV: Systmes et numration et codes.

Exemple2: Dans le systme base 9, on aura:

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

Exemple3: Dans le systme base 12, on aura:

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

Exemple4: Si b=2, le systme de numration est appel binaire et lon aura:

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 -

Chapitre IV: Systmes et numration et codes.

e) Reprsentation polynomiale d'un nombre N de base b quelconque .


La valeur dcimale d'un nombre N de base b s'obtient par sa forme polynomiale vue au paragraphe prcdent. Exemple 1 Dterminer la valeur dcimale de N = (101101)2.

(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

(6734) 8 6 83 + 7 82 + 3 81 + 4 80 6 512 + 7 64 + 3 8 + 4 1 3072 + 448 + 24 + 4 ( 3458) 10


Exemple 3 Dterminer la valeur dcimale du nombre hexadcimal (base 16) N = (A732)16.

(A732)16 A 163 + 7 162 + 3 161 + 2 160 10 4096 + 7 256 + 3 16 + 2 40960 + 1792 + 48 + 2 ( 42802) 10

. PASSAGE DUN CODE LAUTRE - Changement de base.


1. Premier procd de conversion d'un nombre de base dcimale en un nombre de base b quelconque
Exemple1 Convertir le nombre N = (39487)10,en nombre octal. Nous savons que le nombre N cherch scrit:

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 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

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

Donc, N = (47375)10 = (1011100100001111) 2

- 73 -

Chapitre IV: Systmes et numration et codes.

RSUM. Dans ce premier algorithme on applique directement la formule:

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 -

Chapitre IV: Systmes et numration et codes.

Exemple1 Convertir le nombre N = (189520)10, en hexadcimal.

On a donc N = (189520)10 = (2E450)16. Vrification:


N 2 164 + 14 163 + 4 162 + 5 161 + 0 160 2 65536 + 14 4096 + 4 256 + 5 16 + 0 131072 + 57344 + 1024 + 80 (189520) 10

Exemple 2 Convertir le nombre N = (231)10, en binaire.

Donc N=(231)10 =(11100111)2


- 75 -

Chapitre IV: Systmes et numration et codes.

Vrification:

N 2 7 + 2 6 + 25 + 2 2 + 21 + 2 0 128 + 64 + 32 + 4 + 2 + 1 ( 231) 10

3. Nombres fractionnaires.. Rappel sur les nombres fractionnaires de base 10.


Nous savons quun nombre fractionnaire dcimal N, par exemple (0,8237421)10 peut se dcomposer sous la forme:

N 8 10-1 + 2 10-2 + 3 10-3 + 7 10-4 + 4 10-5 + 2 10-6 + 1 10-7


Les rangs seront :-1, -2, -3, -4, -5, -6 et -7. dune faon gnrale, si un nombre fractionnaire dcimal r/s est infrieur 1, on peut le mettre sous la forme:

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 -

Chapitre IV: Systmes et numration et codes.

PROBLME 1: Convertir un nombre fractionnaire infrieur 1 de

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

0,5 + 0,125 + 0,0625 + 0,0078125 + 0,00390625 + 0,0009765625 N = (0,7001953125)10

Exemple 2: Convertir N=(0,163)8 en dcimal. Nous aurons:

N 1 8-1 + 6 8-2 + 3 8-3

- 77 -

Chapitre IV: Systmes et numration et codes.

i 1 2 3 La somme

8-i 0,125 0,015625 0,001953125

Donne

0,125 + 0,093750 + 0,005859375 N = (0,224609375)10

PROBLME 2: Convertir un nombre dcimal fractionnaire en un

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 -

Chapitre IV: Systmes et numration et codes.

Donc, N=(0,732)10 = (0,56662)8 Vrification par lexpression polynomiale:

(0,56662)8 5 8-1 + 6 8-2 + 6 8-3 + 6 8-4 + 2 8-5


= 0,625 + 0,093750 + 0,011718750 en ne prenant que les 3 premiers termes = (0,730468750)10 ce qui est une bonne approximation

4.Conversion binaire-octal et vice versa..


Quatre chiffres binaires ou bits permettent 24=16 combinaisons et donc dcrire les seize entiers de 0 15 selon le tableau ci dessous.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

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 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

Donc: N = (79182)10 = (232516)8 = (010 011 010 101 001 110)2

5.Conversion binaire-hexadcimal et vice versa..


La base du systme de numration hexadcimal est aussi une puissance entire de 2, en effet 16=24. On a donc les mmes proprits que pour le systme octal, mais cette fois on groupe les bits par blocs de quatre. Exemple 1: Convertir en hexadcimal le nombre suivant: N = ( 1001 1100 1011 1010 , 0111)2 =( 9 C B A , 7 )16 Exemple 2: Convertir N= (11432)10 en binaire. Nous allons dabord convertir le nombre dcimal en base 16. Ensuite, nous convertirons chacun des chiffres trouvs en binaire (sur 4 bits car 16 = 24 ).

- 81 -

Chapitre IV: Systmes et numration et codes.

Donc: N = (2CA8)16 = (0010 1100 1010 1000)2 Exemple 3: N = (A78,B32)16 = (1010 0111 1000 , 1011 0011 0010)2

= (11432)10

. OPRATIONS ARITHMTIQUES EN BINAIRE


1. Laddition.
Rm: Multiplier un nombre dcimal par (10)10 revient lui ajouter un 0. De la mme faon, multiplier un nombre binaire par (10)2 revient lui ajouter un 0:

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:

1 + 1 = 10 101 + 101 = 1010


Dressons la table daddition:

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 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

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

673425 + 326575 1000000

Trouver le complment 10 d'un nombre revient le soustraire de la puissance de 10 immdiatement suprieure.

1000000 673425 326575


En binaire, trouver le complment 2 d'un nombre revient le soustraire de la puissance de 2 immdiatement suprieure. Par exemple le complment 2 de 1 1 0 1 0 1 1 0 1 0 est le rsultat de la soustraction

100000000000 1101011010 0010100110


Trouver le complment 2 revient aussi trouver le complment 1 (en complmentant chaque bit) et ajouter 1 au rsultat. Dans le cas prcdent on obtiendrait:

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 -

Chapitre IV: Systmes et numration et codes.

3- Soustraction par complmentation 1 et addition.


Voyons maintenant une proprit du complment des nombres qui permettra de justifier un autre algorithme pour la soustraction. Nous tirerons cette proprit d'un exemple sur des nombres dcimaux. Soit la soustraction en dcimal

17382 12457 + 04925

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:

Exemple2: Soit la soustraction suivante:

- 87 -

Chapitre IV: Systmes et numration et codes.

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.

4. Soustraction par complmentation 2 et addition.


Exemple 1: soit la soustraction suivante:

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.

5. Nombres positifs et ngatifs binaires normaliss huit caractres.


Les signes + et - ne sont pas assimilables tels quels par un ordinateur lequel ne connat que deux tats: 0 et 1. On convient donc de les reprsenter par un bit qui occupera la case de gauche du jeu de cases d'criture du nombre considr. Ce bit est appel le bit de signe. On peut, par exemple, reprsenter le signe + par 0 et le signe - par 1. C'est la convention gnralement adopte.
- 88 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

A- les codes pondrs 1- Code binaire naturel : base2: binaire pur


Dans ce code chaque bit (binary digit) ou eb (lment binaire) est affect du poids correspondant 2 exposant le rang quil occupe dans le nombre. On parlera L.S.B. (Least significant bit) lment binaire de poids le plus faible M.S.B. (Most significant bit) lment binaire de poids le plus fort. On parlera de code N.B.C.D (Natural binary coded dcimal) ou code 8 4 2 1 (1,2,4,8) lorsque la cl de codage est base sur lutilisation de 4 lettes: A B C D 20 21 22 23 1 2 4 8

2. Code DCB (dcimal cod binaire)


Nous avons vu que tout nombre dcimal pouvait tre converti en son quivalent binaire. Il est possible de considrer le groupe de 0 et de 1 du nombre binaire comme un code qui reprsente le nombre dcimal. Quand on fait correspondre un nombre dcimal son quivalent binaire, on dit qu'on fait un codage binaire pur. Les circuits numriques fonctionnent avec des nombres binaires exprims sous une forme ou sous une autre durant leurs oprations internes, malgr que le monde extrieur soit un monde dcimal. Cela implique qu'il faut effectuer frquemment des conversions entre les systmes binaire et dcimal. Nous savons que pour les grands nombres, les conversions de ce genre peuvent tre longues et laborieuses. C'est la raison pour laquelle on utilise dans certaines situations un codage des nombres dcimaux qui combine certaines caractristiques du systme binaire et du systme dcimal. Code dcimal cod binaire Si on reprsente chaque chiffre d'un nombre dcimal par son quivalent binaire, on obtient le code dit dcimal cod binaire (abrg dans le reste du texte par DCB). Comme le plus lev des chiffres dcimaux est 9, il faut donc 4 bits pour coder les chiffres (le code binaire de 9 est 1001).

- 90 -

Chapitre IV: Systmes et numration et codes.

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 -

Chapitre IV: Systmes et numration et codes.

B. Les codes non pondrs.


Pour ce codage le bit considr individuellement na aucune signification particulire, cest le groupement qui doit tre considr. Le groupe de codes non pondrs le plus important est le groupe des codes rflchis qui est dot dune proprit trs importante: entre 2 positions successives du code, on naura jamais quun seul changement de bit, cette proprit est trs intressante pour la vitesse de travail du systme (1 seul temps de commutation), mais aussi lerreur ventuelle de lecture ou de codage nimplique quune erreur de 1 par rapport la grandeur du chiffre cod. (codage angulaire)

1. Systme biquinaire et quibinaire.


Ces systmes utilisent 7 bits par chiffre dcimal, parmi ces 7 bits, 2 sont des 1 et deux seulement. Ceci permet deffectuer trs rapidement le contrle dune transmission dinformation en vrifiant la parit des 1. ce sont des systmes dits 2 sur n, dans ce cas 2 sur 7 (on peut rencontrer 2 sur 5, 3 sur 9). A) biquinaire. Les deux premiers bits gauche indiquent la prsence ou labsence du poids 5, les 5 autres indiquent la prsence ou labsence de 0,1,2,3 ou 4. Ainsi, tout chiffre infrieur 5 commence par 01 et tout chiffre suprieur 5 commence par 10. B) quibinaire. Les deux derniers bits droite indiquent quil sagit dun nombre impair 10 ou pair ou zro. N 0 1 2 3 4 5 6 7 8 9 biquinaire 50 01 01 01 01 01 10 10 10 10 10 43210 00001 00010 00100 01000 10000 00001 00010 00100 01000 10000
- 92 -

quibinaire 86420 00001 00001 00010 00010 00100 00100 01000 01000 10000 10 01 10 01 10 01 10 01 10 01

10000 10

Chapitre IV: Systmes et numration et codes.

2. Code Major de trois


Le code major de trois a une certaine parent avec le code DCB et on y a parfois recours en raison de la facilit avec laquelle on peut faire certains calculs arithmtiques. Le code major de trois d'un nombre dcimal se trouve de la mme manire que le code DCB, sauf qu'on ajoute trois chaque chiffre dcimal avant d'oprer la conversion. Exemple1 Trouver le code major de trois (dit aussi code plus trois) du nombre dcimal 4. On ajoute d'abord 3 ce dernier, ce qui donne 7, puis on trouve le groupe de 4 bits qui est quivalent ce dernier nombre, soit 0111. Exemple2 Trouver le code major de trois (dit aussi code plus trois) du nombre dcimal 48. 1. 4 + 3 = 7 (0111)2 2. 8 + 3 = 11 (1011)2 rponse: 0111 1011 Le tableau suivant donne la liste des reprsentations DCB et code major de trois pour les dix chiffres dcimaux. Notez que dans ces deux codes, seuls dix des 16 combinaisons possibles sont retenues. Cependant, dans le code major de trois, on n'utilise pas les mmes combinaisons que dans le code DC B. Ainsi, dans le code major de trois, les groupes non valides sont 0000, 0001, 0010, 1101, 1110 et 1111. Dcimal 0 1 2 3 4 5 6 7 8 9 DCB 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Major de trois 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

- 93 -

Chapitre IV: Systmes et numration et codes.

3. Code Gray ou binaire rflchi.


Le code Gray appartient la catgorie des codes dit distance minimale, du fait qu'une reprsentation code ne diffre de celle qui la prcde que par un bit. Le code Gray est un code non pondr, c'est--dire que les positions binaires des groupes cods ne sont affectes d'aucun poids. C'est pourquoi ce code ne convient pas du tout aux calculs arithmtiques, mais se retrouve surtout dans des applications d'entre et de sortie et dans des convertisseurs analogiques-numriques. Le tableau suivant nous fait voir en parallle les reprsentations du code Gray pour les nombres dcimaux de 0 15 et celles du code binaire pur. Dcimal 0 1 2 3 4 5 6 7 Binaire 0000 0001 0010 0011 0100 0101 0110 0111 Gray 0000 0001 0011 0010 0110 0111 0101 0100 Dcimal 8 9 10 11 12 13 14 15 Binaire 1000 1001 1010 1011 1100 1101 1110 1111 Gray 1100 1101 1111 1110 1010 1011 1001 1000

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 -

Chapitre IV: Systmes et numration et codes.

0 1 1 9 1 1 1 9 9 1 0 0

1 1 9 0

dcimal code erron chiffre dcimal 8

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 -

Chapitre IV: Systmes et numration et codes.

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.

Reprsentation dun nombre dcimal en Gray.


Procd: - 1. Convertir le nombre en binaire. - 2. Le bit de poids le plus fort du code Gray, situ lextrme gauche, est le mme que le MSB correspondant du nombre binaire. - 3. En vous dplaant de gauche droite, additionnez chaque paire de bits adjacente du code binaire pour obtenir le bit suivant du code Gray. Rejetez les retenues. (Cest un OU exclusif!!!)

- 96 -

Chapitre IV: Systmes et numration et codes.

Exemples: crire les nombres 45,46,47 en Gray


( 45) 10 = ( 0 1 0 1 1 0 1) 2
0 1 0 1 1 0 1 1 1 1 0 1 1

( 45) 10 = (101101) 2 = (111011) gray ( 46) 10 = ( 0 1 0 1 1 1 0) 2


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

( 46) 10 = (101110) 2 = (111001) gray ( 47) 10 = ( 0 1 0 1 1 1 1) 2


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

( 47) 10 = (101111) 2 = (111000) gray

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.

Exemples: crire les nombres (111011)gray (111001)gray, (111000)gray en binaire et en dcimal.

- 96 bis-

Chapitre IV: Systmes et numration et codes.

4- Les codes alphanumriques.


Un ordinateur ne serait pas d'une bien grande utilit s'il tait incapable de traiter l'information non numrique. On veut dire par l qu'un ordinateur doit reconnatre des codes qui correspondent des nombres, des lettres, des signes de ponctuation et des caractres spciaux. Les codes de ce genre sont dit alphanumriques. Un ensemble de caractres complet doit renfermer les 26 lettres minuscules, les 26 lettres majuscules, les dix chiffres, les 7 signes de ponctuation et entre 20 40 caractres spciaux comme + , /, # , %. On peut conclure qu'un code alphanumrique reproduit tous les caractres et les diverses fonctions que l'on retrouve sur un clavier standard de machine crire ou d'ordinateur. Code ASCII Le code alphanumrique le plus rpandu est le code ASCII (American Standard Code for Information Interchange); on le retrouve dans la majorit des ordinateurs. Le code ASCII (prononc aski ) est un code 7 lments, on peut donc reprsenter grce lui 27 = 128 groupes cods. C'est amplement suffisant pour reproduire toutes les lettres courantes d'un clavier et les fonctions de contrle comme (RETOUR) et (INTERLIGNE). Le code ASCII sert coder l'information alphanumrique transmise entre un ordinateur et ses priphriques d'entre/sortie comme les crans de visualisation ou les imprimantes. Un ordinateur recourt aussi ce code pour stocker les informations envoyes par l'oprateur depuis son clavier. Voici un exemple qui illustre cette situation. Exemple 1. A laide du tableau suivant, dcoder le message suivant cod en ASCII. 1000001 1001001 1000100 1000101 Solution: Convertir chaque code 7 lments en son quivalent hexadcimal. Ce qui donne: 41 49 44 45 Maintenant, localisons ces nombres hexadcimaux dans le tableau suivant et substituons-y les caractres associs. AIDE

- 97

Chapitre IV: Systmes et numration et codes.

- 98

Chapitre IV: Systmes et numration et codes.

Autre reprsentation.

- 99

Chapitre IV: Systmes et numration et codes.

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

Chapitre IV: Systmes et numration et codes.

- 101

Chapitre IV: Systmes et numration et codes.

. CONTRLE -DTECTION DERREURS


A. Les codes simples. 1. Le contrle de parit. Le contrle de parit fonctionne selon un principe trs simple: aux n bits que comporte le code l'origine, nous ajoutons 1 bit supplmentaire. Ce bit est positionn de telle sorte que le nombre total des bits 1 soit: * pair (code dit parit ou abusivement parit paire), * impair (code dit imparit ou abusivement parit impaire).

Parit (parit paire)

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

Imparit (parit impaire)

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

Chapitre IV: Systmes et numration et codes.

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

Chapitre IV: Systmes et numration et codes.

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

Chapitre IV: Systmes et numration et codes.

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

L RC 1 0 1 0 1 1 1 1 <--- bit erron <--- parit croise

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

Chapitre IV: Systmes et numration et codes.

- 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

Chapitre IV: Systmes et numration et codes.

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

1) N] se traduit par une

complmentation bit bit.

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

Chapitre IV: Systmes et numration et codes.

Relations: Si 0 < N < 2 n - 1 (base 2, n bits, nombre N), alors: code (-N) = cv (N) = code (2 n - N)

Si N = 0, alors: code (-0) = cv (0) = code (2 n) = 0

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

Chapitre IV: Systmes et numration et codes.

Code 000 001 010 011 100 101 110 111

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

Chapitre IV: Systmes et numration et codes.

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

En C++, il existe 5 types pr-dfinis dentiers:

Type int short int unsigned int long int unsigned long

Taille (en octets) 2 2 2 4 4

Intervalle -32768...32767 -32768...32767 0...65535 -2147483648...2147483647 0...4294967295

- 110

Chapitre IV: Systmes et numration et codes.

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:

valeur = (- 1) signe . 2 (E int - 1 2 7 ) . 1,mantisse

- 111

Chapitre IV: Systmes et numration et codes.

Eint = valeur de la reprsentation interne de lexposant. signe 32 exposant e7 ... e0 30 23 mantisse m22 ... m0 22 0

Cest la norme IEEE-754 simple prcision.

* 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

Chapitre IV: Systmes et numration et codes.

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

Chapitre IV: Systmes et numration et codes.

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

NAN > Not A Number (- 1) signe .

Nest pas un nombre + ou -

, selon le signe

(- 1) signe . 2 -126 . 0,mantisse

Plus petits nombres reprsentables. Dnormalisation. Plus ou moins zro, selon le signe Nombre normal en virgule flottante. Normalisation.

RE = 0 0 < RE < (255 ou 2047)

M=0

(- 1) signe . 0 (- 1) signe . 2 RE -127 . 1,mantisse

Les divers formats de nombres du standard IEEE: * normalis: + 0 < exp < Max configuration quelconque de bits

* dnormalis: + * zro: + 0 0 0 toute configuration de bits, sauf 0

- 114

Chapitre IV: Systmes et numration et codes.

* infini: + * NAN: + 11...11 toute configuration de bits, sauf 0 11...11 0

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.

Quelques rgles de calcul:

X = 0 X+ = X = = NAN

arctan( ) =

2 X = NAN

0 = NAN 0

- 115

Chapitre IV: Systmes et numration et codes.

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

Chapitre IV: Systmes et numration et codes.

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

Chapitre IV: Systmes et numration et codes.

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

Chapitre V Problmes de logique combinatoire


- Arithmtique binaire: oprations et circuits. - additionneur (semi...). - soustracteur (semi...). - additionneur - soustracteur. - additionneur parallle intgr. - notation complment 2. - additionneur DCB. - gnrateur et contrleur de parit. - multiplicateurs binaires. - comparateurs de grandeurs. - Circuits logiques MSI. - dcodeurs. - pilotes / dcodeurs DCB- 7 segments. - codeurs. - transcodeurs. - multiplexeurs. - dmultiplexeurs. -dcodeur/ codeur et multplexeur/dmultiplexeur.

Chapitre V: Problmes de logique combinatoire.

CHAPITRE V: PROBLMES DE LOGIQUE COMBINATOIRE.


I. ARITHMTIQUE BINAIRE: OPRATIONS ET CIRCUITS. 1. Additionneurs. A) semi-additionneur. (half adder)
Cest un circuit daddition qui ajoute deux lments binaires de mme rang.

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

De cette table, on peut tirer les quations logiques:

S= A B C = A.B

- 119 -

Chapitre V: Problmes de logique combinatoire.

B)additionneur. (full adder)


Cest un circuit daddition qui ajoute deux lments binaires de mme rang, mais qui tient compte du report ventuel du rang prcdent. Table de vrit Cen= entre du bit de report = report du rang prcdent Cs = sortie du bit de report A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 Cen 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 Cs 0 0 0 1 0 1 1 1

De cette table, on peut tirer les quations logiques:

S = ABC S = A BC

( en + BCen ) + A(BCen + BCen ) S = A( B C ) + A( B C ) en en


S = A B C en CS = CS = CS = C = A.B + (A B).C S en
- 120 -

en

+ ABC

en

+ ABC

en

+ ABC en

Chapitre V: Problmes de logique combinatoire.

De ces quations, on peut dduire les schmas suivants:

On peut donc raliser ladditionneur complet avec 2 semi-additionneurs et un circuit ou.

- 121 -

Chapitre V: Problmes de logique combinatoire.

2.

Soustracteurs. A) semi-soustracteur. (half subtractor)


Cest un circuit de soustraction qui soustrait un lment binaire dun autre de mme rang..

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

De cette table, on peut tirer les quations logiques:

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 -

Chapitre V: Problmes de logique combinatoire.

B)Soustracteur. (full subtractor)


Cest un circuit de soustraction qui soustrait un lement binaire dun autre de mme rang, mais qui tient compte du retrait ventuel dun emprunt du rang prcdent. Table de vrit Boen= retrait dun emprunt du rang prcdent Bos = emprunt A 0 1 1 0 0 1 0 1 B 0 0 1 1 0 0 1 1 Boen 0 0 0 0 1 1 1 1 S 0 1 0 1 1 0 0 1 Bos 0 0 0 1 1 0 1 1

De cette table, on peut tirer les quations suivantes:

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 -

Chapitre V: Problmes de logique combinatoire.

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

4. Additionneur parallle intgr.


II existe plusieurs additionneurs parallles dans des botiers CI. L'un des plus courants est un botier d'additionneurs parallles de 4 bits comprenant 4 additionneurs complets (AC) et leurs connexions et les circuits de l'anticipation du report ncessaires un fonctionnement rapide. Les 7483A, 74LS83A, 74283 et 74LS283 sont tous des botiers d'additionneurs parallles 4 bits de la famille TTL. Les 283 sont identiques aux 83, l'exception du fait que Vcc et la masse sont respectivement sur les broches 16 et 8; c'est dsormais la norme sur toutes les nouvelles puces d'avoir les broches d'alimentation et de la masse aux coins du botier. Le 74HC283 est la version CMOS rapide du mme additionneur parallle 4 bits. On peut voir la figure suivante le symbole logique de l'additionneur parallle de 4 bits 74LS83. Les entres de ce C I sont deux groupes de 4 bornes A3A2A1A0 et B3B2B1B0 servant appliquer deux nombres de 4 bits, et le report C0, appliqu au rang de poids faible. Les sorties sont les 4 bits de somme S3S2S1S0 et le report C4 quittant l'tage de poids fort. Les bits de somme sont souvent dsigns 3210 o est la lettre grecque sigma.

- 124 -

Chapitre V: Problmes de logique combinatoire.

Montage en cascade d'additionneurs parallles


II est possible de raccorder deux ou plusieurs additionneurs parallles en cascade afin d'additionner des nombres ayant un plus grand nombre de bits. La figure ci-dessous nous montre deux additionneurs 74LS83 sont relis afin de pouvoir additionner deux nombres de 8 bits. Ladditionneur de droite additionne les 4 bits de poids le plus faible des nombres. La sortie C4 de cet additionneur est relie l'entre report du second additionneur: ce dernier additionne les 4 bits de poids le plus fort des nombres. Les huit sorties de la somme indiquent le rsultat de l'addition de deux nombres de 8 bits. C8 est le report fourni par l'tage du rang de poids le plus fort du second additionneur. Cette sortie peut devenir un bit de dpassement ou servir de report pour un autre tage d'additionneur, si on traite des nombres binaires encore plus longs.

- 125 -

Chapitre V: Problmes de logique combinatoire.

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 -

Chapitre V: Problmes de logique combinatoire.

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 -

Chapitre V: Problmes de logique combinatoire.

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 -

Chapitre V: Problmes de logique combinatoire.

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 -

Chapitre V: Problmes de logique combinatoire.

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).

Formule sous la forme dune quation boolenne, cette constatation est:

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 -

Chapitre V: Problmes de logique combinatoire.

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.

Additionneurs DCB monts en Cascade


Le circuit prcdent sert seulement additionner deux chiffres dcimaux cods en DCB. Quand les nombres dcimaux possdent plusieurs chiffres, il faut pour leur addition utiliser un additionneur DCB distinct pour chaque rang de chiffres dans le nombre.

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 -

Chapitre V: Problmes de logique combinatoire.

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 -

Chapitre V: Problmes de logique combinatoire.

8. GNRATEUR ET CONTRLEUR DE PARIT.


Au chapitre prcdent, nous avons vu qu'un metteur peut joindre un bit de parit aux donnes qu'il transmet avant de les acheminer au rcepteur. Nous avons galement appris que le rcepteur grce cette astuce pouvait dtecter les erreurs monobits survenant durant la transmission. La figure suivante nous fait voir un exemple de circuit logique pouvant servir la production et au contrle de la parit. Cet exemple particulier porte sur des mots de quatre bits et concerne la parit paire. On peut adapter ces solutions telles quelles la parit impaire et au nombre de bits que l'on veut.

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 -

Chapitre V: Problmes de logique combinatoire.

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.

Entres des donnes


Le 74LS85 compare deux nombres binaires de 4 bits non signs. Le premier, plac sur A3A2A1A0, s'appelle le mot A; l'autre, plac sur B3B2B1B0, s'appelle le mot B. L'expression mot sert en technologie numrique dsigner un ensemble de bits vhiculant un certain genre d'information. Dans le cas prsent, les mots A et B sont des grandeurs numriques.
- 134 -

Chapitre V: Problmes de logique combinatoire.

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 -

Chapitre V: Problmes de logique combinatoire.

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 -

II.CIRCUITS LOGIQUES MSI ( intgration moyenne chelle). INTRODUCTION.


Dans les systmes numriques, on retrouve toujours des donnes et des informations codes sous forme binaire qui sont sans cesse soumises des oprations, comme: 1) le dcodage et le codage - transposition des donnes d'un code un autre, 2) le multiplexage - choix d'un groupe de donnes parmi plusieurs, 3) le dmultiplexage - aiguillage des donnes vers une destination parmi plusieurs, et 4) l'acheminement par bus - transmission de donnes entre plusieurs dispositifs par l'intermdiaire d'un bus commun. Toutes ces oprations, ainsi que d'autres, sont dsormais faciles matrialiser grce aux nombreux circuits intgrs de la classe MSI (intgration moyenne chelle). Dans cette partie de chapitre, nous tudierons plusieurs types de dispositifs MSI parmi les plus courants. Pour chaque type de dispositif, - nous commencerons par une courte discussion de son principe de fonctionnement, - nous prsenterons des CI spcifiques, - nous montrerons quel rle ces dispositifs jouent dans diverses applications quand on les utilise soit seuls, soit combins d'autres circuits intgrs.

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

exemple la sortie O6 passe 1 quand CBA = 1102 = 610).

Comment appeler ce dcodeur?


- On peut l'appeler dcodeur entre trois voies, sortie huit voies, parce qu'il y a trois voies d'entre et huit voies de sortie. - On peut aussi dire que c'est un dcodeur ou convertisseur binaire-octal parce qu'il tablit la correspondance entre un code d'entre binaire de 3 bits et une sortie parmi huit (octal). - On dit galement que c'est un dcodeur 1 parmi 8, parce qu'il y a 1 sortie parmi les 8 qui est active la fois.

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

Voil ce que nous donne Electronics Workbench

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.

2. PILOTES / DCODEURS DCB - 7 SEGMENTS.


Dans de nombreux affichages numriques, les dix chiffres 0 9, et parfois les caractres hexadcimaux A F, sont configurs au moyen de 7 segments (figure a). Chaque segment est constitu d'un matriau qui met de la lumire quand il est travers par un courant. Les matriaux les plus utiliss sont les diodes lectroluminescentes (LED) et les filaments incandescents. La figure b) nous montre comment sont disposs les segments afin de pouvoir afficher les diffrents chiffres. Par exemple, pour afficher le chiffre 6 il faut que les segments c, d, e, f et g soient allums et que les segments a et b soient teints.

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

a, f , g, c et d du pilote/dcodeur sont amenes au niveau BAS (raccordes la masse),


ce qui a pour effet de faire passer un courant travers les segments DEL a, f, g, c et d et d'afficher le nombre 5. Les sorties b et e demeurent au niveau HAUT (ouvert) et les segments correspondants b et e restent teints. Les pilotes/ dcodeurs 7446 et 7447 ont t conus de faon allumer certains segments mme si le code d'entre est suprieur 1001 (9). D'ailleurs la figure b), on peut voir les segments qui s'allument en rponse tous les codes d'entre de 0000 1111 (15). Notez que le code d'entre 1111 teint tous les segments. L'afficheur DEL de cette figure est dit anode commune parce que toutes les anodes des segments sont runies Vcc. Il existe un autre type d'afficheur DEL 7 segments dit cathode commune dans lequel toutes les cathodes des segments sont runies la masse. Ce dernier type d'afficheur est attaqu par un pilote/dcodeur DCB-7 segments dont les sorties sont vraies au niveau HAUT; ainsi quand des sorties sont rendues actives, les anodes des segments correspondants passent la tension HAUTE. Le pilote/ dcodeur 7448 fonctionne de cette manire.

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

Photocopies du data handbook.

148

Dfinition de certaines entres/sorties

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

O 2 = 0, O1 = 1 et O 0 = 1 ce qui est le code binaire de 3. Observez que A 0 n'est pas


connecte une porte logique, puisque les sorties du dcodeur sont normalement 000 quand aucune des entres de A 1 A 7 n'est au niveau BAS.

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

A 0 , A 2 et A 6 sont rendues actives en mme temps. Les 74148, 74LS148 et 74HC148


sont des codeurs de priorit octal-binaire.

Codeur de priorit dcimal-DCB 74147


La figure suivante nous montre le symbole logique du codeur de priorit dcimal-DCB 74147 (74LS 147, 74HC 147). Celui-ci a 9 entres vraies au niveau BAS reprsentant les 9 chiffres dcimaux 1 9 et il produit la reprsentation DCB complmente correspondant l'entre la plus haute mise au niveau vrai.

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.

Exemple dutilisation dun 74147: codeur dinterrupteurs. On place 10


interrupteurs aux 10 entres. Les 10 interrupteurs peuvent tre ceux d'un clavier de calculatrice reprsentant les chiffres 0 9. Les interrupteurs sont du type ouvert au repos, de sorte que les entres du codeur sont gnralement toutes 1; quand c'est le cas la sortie DCB est 000 (remarquez les inverseurs). Quand une touche numrique est enfonce, le circuit donne en sortie le code DCB correspondant ce chiffre. Comme le 74147 est un codeur de priorit, l'enfoncement simultan de plusieurs touches place en sortie le code DCB de la touche numriquement la plus leve. Ce codeur d'interrupteurs peut servir toutes les fois que l'on doit introduire manuellement des donns DCB dans un systme numrique. Un exemple parfait de cela est la calculatrice lectronique dans laquelle un oprateur introduit le nombre dcimal en appuyant successivement sur des interrupteurs du clavier. Dans une calculatrice lmentaire, le code DCB de chaque chiffre dcimal est introduit dans un registre mmoire de 4 bits. Ce qui veut dire que lorsqu'on appuie sur la premire touche, le code DCB correspondant ce chiffre est envoy un registre de 4 bits, quand on appuie sur le second interrupteur, le code DCB de ce nouveau chiffre est envoy un autre registre bascules de 4 bits, et ainsi de suite.

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

On obtient les quations suivantes:

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

Chapitre V: Problmes de logique combinatoire

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.

Multiplexeur lmentaire deux entres


La figure suivante schmatise les circuits logiques d'un multiplexeur deux entres ,I0 et I1, et une entre de slection S. Le niveau logique appliqu S choisit la porte ET qui est valide, de faon ce que son entre de donnes traverse la porte OU jusqu' la sortie Z

157

Chapitre V: Problmes de logique combinatoire

D'aprs l'algbre boolenne, l'expression de la sortie est:

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

Chapitre V: Problmes de logique combinatoire

Multiplexeur huit entres


Voyez la figure suivante a) le schma logique du multiplexeur huit entres 74151 (74LS 151, 74HC 151).

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

Chapitre V: Problmes de logique combinatoire

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

Chapitre V: Problmes de logique combinatoire

Quatre multiplexeurs deux entres (74157/LS157/HC157)


Il s'agit ici d'un botier intgr qui renferme quatre multiplexeurs deux entres identiques celui de la page157. Le schma logique du 74157 vous est montr la figure suivante a). Notez de quelle faon les entres de donnes et les sorties sont dsignes.

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

Chapitre V: Problmes de logique combinatoire

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:

Z = ABC + ABC + ABC


Il est impossible de simplifier cette expression au moyen de l'algbre ou d'un diagramme K, ce qui signifie que pour la matrialiser il faut 3 INVERSEURS et 4 portes NON-ET, soit au total 2 circuits intgrs.

162

Chapitre V: Problmes de logique combinatoire

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.

APPLICATIONS DES MULTIPLEXEURS


Les applications des multiplexeurs dans le domaine des techniques numriques sont nombreuses et varies. On en retrouve dans les circuits de slection de donnes, d'aiguillage de donnes, d'ordonnancement des oprations, de conversion parallle-srie, de gnration de formes d'ondes et de production de fonction logique.

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

Chapitre V: Problmes de logique combinatoire

Dmultiplexeur entre une voie, sortie huit voies


La figure suivante nous fait voir le schma logique d'un dmultiplexeur qui dirige une voie d'entre vers huit voies de sortie possibles. La ligne d'entre de donnes unique I est connecte aux huit portes ET, mais une seule de ces portes est valide par les entres SELECT. Par exemple, quand S2S1S0 = 000, seule la porte ET 0 est valide, et l'entre de donnes I se retrouve sur la sortie O0. Les autres codes SELECT font en sorte que l'entre I traverse les portes des autres sorties. La table de vrit rcapitule ce fonctionnement.

164

Chapitre V: Problmes de logique combinatoire

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

Chapitre V: Problmes de logique combinatoire

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.