Vous êtes sur la page 1sur 36

1 ère partie

des zéros et des uns

1 è r e partie des zéros et des uns A. Introduction

A. Introduction

Une grandeur analogique varie de façon continue dans le temps. C’est le cas de la majorité des paramètres physiques : pression, température, vitesse, force, couple, …

En électronique analogique, une grandeur physique est représentée par un paramètre électrique (tension ou courant) qui varie de façon similaire (ressemblance)

Cette tension (courant) prend une infinité de valeurs, dont la précision est faussée par le bruit des composants ainsi que leurs valeurs peu précises

des composants ainsi que leurs valeurs peu précises Les microprocesseurs ont révolutionné notre monde dans les

Les microprocesseurs ont révolutionné notre monde dans les dernières décennies : PC portables, automobile, médical, téléphonie, …

Les puissances de calcul explosent, les prix diminuent !

… Les puissances de calcul explosent, les prix diminuent ! 3 Gordon Earl Moore : né
… Les puissances de calcul explosent, les prix diminuent ! 3 Gordon Earl Moore : né
… Les puissances de calcul explosent, les prix diminuent ! 3 Gordon Earl Moore : né

3

Gordon Earl Moore : né en 1929, docteur en chimie, cofondateur de la société INTEL. Loi (1965) : Le nombre de transistors double tous les 2 ans dans les circuits intégrés.

Les capacités de calcul et de stockage des systèmes numériques font que l’analogique perd de plus en plus de terrain face au numérique

L’électronique analogique reste présente dans certains domaines où le numérique n’a pas sa place :

1. Le conditionnement de signaux issus de capteurs (amplification et filtrage). L’objectif est alors de dégager un signal électrique souvent faible du bruit de façon à pouvoir l’utiliser ou le traiter

2. Les transmission radio fréquence (RF) ou haute fréquence (HF), le microprocesseur est limité en fréquence !

3. Les convertisseurs de puissance (Redresseurs, onduleurs, hacheurs, gradateurs), le microprocesseur est limité en
3. Les convertisseurs de puissance (Redresseurs, onduleurs, hacheurs,
gradateurs), le microprocesseur est limité en puissance !
Signal
Capteur
Amplification
Filtrage
électrique
Paramètre
Numérisation

physique

5

Le premier traitement qu’on fait subir au signal est une opération d’échantillonnage. A chaque période Te, on prélève un échantillon du signal à numériser. Le signal est discrétisé.

La seconde opération est une quantification des échantillons prélevés. On fait correspondre à chaque échantillon un mot binaire sur N bits. A partir de là, on considère que le signal est numérisé.

à chaque échantillon un mot binaire sur N bits. A partir de là, on considère que
à chaque échantillon un mot binaire sur N bits. A partir de là, on considère que

continue dans le temps instants d’échantillonnage

continue dans le temps instants d’échantillonnage discrétisation quantification infinité de valeurs nb de
continue dans le temps instants d’échantillonnage discrétisation quantification infinité de valeurs nb de

discrétisationcontinue dans le temps instants d’échantillonnage quantification infinité de valeurs nb de valeurs fini Il

le temps instants d’échantillonnage discrétisation quantification infinité de valeurs nb de valeurs fini Il
le temps instants d’échantillonnage discrétisation quantification infinité de valeurs nb de valeurs fini Il

quantificationle temps instants d’échantillonnage discrétisation infinité de valeurs nb de valeurs fini Il existe

instants d’échantillonnage discrétisation quantification infinité de valeurs nb de valeurs fini Il existe
instants d’échantillonnage discrétisation quantification infinité de valeurs nb de valeurs fini Il existe
instants d’échantillonnage discrétisation quantification infinité de valeurs nb de valeurs fini Il existe

infinité de valeurs nb de valeurs fini

quantification infinité de valeurs nb de valeurs fini Il existe néanmoins des contraintes sur les instants
quantification infinité de valeurs nb de valeurs fini Il existe néanmoins des contraintes sur les instants

Il existe néanmoins des contraintes sur les instants d’échantillonnages :

Théorème de Shannon-Nyquist

Théorème : il faut que la fréquence d’échantillonnage soit au moins 2 fois plus élevée que la fréquence du signal analogique

7

Des composants appelés convertisseurs sont utilisés pour passer de l’analogique au numérique et inversement Le
Des composants appelés convertisseurs sont utilisés pour passer de
l’analogique au numérique et inversement
Le convertisseur analogique numérique « CAN » ou « ADC »
CAN
Il est caractérisé par :
• Sa résolution (nb de bits)
• Son temps de conversion (t conv )
• Sa plage de tension d’entrée
Le convertisseur numérique analogique « CNA » ou « DAC »
(t conv ) • Sa plage de tension d’entrée Le convertisseur numérique analogique « CNA »
CNA
CNA
(t conv ) • Sa plage de tension d’entrée Le convertisseur numérique analogique « CNA »

Caractéristique :

représentation linéaire par défaut

représentation linéaire centrée

i o n l i n é a i r e c e n t r

9

Mise en situation :

Pour exploiter la puissance des calculateurs numériques qui ne parlent que la langage binaire, il est nécessaire de passer de la forme analogique vers la forme numérique, c’est le rôle du CAN.

Le calcul numérique peut être une régulation de vitesse dans un véhicule , un compteur d’énergie EDF, filtrage d’un signal audio, …

Les résultats du traitement numériques reviennent dans le monde analogique grâce au CNA.

résultats du traitement numériques reviennent dans le monde analogique grâce au CNA. Calcul numérique CAN CNA
Calcul numérique
Calcul numérique
Calcul numérique
Calcul numérique
Calcul numérique

Calcul

Calcul

numérique

numérique
Calcul numérique
Calcul numérique
Calcul numérique
Calcul numérique
Calcul numérique
Calcul numérique
CAN
CAN
CNA
CNA
résultats du traitement numériques reviennent dans le monde analogique grâce au CNA. Calcul numérique CAN CNA

Certains appareils fonctionnent de façon binaire, ils sont donc plus faciles à commander numériquement :

Un bouton poussoir (interrupteur) est fermé ou ouvert :

BP=1 pour fermé et BP=0 pour ouvert (par exemple)

Un voyant (LED ou pixel) est allumé ou éteint :

LED=1 pour allumée et LED=0 pour éteinte (par exemple)

Un détecteur crépusculaire qui commande l’éclairage public signale qu’il fait nuit ou jour

S=1 pour NUIT et S=0 pour JOUR (par exemple)

Un code saisi au clavier d’un distributeur de billets est vrai ou faux :

code=1 pour VRAI et code=0 pour FAUX (par exemple)

Représentation symbolique des valeurs binaires

11

exemple) Représentation symbolique des valeurs binaires 11 Valeur Contexte Faux Vrai Logique booléenne

Valeur

Contexte

Faux

Vrai

Logique booléenne

0V

5V

Niveaux électriques (logique positive)

L

H

Datasheet

5V

0V

Niveaux électriques (logique négative)

+5V

-5V

RS232 (tension bipolaire et logique négative)

B. Numération et codage

1. Les systèmes de numération

B. Numération et codage 1. Les systèmes de numération Systèmes additifs Nombre = juxtaposition des symboles

Systèmes additifs

Nombre = juxtaposition des symboles (répétés autant de fois qu’il le faut)

Valeur du nombre = somme des valeurs des symboles qui le composent

Exemples : systèmes grec, romain (MDCCLXIV = 1764)

Systèmes positionnels

Nombre = juxtaposition des symboles

Valeur du symbole dépend de sa position dans le nombre

Exemple : le système décimal utilisé actuellement

2016 = 2.10 + 0.10 +1.10 + 6.10

3

2

1

0

1.1 La notion de base pondérée

1.1 La notion de base pondérée

Dans un système de base B

Chaque chiffre peut prendre B valeurs différentes (en base 10, chaque chiffre peut prendre l’une des 10 valeurs allant de 0 à 9)

À chaque chiffre est affecté un poids = B P (P est la position du chiffre : en partant de la droite vers la gauche, elle vaut 0, 1, 2, 3, etc.). On parle de base pondérée

Soit un nombre

Sa valeur en décimal

On peut représenter B N valeurs différentes avec N chiffres

Les valeurs représentées vont de 0 à B N -1

Un décalage à droite + 0 à gauche divise par B le nombre (à N fixe)

Un décalage à gauche + 0 à droite multiplie par B le nombre (à N fixe)

X (

= a

n

1

a

n

a

1

n

1

a

0

+

a

n

B )

2

X a

(10)

=

n

1

B

2

B

n

2

+

a

1

B

1

+

a

0

B

15

0

1.2 Les bases courantes en 2 k

B n 2 + a 1 B 1 + a 0 B 15 0 1.2 Les

base 2 (binaire)

La base 10 est importante parce qu’elle est utilisée tous les jours par les humains

La base 2 est aussi importante parce qu’elle est utilisée par les circuits numériques

En base 2 chaque chiffre (bit) peut valoir soit 0 soit 1 (un mot binaire est une suite de 0 et de 1)

Les poids affectés aux bits en partant de la droite sont : 2 0 , 2 1 , 2 2 , …

On peut représenter 2 N valeurs différentes avec N bits

Les valeurs représentées vont de 0 à 2 N -1

Le nombre : ( ) =1010

vaut en décimal

X

(10)

=

1.2

3

+

0.2

2

+

1.2

1

+

0.2

0

=

8

+

2

=

10

base 8 (octal)

La base 8 est une contraction de la base 2. 8=2 3 , ce qui fait que chaque chiffre en octal est un regroupement de 3 bits en binaire

Chaque chiffre peut prendre 8 valeurs différentes (de 0 à 7)

Les poids affectés aux chiffres en partant de la droite sont : 8 0 , 8 1 , 8 2 , …

On peut représenter 8 N valeurs différentes avec N chiffres

Les valeurs représentées vont de 0 à 8 N -1

Le passage du binaire à l’octal se fait en regroupant les bits 3 par 3

Le nombre : ( ) =101011100110

vaut en octal

X (8)

= 5346

17

base 16 (hexadécimal)

La base 16 est une contraction de la base 2. 16=2 4 , ce qui fait que chaque chiffre en hexadécimal est un regroupement de 4 bits en binaire

Chaque chiffre peut prendre 16 valeurs différentes (de 0 à 15). Pour éviter les confusions, les valeurs supérieures à 9 sont représentées par des lettres majuscules : A, B, C, D, E et F

Les poids affectés aux chiffres en partant de la droite sont : 16 0 , 16 1 , 16 2 , …

On peut représenter 16 N valeurs différentes avec N chiffres

Les valeurs représentées vont de 0 à 16 N -1

Le passage du binaire à l’hexadécimal se fait en regroupant les bits 4 par 4

Le nombre : ( ) =101011100110 vaut en hexadécimal

X (16)

= AE 6

Tableau récapitulatif

DECIMAL

BINAIRE

OCTAL

HEXADECIMAL

0

0000

 

0 0

1

0001

 

1 1

2

0010

 

2 2

3

0011

3 3

 

4

0100

4 4

 

5

0101

5 5

 

6

0110

 

6 6

7

0111

 

7 7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

14

E

15

1111

17

F

19

1.3 Règles de conversion

E 15 1111 17 F 19 1.3 Règles de conversion Passage d’une base B en décimal

Passage d’une base B en décimal

Il faut additionner tous les chiffres de la base de départ après avoir multiplié chacun d’eux par son poids

Soit un nombre

Sa valeur en décimal

Exemples :

Convertir en décimal les nombres suivants :

X (

= a

n

X

(10)

1

=

a

n

a

n

2

1

a 1

n

1

a

0

+

B )

B

2

B

n

2 +

a

1

B

1 +

a

n

X (2)

= 10111

X

(16) =

A5C

X (8)

= 567

a

0

B

0

Passage du décimal à une base B

La conversion se fait par des divisions successives du nombre décimal par B jusqu’à ce que le quotient soit nul

On construit ensuite le nombre en base B avec les restes des divisions successives. Le premier reste étant le chiffre de poids faible

B X (10) Q B R 0 0 R Q B 1 1 R Q
B
X (10)
Q
B
R 0
0
R
Q
B
1
1
R
Q
B
2
2
R
0
3
= R
R
R
R
X (
B )
3
2
1

Exercice :

Convertir en base 2 le nombre 78

Convertir en base 8 le nombre 109

Convertir en hexadécimal le nombre 243

0

21

1.4 Autres codes basés sur le binaire

le nombre 243 0 21 1.4 Autres codes basés sur le binaire Il existe plusieurs façons

Il existe plusieurs façons de coder des grandeurs mesurées par des capteurs ou des données à transmettre ou des résultats à afficher

Le choix du code se fait en fonction des caractéristiques souhaitées :

facilité d’affichage, éviter les aléas (codes parasites), précision, simplicité de réalisation (réduire l’électronique)

Définitions :

Code pondéré : chaque chiffre est affecté d’un poids

Code continu : tous les mots successifs sont adjacents, c’est-à-dire qu’ils ne diffèrent que de la plus petite valeur binaire (1)

Code cyclique : le dernier mot est adjacent au premier

Code GRAY : (voir commentaire)

 

Pour éviter les aléas de fonctionnement en passant d’une position à une autre, le code binaire réfléchi est utilisé (code GRAY). Il présente l’avantage de ne changer qu’un bit à chaque pas.

 

Décimal

0

1

2

3

4

5

6

7

 

GRAY

000

001

011

010

110

111

101

100

 
 
 
G = (N oux 2*N)/2    

G = (N oux 2*N)/2

 
G = (N oux 2*N)/2    
 

Construction du code GRAY

 

Utilisation : codeur de position

23

Code 7 segments :

 

Utilisé dans les afficheurs à 7 segments pour représenter les symboles de tous les chiffres et quelques lettres

a b f g e c d
a
b
f
g
e
c
d
de tous les chiffres et quelques lettres a b f g e c d chiffre code

chiffre

code 7 segments

 

a

b

c

d

e

f

g

 

0 1

1

1

1

1

1

0

1 1

0

1

0

0

0

0

2 1

1

0

1

1

0

1

3 .

.

.

.

.

.

.

4 .

.

.

.

.

.

.

5 .

.

.

.

.

.

.

7 .

6 .

.

.

.

.

.

.

.

.

.

.

.

.

8 .

.

.

.

.

.

.

9 .

.

.

.

.

.

.

. . . . . . . . . 8 . . . . . .

Code BCD:

 

Tous les calculs numériques se font en binaire mais à chaque fois qu’on désire afficher le résultat sur une interface homme machine la représentation décimale s’impose

Chaque chiffre décimal est représenté par 4 bits représentant les valeurs allant de 0 à 9. Les valeurs supérieures à 9 sont interdites

Exemples :

 
 

Décimal

 

BCD

 

125

0001

0010 0101

356

0011

0101 0110

718

0111

0001 1000

Conversion binaire vers BCD

 

25

L’algorithme de conversion utilise le fait que tous les chiffres compris entre 0 et 4 produisent un résultat sur un chiffre lorsqu'ils sont multipliés par 2

Par contre tous les chiffres compris entre 5 et 9 donnent un résultat sur 2 chiffres lorsqu’ils sont multipliés par 2

chiffre

Chiffre*2

dizaines

unités

0 0

 

0

0

 

1 2

0

2

2 4

 

0

4

3 6

 

0

6

4 8

 

0

8

 

5 10

1

0

 

6 12

1

2

 

7 14

1

4

 

8 16

1

6

 

9 18

1

8

Conversion binaire vers BCD (principe)

 
 

0 ≤ ≤ 4

 

5 ≤ ≤ 9

 
 

En décimal :

 

Exemple en décimal :

2 × 6 = 12

 

Nb

Nb*2

 

0

0

1

2

En BCD : ajouter 3 et décaler à

 

2

4

gauche

3

6

 

4

8

   

diz

uni

 
 

En BCD : un décalage à gauche

6

0000

0110

+3

0000

0011

 

Nb

Nb*2

 

0000

1001

0000

0000

=

X2

0001

0010

0001

0010

0010

0100

 

0011

0110

0100

1000

Conversion binaire vers BCD (algorithme)

 

27

Déclarer un registre de 20 bits : 4 + 4 + 4 + 8

Les 8 bits de poids faible représentent le mot binaire à convertir

Suivent ensuite 3 quartets dans l’ordre : les unités, les dizaines puis les centaines du résultat en BCD

Réaliser les étapes suivantes 8 fois

1. Si les unités sont ≥ 5 , ajouter 3. Faire la même chose pour les dizaines et les centaines

2. Décaler tout le registre d’un bit vers la gauche

Operation

Hundreds

Tens

Units

 

Binary

 

HEX

       

F

 

F

Start

     

1

1 1

1

1

1

1 1

Conversion binaire vers BCD (exemple)

 

Mot binaire

décalage

Opération

CENT

DIZ

UNI

7654

3210

 

START

0000

0000

0000

1111

1111

1

SHIFT

0000

0000

0001

1111

1110

2

SHIFT

0000

0000

0011

1111

1100

3

SHIFT

0000

0000

0111

1111

1000

 

+

3

0000

0000

1010

1111

1000

4

SHIFT

0000

0001

0101

1111

0000

 

+

3

0000

0001

1000

1111

0000

5

SHIFT

0000

0011

0001

1110

0000

6

SHIFT

0000

0110

0011

1100

0000

 

+

3

0000

1001

0011

1100

0000

7

SHIFT

0001

0010

0111

1000

0000

 

+

3

0001

0010

1010

1000

0000

8

SHIFT

0010

0101

0101

0000

0000

   

2

5

5

   

29

1.5 Addition et soustraction

2 5 5     29 1.5 Addition et soustraction L’addition et la soustraction (à la

L’addition et la soustraction (à la main) des nombres binaires suivent la même règle de grammaire que celle des nombres décimaux

Addition

o L’addition se fait de la droite vers la gauche en propageant la retenue (carry)
o
L’addition se fait de la droite vers la gauche en propageant la retenue
(carry)
1
1
1
1
67
0
1
0
0
0
0
1
1
+
45
+
0
0
1
0
1
1
0
1
112
0
1
1
1
0
0
0
0
o
Exercice : faire la somme en binaire de 189 et 145

Soustraction

La soustraction se fait de la droite vers la gauche en empruntant si nécessaire des bits à gauche (borrow)

L’emprunt se fait sur 3 colonnes

011 + 1 = 100

10 1 1 10
10 1
1
10

0 10

 

198

1 1 0
1
1
0
0
0

0

1

1
1

0

-

109

- 0

1

1

0

1

1

0

1

89

0

1

0

1

1

0

0

1

Exercice : faire la soustraction en binaire de 210 et 79

31

1.6 Nombres négatifs

en binaire de 210 et 79 31 1.6 Nombres négatifs Binaire signé (inspiré du décimal) S

Binaire signé (inspiré du décimal)

S
S

module

On réserve un bit à gauche pour le signe et les autres bits représentent la valeur absolue (0=positif et 1=négatif)

X b

(2)

=

n

X

(10)

=

(

1

b

n

1)

b

2

1

(

b

b

1

n

b

0

2

2

n

2

+

+

b

1

2

1

+

b

0

2

0

)

Exemple : 5 = 0101 et -5 = 1101 (faites la somme !)

Propriétés

Valeurs comprises entre −(2 − 1) et +(2 − 1)

Inadapté à l’addition

Deux représentations pour le zéro

Le bit de signe n’est pas extensible

Complément à 2

Le complément à 1 qui consiste à inverser tous les bits est inadapté pour les

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0010

0011

0100

0101

0110

0111

additions (5 – 5 = 0

<=>

0101 + 1010 = 1111 !!!)

Pour les opérations arithmétiques, on utilise le complément à 2

En partant de la valeur 1000 et en incrémentant de 1 à chaque fois, on

balaie toutes les combinaisons

Le bit de gauche donne le signe 0 = positif , 1 = négatif

X b

=

n

1

2

n

1

+

b

n

2

2

n

2

+

+

b 2

1

1

+

b

0

2

0

Valeurs comprises entre −2 et +(2 − 1)

Extension : pour passer d’une représentation sur N bits à une

représentation sur N+1 bits, il suffit de recopier le bit de poids fort

Remarque : si les bits de poids fort successifs sont identiques, on peut ne garder qu’un seul 1111100110011 = 100110011

33

Complément à 2 (représentation graphique)

0000 1111 0001 0 1110 -1 0010 +1 -2 +2 0011 1101 +3 -3 1100
0000
1111
0001
0
1110 -1
0010
+1
-2
+2
0011
1101
+3
-3
1100
-4
+ 1
+4
0100
-5
+5
0101
1011
-6
+6
+7
-7
0110
-8
1010
1001
0111

1000

+2 0011 1101 +3 -3 1100 -4 + 1 +4 0100 -5 +5 0101 1011 -6

Complément à 2 (conversion)

Pour obtenir la représentation en complément à 2 d’un nombre négatif, procéder en trois étapes :

 

1. Représenter la valeur absolue du nombre en binaire naturel

2. Calculer son complément à 1

3. Ajouter 1 au résultat précédent

Exemple : (-6) => module = 0110 => complément à 1 = 1001 => +1 => 1010

 

Une astuce pour obtenir ce résultat rapidement :

 

1. Représenter la valeur absolue du nombre en binaire naturel

 

2. En partant de la droite, garder tous les bits jusqu’au premier 1 rencontré

3. Inverser tous les bits qui sont après le 1

Exemple : (-6) => module = 0110 => on garde :

10

=> on inverse => 1010

 

35

Propriétés du complément à 2

Le complément à 2 se prête très bien au calcul arithmétique

L’addition et la soustraction se font comme dans le système décimal

Multiplication par 2

Division par 2

b b b b b b b b 7 6 5 4 3 2 1
b
b
b
b
b
b
b
b
7
6
5
4
3
2
1
0
b
b
b
b
b
b
b
0
6
5
4
3
2
1
0
b
b
b
b
b
b
b
b
7
6
5
4
3
2
1
0
b
b
b
b
b
b
b
b
7
7
6
5
4
3
2
1

Par contre il ne se prête pas très bien à la comparaison

Code binaire décalé

Utilisé dans les convertisseurs analogique numérique à cause de l’alimentation dissymétrique

numérique à cause de l’alimentation dissymétrique 2 N valeurs entre (-2 N - 1 ) et
numérique à cause de l’alimentation dissymétrique 2 N valeurs entre (-2 N - 1 ) et

2 N valeurs entre (-2 N-1 ) et (2 N-1 -1)

On passe du code binaire décalé au complément à 2 en inversant le bit de signe (voir démonstration)

x =

( b N-1 2 N-1 +…. + b 2 2 2 + b 1 2 1 +b 0 2 0 )-2 N-1

37

1.7 Représentation des nombres réels

0 )-2 N - 1 37 1.7 Représentation des nombres réels Représentation en virgule fixe signé

Représentation en virgule fixe signé Q m,k

On utilise un entier à (n = m + k) bits avec une virgule virtuelle placée avant k bits

X

X

X

=

=

=

b

(

n

1

b

n

b

b

1

n

n

2

2

n

1

1

2

n

1

b

k

k

+

,b

b

k

n

+

b

n

2

1

2

2

2

n

n

b b

1

2

k

0

+

2

+

+

+

b

0

b

1

0

2

1

2 ).2

k

+

k

b

0

2

k

Plage des valeurs : −2 <2

Il s’agit d’un décalage à droite de k bits

L’erreur de quantification est de 2 -k

38

Passage de virgule fixe à décimal

X

=

b

n

1

2

n

1

k

+

b

n

2

2

n

2

k

+

+

b

1

2

1

k

+

b

0

2

k

Exemple : X = 1011,11

Ou plus simple :

->

(X) 10 = -2 3 + 2 1 + 2 0 + 2 -1 + 2 -2 = -8+3,75 = -4,25

->

(X) 10 = -17/2 2 = -4,25

X . 2 2 = 101111 = -17

Passage du décimal à virgule fixe

Calculer la partie entière de (X.2 k ) -> complément à 2 si nb négatif -> laisser k bits après la virgule

Exemple : X = 90,3514 en Q 8,4 -> ent(X.2 4 )=1445 -> X = 01011010,0101

Exercice :

soit les 3 nombres suivant à coder sur 16 bits (Q m,k ) :

a = -95,25902 ; b= 109,5139 ; c= 0,02298196

Trouver la meilleure représentation commune, puis calculer l’erreur de quantification et l’erreur relative. Conclure.

Représentation en virgule flottante

39

En virgule flottante, en base B, un nombre réel x est représenté par :

une mantisse m, écrite en base B sur p chiffres (nombre de précision p)

Un signe S (S = 0 -> positif , S = 1 -> négatif)

p) Un signe S (S = 0 -> positif , S = 1 -> négatif) Un

Un exposant ,

X

= ( 1)

S

.m.B

E

B E joue le rôle de facteur de mise à l’échelle

La représentation n’est pas unique :

0,0031.10 = 0,0314. 10 = 0,3141. 10 = 3,1415

En représentation normalisée, un seul chiffre non nul avant la virgule (meilleure précision)

40

Représentation en virgule flottante (base 2)

Un nombre réel est représenté par N bits :

S
S

E

m

X = ( 1)

S

.m.2

E

Pour éviter des représentations différentes du même nombre, la mantisse est normalisée :

1

m < 2

m =1, F

S

X = ( 1) 1, F .2

E

Comme le premier bit est toujours à 1, il n’est pas nécessaire de le coder, il est implicite

En fait c’est la partie fractionnaire de la mantisse qui est stockée, ne pas confondre m et F !!!

Représentation en virgule flottante (base 2)

Exemple Soit le format suivant :

S E E E m m m m
S
E E
E
m m m m

+ 1 1 0 1,1 = + 1,1 0 1 1. 2 3

suivant : S E E E m m m m + 1 1 0 1,1 =

- 0,0 1 1 0 1 = - 1,1 0 1 0. 2 -2

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

41

42

Représentation en virgule flottante (base 2)

Problème : il est impossible de représenter zéro sous ce format

Solution : zéro est représenté par tous les bits à 0

 
0 0 0 0 0 0 0 0
0
0
0
0
0
0
0
0

Par extension, tous les nombres dont l’exposant vaut 0 sont dits non normalisés. comment représenter le nombre 1,0 alors ?

Problème : comment représenter les exposants négatifs ? 2’s ?

L’exposant est représenté en binaire décalé pour faciliter la comparaison. On dit qu’il est biaisé :

Exposant biaisé = Exposant + biais

Le biais vaut : (2 −1) si k est le nombre de bits de l’exposant

Les valeurs extrêmes sont réservées : 00 … 00 = nombre non normalisé

0 ≤ << 1 et 11 … 11 = ±∞

Exemple avec = 4

(ex : ) ou NaN (Not a Number) (ex :

)

43

= 2 − 1 = 7 , l’exposant peut avoir une valeur allant de

2 − 1
2 − 1

= −7 à 2 = 8 sauf que les valeurs extrêmes sont réservées.

Donc =2 − 1 = 7 et =1− = −6

Exposant biaisé Exposant 0000 Zéro 0001 -6 0010 -5 0011 -4 0100 -3 0101 -2
Exposant biaisé
Exposant
0000
Zéro
0001
-6
0010
-5
0011
-4
0100
-3
0101
-2
0110
-1
0111
0
Exposant biaisé Exposant 1000 1 1001 2 1010 3 1011 4 1100 3 1101 6
Exposant biaisé
Exposant
1000
1
1001
2
1010
3
1011
4
1100
3
1101
6
1110
7
1111 Infini ou NaN

Les nombres non normalisés représentent de très petites valeurs ~ 0.0

Ce codage facilite la représentation de 0.0 10 ainsi que 1.0 10

44

Exemple

S E E E m m m m
S
E E
E
m m m m

Soit le format suivant :

= 2 −1=3 0 0 0 0 0 0 0 0
= 2 −1=3
0
0 0
0
0 0
0
0

0,0

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

1,0 = 1,0000. 2

3,125 = 11,001. 2 = 1,1001. 2

Quelle valeur représente ce mot ?

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

45

Représentation standard IEEE 754

Jusque dans les années 80 : chaque constructeur avait sa propre représentation des flottants, ce qui rendait impossible la portabilité

La norme IEEE 754 est adoptée pour la représentation en virgule flottante par les systèmes numériques pour faciliter la portabilité

= (−1) . 1, . 2

IEEE 754 simple précision

nombre de bits: 32

mantisse sur 23 bits

exposant sur 8 bits (biais = 2 8-1 - 1 = 127)

Exercice : valeur de ce mot ?

A = 1 10000010 00110000000000000000000

46

Exemples de valeur en simple précision

symétrique Underflow
symétrique
Underflow

Overflow

valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E
valeur en simple précision symétrique Underflow Overflow 0 2 -126 ~ 2 128 valeur S E

0

2 -126

~2 128

valeur

S

E

7 E 6 E 5 E 4 E 3 E 2 E 1 E 0

F

22 F 21 F 20 .F 2 F 1 F 0

0

0

 

0000

0000

 

000……000

-0

1

 

0000

0000

000……000

0

 

1111

1111

000……000

-

1

 

1111

1111

000……000

NaN

0

 

1111

1111

00010 ….0

6,5

0

 

1000

0001

1010… 00

1,91.10 -38

0

0000

0001

1010… 00

IEEE 754 double précision

47

nombre de bits: 64

mantisse sur 52 bits

exposant sur 11 bits (biais = 2 11-1 - 1 = 1023)

 

Simple précision

Double précision

Mantisse (p bits)

23

52

Exposant (k bits)

8

11

Total (N bits)

32

64

E min , E MAX

-126 , 127

-1022 , 1023

Type C

float

double

=2 1

=1

48

Types en C

Type

taille

min

MAX

char

8

−2 = −128

2 − 1 = 127

unsigned char

8

0

2 − 1 = 255

short

16

2

2 −1

unsigned short

16

0

2 −1

long

32

2

2 −1

unsigned long

32

0

2 −1

int

Dépend de la machine

   

unsigned int

Dépend de la machine

   

float

32

2

~∓ 2

double

64

2

~2

Comparaison entre virgule fixe et virgule flottante

49

Les critères de comparaison sont la dynamique de représentation, le bruit de quantification et la complexité des opérateurs arithmétiques.

La dynamique se définie comme le rapport des valeurs maximum et minimum de la représentation.

dynamique =

valeur max valeur min
valeur max
valeur min

On l’exprime en général en dB :

D

N

(

dB

) =

 valeur max  20log     valeur min  
valeur max
20log 
valeur min

50

En virgule fixe (N bits) :

D

N

Max = 2

N

(dB)

=

20log(2

1

N-1

)

=

min = 1

(N -1).20log2

=

6.02.(N -1)

En virgule flottante (exposant sur k bits, mantisse entre 1 et 2)

D

N

(

dB

)

=

Max

20log

2.2

2

2 k-1

(2

2 2-2

k-1

k

1

=

1)

20 log 2

2

k

2

=

min

=

1.2

2

2

k

1

k

(2 - 2).20log2

=

k

6.02.(2 - 2)

51 Dynamique 52
51
Dynamique
52

RSBQ : Rapport signal sur bruit de quantification

Défini comme le rapport entre la puissance du signal et la puissance de l’erreur de quantification

RSBQ = 10Log

puissance du signal et la puissance de l’erreur de quantification RSBQ = 10 Log P S

P

S

P

e

53

C. Portes Logiques

1.

Généralités

1. Généralités

Une porte logique est un circuit numérique à une ou plusieurs entrées qui produit une sortie binaire

Chaque porte est représentée par un symbole mettant en valeur les entrées et les sorties

Usuellement, les entrées sont à gauche et les sorties à droite, le flux de données circule dans ce sens

Les entrées sont en général repérées par les premières lettres (A, B, C, …) et la sortie utilise la lettre Y

La relation entre la sortie et les entrées est décrite dans la tableau qui liste toutes les combinaisons des entrées avec la sortie correspondante. C’est ce qu’on appelle une table de vérité

Une équation booléenne est une relation mathématique entre les entrées et la sortie

55

2. Porte inverseuse « NOT »

les entrées et la sortie 55 2. Porte inverseuse « NOT » La porte NOT comporte

La porte NOT comporte une entrée et une sortie

 

La sortie Y et l’inverse de l’entrée A, cela s’écrit :

Y = A

A

A Y A Y

Y

A

Y

   
   

0

1

1

0

La petite bulle en sortie est le symbole de l’inversion

 

Il existe aussi la version non inverseuse appelée « BUFFER ». Cette porte ne modifie pas l’état logique de l’entrée mais elle peut fournir plus de courant en sortie qu’elle n’en absorbe en entrée. Elle augmente la sortance.

A

Y
Y

56

3.

Portes « AND » et « OR »

3. Portes « AND » et « OR »

La porte AND produit une sortie Y qui qui est VRAIE si et seulement si les deux entrées sont VRAIES

A

B

Y

A

A   0 0 0
 

0

0

0

B

Y

Y = AB

0

1

0

 

1

0

0

1

1

1

La porte OR produit une sortie Y qui qui est VRAIE si une des deux entrées au moins est VRAIE

   
 

A

B

Y

A

A   0 0 0
 

0

0

0

B

Y

Y = A+ B

0

1

1

 

1

0

1

1

1

1

4. Autres portes

57

1   1 0 1 1 1 1 4. Autres portes 57 NAND = AND inversé

NAND = AND inversé

 

A

B

B Y Y = AB

Y

Y = AB

NOR = OR inversé

 

A

B

B Y Y = A + B

Y

Y = A+ B

A

B

Y

0

0

1

0

1

1

1

0

1

1

1

0

A

B

Y

0

0

1

0

1

0

1

0

0

1

1

0

58

La sortie est VRAIE si une entrée exclusivement est VRAIE

XOR = OU exclusif

A Y B
A
Y
B

XNOR = XOR inversé

A Y B
A
Y
B

Y = AB

Y = AB

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

0

A

B

Y

0

0

1

0

1