Vous êtes sur la page 1sur 526

Chapitre 1 : Systèmes de numération

•Introduction
•Système décimal
•Système binaire , octal et hexadécimal
• Conversion d’un système de numération vers un autre système .
•Opérations arithmétiques en binaire, octal et hexadécimal.

1
Objectifs

• Comprendre c’est quoi un système de numération .


• Apprendre la méthode de conversion d’un système à un
autre .
• Apprendre à faire des opérations arithmétiques en
binaire.

2
Introduction
• Nous avons pris l'habitude de représenter les nombres en utilisant
dix symboles différents: 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
• Ce système est appelé le système décimal (déci signifie dix).
• Il existe cependant d'autres formes de numération qui fonctionnent
en utilisant un nombre de symboles distincts.
– Exemple :
• système binaire (bi: deux),
• le système octal (oct: huit),
• le système hexadécimal (hexa: seize).
• En fait, on peut utiliser n'importe quel nombre de symboles
différents (pas nécessairement des chiffres).
• Dans un système de numération : le nombre de symboles distincts
est appelé la base du système de numération.

3
1 . Le système décimal
• On utilise dix symboles différents:
{0,1,2,3,4,5,6,7,8,9}
• N’importe quelle combinaison des symboles { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
9 } nous donne un nombre.

2334567

Poids faible
Poids fort

345 , 567
Partie fractionnelle
Partie entière 4
Développement en polynôme d’un nombre
dans le système décimal

• Soit le nombre 1978, ce nombre peut être écrit sous la forme suivante :

1978  1000  900  70  8


1978  1*1000  9 *100  7 *10  8 *1
1978  1*103  9 *102  7 *101  8 *100
Cette forma s’appelle la forme polynomiale

Un nombre réel peut être écrit aussi sous la forme polynomiale

1978,265  1*103  9 *102  7 *101  8 *100  2 *101  6 *102  5 *103


5
Comptage en décimal

• Sur une seule position : 0 ,1,2,3,4,5,….9= 101-1


• Sur deux positions : 00 , 01,02, …..,99=102-1
• Sur trois positions 000,001,……,999=103-1

• Sur n positions : minimum 0


maximum 10n-1
nombre de combinaisons 10n

6
2 . Système binaire ( système à base 2 ):
exemple illustratif
• Dans le système binaire, pour exprimer n’importe quelle
valeur on utilise uniquement 2 symboles : { 0 , 1}
La base
( 1101)2
Un bit

( 1 1 0 1)2
Le bits du poids forts Le bits du poids faible

. Un nombre dans la base 2 peut être écrit aussi sous la forme polynomial
(1110)2  1* 23  1* 2 2  1* 21  0 * 20  (14)10
(1110,101)2  1* 23  1* 2 2  1* 21  0 * 20  1* 2 1  0 * 2 2  1* 2 3  (14,625)10

7
Comptage en binaire

• Sur un seul bit : 0 , 1 Sur 3 Bits

Binaire Décimal
000 0
.Sur 2 bits : 001 1
010 2
Binaire Décimal
011 3
00 0 100 4
01 1 101 5
10 2 110 6
11 3 111 7

4 combinaisons= 22
8 combinaisons= 23 8
Le système octal ( base 8 )

• 8 symboles sont utilisés dans ce système:


{0,1,2,3,4,5,6,7}

• Exemple 1 :

(127)8  1* 82  2 * 81  7 * 80
(127,65)8  1* 82  2 * 81  7 * 80  6 * 81  5 * 8 2

Exemple 2 :
Le nombre (1289) n’existe pas dans la base 8 puisque les symboles 8 et 9
n’appartiennent pas à la base .

9
Le système hexadécimal ( base 16 )
Décimal Hexadécimal
0 0
1 1
• On utilise seize (16) symboles
2 2
différents: 3 3
4 4
5 5
(17)16  1*161  7 *160 6 6
7 7
(AB)16  A *16  B *16  10 *16  11*1
1 0 1
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F 10
Résumé

• Dans une base X , on utilise X symboles distincts pour représenter


les nombres.
• La valeur de chaque symbole doit être strictement inférieur à la
base X.
• Chaque nombre dans une base X peut être écrit sous sa forme
polynomiale .

11
3. Conversion d’une base X à la base 10

• Cette conversion est assez simple puisque il suffit de faire le


développement en polynôme de ce nombre dans la base X , et
de faire la somme par la suite.

Exemple :

(1101)2  1* 23  1* 2 2  0 * 21  1* 20  (13)10
(1A7)16  1*162  A *161  7 *160  1*162  10 *161  7 *160  256  160  7  (423)10
(1101,101)2  1* 23  1* 2 2  0 * 21  1* 20  1* 2 1  0 * 2  2  1* 2 3  (13,625)10
(43,2)5  4 * 51  3 * 50  2 * 51  20  3  0,4  (23,4)10

12
Exercice

• Effectuer les transformations suivantes à la base 10 ?


– (123)6=(?)10
– (45,76)8 =(?)10
– (1100,11)2 =(?)10
– (1ABC)16 =(?)10

13
Conversion de la base 10 à la base 2
Le principe consiste à faire des divisions successives du nombre sur
2 , et prendre le reste des divisions dans l’ordre inverse.

35 2
Exemple 1 : (35)10=(?)2 1 17 2
1
8 2
0 4 2
Après division : 0 2 2
on obtient : (35)10=(100011)2
0 1 2
1 0

14
Conversion de la base 10 à la base 2 : cas d’un
nombre réel
• Un nombre réel est constitué de deux parties : la partie entière et la
partie fractionnelle.
• La partie entière est transformée en effectuant des divisions
successives.
• La partie fractionnelle est transformée en effectuant des
multiplications successives par 2 .

Exemple : 35,625=(?)2 0,625 * 2 = 1 ,25


P.E= 35 = (100011)2 0,25 * 2 = 0 ,5
0,5 * 2 = 1 ,0
PF= 0,625 = (?)2

(0,625)=(0,101)2
Donc 35,625=(100011,101)2
15
• Exemple 2: (0,6)10=(?)2
0,6 * 2 = 1,2
0,2 * 2 = 0,4 (0,6)= (0,1001)2
0,4 * 2 = 0,8
0,8 * 2 = 1,6
Remarque :
Le nombre de bits après la virgule va déterminer la précision .

Exercice :
Effectuer les transformations suivantes :
(23,65)=(? )2
(18,190)=(?)2

16
Conversion du décimal à une base X

• La conversion se fait en prenant les restes des divisions


successives sur la base X dans le sens inverse.

Exemple : 35 3
35 = (?)3 2 3
11
2
3 3
35=(1022)3 0 1 3
1 0

• Question : Effectuer les transformations suivantes :


(43)10=(?)2=(?)5 =(?)8 =(?)16
17
43 2
43 5
1 21 2
3 8 5
1 10
2 3 1 5
0 5 2 1 1
1 2 2
0 1 2
(133)5
1 0
(101011)2

43 16
43 8
8 11 2 16
3 5
2 0
5 0

(2B)16
(53)8
18
Conversion d’une base b1 à une base b2

• Il n’existe pas de méthode pour passer d’une base b1 à une autre


base b2 directement.
• L’idée est de convertir le nombre de la base b1 à la base 10 , en suit
convertir le résultat de la base 10 à la base b2 .

?
b1 b2

Développement
en polynôme Divisions successives

10
19
Exemple : ( 34)5=(?)7

(34)5  3 * 51  4 * 50  15  4  (19)10  (?)7

19 7
(19)10=(25)7
( 34)5=(25)7 5 2 7
2 0

Exercice : effectuer les transformations suivantes

(43)6=(?)5=(?)8
(2A)16=(?)9

20
Conversion : binaire  octal

Octal Binaire
. En octal chaque, symbole de la base s’écrit sur 3 0 000
bits en binaire. 1 001
. L’idée de base est de replacer chaque symbole 2 010
dans la base octal par sa valeur en binaire sur 3 3 011
bits ( faire des éclatement sur 3 bits ). 4 100
5 101
Exemples : 6 110
(345)8=(011 100 101)2 7 111
(65,76)8=(110 101, 111 110)2
(35,34)8=(011 101 , 011 100)2

Remarque :
le remplacement se fait de droit à gauche pour la partie entière
et de gauche à droite pour la partie fractionnelle .
21
Conversion : Octal  binaire

. L’idée de base est de faire des regroupements de 3 bits à partir du


poids faible.
. Par la suite remplacer chaque regroupement par la valeur octal
correspondante .

Exemple :

(11001010010110)2=(011 001 010 010 110)2=(31226)8

(110010100,10101)2= (110 010 100 , 101 010)2=(624,51)8

Remarque :
le regroupement se fait de droit à gauche pour la partie entière
et de gauche à droite pour la partie fractionnelle .
22
Conversion : hexadécimal  binaire
Décimal Hexadécimal
0 0
1 1
2 2
. En Hexa chaque symbole de la base s’écrit sur 4 bits. 3 3

. L’idée de base est de replacer chaque symbole 4


5
4
5
par sa valeur en binaire sur 4 bits ( faire des 6 6
éclatement sur 4 bits ).
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
Exemple : 15 F

(345B)16=(0011 0100 0101 1011)2


(AB3,4F6)16 = ( 1010 1011 0011 , 0100 1111 0110 ) 2
23
Conversion : binaire hexadécimal

. L’idée de base est de faire des regroupements de 4 bits à partir du poids faible.

Par la suite remplacer chaque regroupement par la valeur Héxa correspondante .

Exemple :
(11001010100110)2=(0011 0010 1010 0110)2=(32A6)16
(110010100,10101)2= (0001 1001 0100,1010 1000)2=(194,A8)16

24
4. Opérations arithmétiques en binaire
0 0 1 1
+ + + +
0 1 0 1
0 1 1 1 0

1 1
1 1 0 0 0 1 1

+
1 0 0 0 1 0 1 1

1 1 1 0 1 1 1 0

25
Opérations arithmétiques en octal

1 1

4 3 6 5
+
4 5 1
5 8 11 6

En octal 8 s’écrit 10 En octal 11 s’écrit 13

0 3

Le résultat final : (5036)8


26
Opérations arithmétiques en hexadécimal

4 8 6 5
+
7 A 5 1
12 18 11 6

C En hexa 11 s’écrit B
En hexa 18 s’écrit 12
B
2

Le résultat final : (C2B6)16 27


Exercice
• Effectuer les opérations suivantes et transformer le
résultat au décimal à chaque fois:
• (1101,111)2+(11,1)2=(?)2
• (43)8+(34)8=(?)8
• (43)6+(34)6=(?)6
• (AB1)16+(237)8=(?)16

28
5. Quel est le système utilisé dans les
dispositifs numériques ?
. Les machines numériques utilisent le système binaire.
. Dans le système binaire : uniquement 2 symboles sont utilisés : 0 et 1.
. C’est facile de représenter ces deux symboles dans les machines numériques.
. Le 0 et le 1 sont représentés par deux tensions .

5v
Binaire Tension Binaire : 1
(logique ) 2,8 v
Inutilisée
0 0V
0,8 v
1 5V
Binaire : 0
0v
29
Chapitre 2 : Représentation de l’information
dans la machine
• Introduction
• Représentation des nombres négatifs
– Signe / valeur absolue
– Complément à 1
– Complément à 2
• Représentation des nombres réels
– Virgule fixe
– Virgule flottante
• Le codage BCD et EXCESS3
• Représentation des caractères
Introduction
Information

Instructions Données

Caractère Numérique

Entiers

Non signés

Signés

Réels
1. Représentation des nombres entiers
• Il existe deux types d’entiers :
– les entiers non signés ( positifs )
– et les entiers signés ( positifs ou négatifs )
• Problème : Comment indiquer à la machine qu’un
nombre est négatif ou positif ?

• Il existe 3 méthodes pour représenter les nombres


négatifs :
– Signe/ valeur absolue
– Complément à 1( complément restreint )
– Complément à 2 ( complément à vrai )
1.1 Représentation signe / valeur absolue ( S/VA )

• Si on travail sur n bits , alors le bit du poids fort est utilisé pour
indiquer le signe :
 1 : signe négatif
 0 : signe positif
• Les autres bits ( n -1 ) désignent la valeur absolue du nombre.

• Exemple : Si on travail sur 4 bits.

1 001 0 001

Signe Valeur absolue Signe Valeur absolue

1001 est la représentation de - 1 0001 est la représentation de + 1


Sur 3 bits on obtient :
signe VA valeur
• Les valeurs sont comprises
0 00 +0
entre -3 et +3
0 01 +1
0 10 +2
-3 ≤ N ≤ +3
0 11 +3
- ( 4-1 ) ≤ N ≤ + (4 -1 )
-(22 -1) ≤ N ≤ +(22-1 )
1 00 -0 -(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )
1 01 -1
1 10 -2
1 11 -3

Si on travail sur n bits , l’intervalle des valeurs qu’on


peut représenter en S/VA :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )
Avantages et inconvénients de la représentation
signe/valeur absolue

• C’est une représentation assez simple .


• On remarque que le zéro possède deux représentations +0 et -0 ce
qui conduit à des difficultés au niveau des opérations arithmétiques.
• Pour les opérations arithmétiques il nous faut deux circuits : l’un
pour l’addition et le deuxième pour la soustraction .

L’idéal est d’utiliser un seul circuit pour faire les deux opérations,
puisque a- b =a + ( -b )
1.2 Représentation en complément à un
( complément restreint )

• On appel complément à un d’un nombre N un autre nombre


N’ tel que :
N+N’=2n-1
n : est le nombre de bits de la représentation du nombre N .

Exemple :
Soit N=1010 sur 4 bits donc son complément à un de N :
N’= (24 - 1)-N
N’=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 – (1010)2 = 0101

1 0 1 0
+
0 1 0 1
1 1 1 1
Remarque 1 :

• Pour trouver le complément à un d’un nombre, il suffit


d’inverser tous les bits de ce nombre : si le bit est un 0
mettre à sa place un 1 et si c’est un 1 mettre à sa place
un 0 .
• Exemple :

Sur 4 Bits Sur 5 Bits

1 0 1 0 0 1 0 1 0

0 1 0 1 1 0 1 0 1
Remarque 2

• Dans cette représentation , le bit du poids fort nous indique le signe


( 0 : positif , 1 : négatif ).
• Le complément à un du complément à un d’un nombre est égale au
nombre lui même .
CA1(CA1(N))= N
• Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en
complément à 1 sur 6 bits ?
• Le bit poids fort indique qu'il s'agit d'un nombre négatif.
• Valeur = - CA1(101010)
= - (010101)2= - ( 21)10
Si on travail sur 3 bits :
Valeur en Valeur en Valeur
CA1 binaire décimal
000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 - 011 -3
101 - 010 -2
110 - 001 -1
111 - 000 -0

•Dans cette représentation , le bit du poids fort nous indique le signe .

•On remarque que dans cette représentation le zéro possède aussi une
double représentation ( +0 et – 0 ) .
• Sur 3 bits on remarque que les valeurs sont comprises
entre -3 et +3

-3 ≤ N ≤ +3
- ( 4-1 ) ≤ N ≤ + (4 -1 )
-(22 -1) ≤ N ≤ +(22-1 )
-(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )

Si on travail sur n bits , l’intervalle des valeurs qu’on peut


représenter en CA1 :

-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )


1.3 Complément à 2 ( complément à vrai )
• Si on suppose que a est un nombre sur n bits alors :

a + 2 n = a modulo 2n

et si on prend le résultat sur n bits on va obtenir la même


valeur que a .
a + 2 n= a

Exemple : soit a = 1001 sur 4 bits


24= 10000

+
1 0 0 1
1 0 0 0 0
1 1 0 0 1

Si on prend le résultat sur 4 bits on trouve la même valeur de a = 1001


•Si on prend deux nombres entiers a et b sur n bits , on
remarque que la soustraction peut être ramener à une
addition : a – b = a + (-b)
• Pour cela il suffit de trouver une valeur équivalente à -b ?
a – b = a + 2n – b = a + (2n – 1) – b + 1

On a b + CA1(b)= 2n – 1 donc CA1(b) = (2n – 1) – b

Si on remplace dans la première équation on obtient :


a– b = a + CA1(b) + 1

La valeur CA1(b)+1 s’appelle le complément à deux de b :


CA1(b)+1 = CA2(b)

Et enfin on va obtenir : a - b = a+ CA2(b)  transformer


la soustraction en une addition .
Exemple

• Trouver le complément à vrai de : 01000101 sur 8 bits ?

CA2(01000101)= CA1(01000101)+ 1
CA1(01000101)= (10111010)
CA2(01000101)=(10111010)+ 1 = (10111011)

• Remarque 1 :
Pour trouver le compétemment à 2 d’un nombre : il faut parcourir les
bits de ce nombre à partir du poids faible et garder tous les bits
avant le premier 1 et inverser les autres bits qui viennent après.

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

1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0
Remarque 2

• Dans cette représentation , le bit du poids fort nous indique le signe


( 0 : positif , 1 : négatif ).
• Le complément à deux du complément à deux d’un nombre est
égale au nombre lui même .
CA2(CA2(N))= N
• Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en
complément à deux sur 6 bits ?
• Le bit poids fort indique qu'il s'agit d'un nombre négatif.
• Valeur = - CA2(101010)
= - (010101 + 1)
= - (010110)2= - ( 22)
Si on travail sur 3 bits :

Valeur en Valeur en valeur


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

•Dans cette représentation , le bit du poids fort nous indique le signe .


•On remarque que le zéro n’a pas une double représentation.
•Sur 3 bits on remarque que les valeurs sont comprises entre -4 et +3

-4 ≤ N ≤ +3
- 4 ≤ N ≤ + (4 -1 )
- 22 ≤ N ≤ +(22-1 )
-2 (3 -1) ≤ N ≤ (2 (3 -1) -1 )

Si on travail sur n bits , l’intervalle des valeurs qu’on peut


représenter en CA2 :
-(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 )

La représentation en complément à deux ( complément à vrai )


est la représentation la plus utilisée pour la représentation des
nombres négatifs dans la machine.
Opérations arithmétiques en CA2
Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2

0 1 0 0 1
0 1 0 0 1 +
+ +9
+9 1 1 1 0 0
0 0 1 0 0 -4
+4
+5
+ 13 1 0 0 1 0 1
0 1 1 0 1

Le résultat est positif Report

(01101)2= ( 13)10
Le résultat est positif
(00101)2= ( 5)10
1 0 1 1 1 1 0 1 1 1
-9 + -9 +
1 1 1 0 0 0 1 0 0 1
-4 +9
- 13 +0
1 1 0 0 1 1 1 0 0 0 0 0

Report Report

Le résultat est négatif :


Résultat = - CA2 (10011)= -( 01101) Le résultat est positif

= - 13 (00000)2= ( 0)10
La retenue et le débordement
• On dit qu’il y a une retenue si une opération arithmétique
génère un report .
• On dit qu’il y a un débordement (Over Flow ) ou
dépassement de capacité: si le résultat de l’opération sur
n bits et faux .
– Le nombre de bits utilisés est insuffisant pour contenir le résultat
– Autrement dit le résultat dépasse l’intervalle des valeurs sur les
n bits utilisés.
Cas de débordement

0 1 1 0
0 1 0 0 1 1 0 1 1 1
+9 + +
-9
0 1 0 0 0 1 1 0 0 0
+8 -8
+ 17 1 0 0 0 1 - 17
0 1 0 1 1

Négatif
Positif

•Nous avons un débordement si la somme de deux nombres positifs


donne un nombre négatif .
•Ou la somme de deux nombres négatifs donne un Nombre positif
•Il y a jamais un débordement si les deux nombres sont de signes
différents.
2. La représentation des nombres réels
• Un nombre réel est constitué de deux parties : la partie
entière et la partie fractionnelle ( les deux parties sont
séparées par une virgule )
• Problème : comment indiquer à la machine la position de
la virgule ?
• Il existe deux méthodes pour représenter les nombre
réel :
– Virgule fixe : la position de la virgule est fixe
– Virgule flottante : la position de la virgule change (
dynamique )
2.1 La virgule fixe
• Dans cette représentation la partie entière est représentée sur
n bits et la partie fractionnelle sur p bits , en plus un bit est
utilisé pour le signe.
• Exemple : si n=3 et p=2 on va avoir les valeurs suivantes

Signe P.E P.F valeur

0 000 00 + 0,0 Dans cette représentation les


0 000 01 + 0,25 valeurs sont limitées et nous
0 000 10 + 0,5 n’avons pas une grande précision
0 000 11 + 0,75
0 001 .00 + 1,0
. . . .
. . . .
2.2 Représentation en virgule flottante
• Chaque nombre réel peut s’écrire de la façon suivante :
N= ± M * b e
– M : mantisse ,
– b : la base ,
– e : l’exposant

• Exemple :
15,6 = 0,156 * 10+2
- ( 110,101)2 = - (0,110101)2 * 2+3
(0,00101)2= ( 0,101)2 * 2-2

Remarque :
on dit que la mantisse est normalisée si le premier chiffre
après la virgule est différent de 0 et le premier chiffre
avant la virgule est égale à 0.
• Dans cette représentation sur n bits :
– La mantisse est sous la forme signe/valeur absolue
• 1 bit pour le signe
• et k bits pour la valeur.
– L’exposant ( positif ou négatif ) est représenté sur p
bits .

Signe mantisse Exposant Mantisse normalisée

1 bit p bits k bits

•Pour la représentation de l’exposant on utilise :


• Le complément à deux
• Exposant décalé ou biaisé
Représentation de l’exposant en complément à deux

• On veut représenter les nombres ( 0,015)8 et -( 15, 01)8 en virgule


flottante sur une machine ayant le format suivant :

Signe mantisse Exposant en CA2 Mantisse normalisée

1 bit 4 bits 8 bits

(0,015)8=(0,000001101)2= 0,1101 * 2-5


Signe mantisse : positif ( 0)
Mantisse normalisé : 0,1101
Exposant = -5  utiliser le complément à deux pour représenter le -5
Sur 4 bits CA2(0101)=1011

0 1 0 1 1 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits
- (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24
Signe mantisse : négatif ( 1)
Mantisse normalisée : 0,1101000001
Exposant = 4 , en complément à deux il garde la même valeur ( 0100)

On remarque que la mantisse est sur 10 bits (1101 0000 01), et sur la
machine seulement 8 bits sont utilisés pour la mantisse.
Dans ce cas on va prendre les 8 premiers bits de la mantisse

1 0 1 0 0 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits

Remarque :
si la mantisse est sur k bits et si elle est représenté sur la machine
sur k’ bits tel que k> k’ , alors la mantisse sera tronquée : on va prendre
uniquement k’ bits  perdre dans la précision .
L’ Exposant décalé ( biaisé )
• en complément à 2, l’intervalle des valeurs qu’on peut représenter sur
p bits :

- 2 (p -1) ≤ N ≤ 2 (p -1) -1
Si on rajoute la valeur 2 (p -1) à tout les terme de cette inégalité :

- 2 (p -1) + 2 (p -1) ≤ N + 2 (p -1) ≤ 2 (p -1) - 1 + 2 (p -1)

0 ≤ N + 2 (p -1) ≤ 2p-1

• On pose N’= N + 2 (p -1) donc : 0 ≤ N’ ≤ 2 p -1

• Dans ce cas on obtient des valeur positives.


• La valeur 2p-1 s’appelle le biais ou le décalage
• Avec l’exposant biaisé on a transformé les exposants
négatifs à des exposants positifs en rajoutons à l’exposant
la valeur 2p -1.

Exposant Biaisé = Exposant réel + Biais


Exemple

• On veut représenter les nombres ( 0,015)8 et -( 15, 01)8en virgule


flottante sur une machine ayant le format suivant :

Signe mantisse Exposant décalé Mantisse normalisée

1 bit 4 bits 11 bits

(0,015)8=(0,000001101)2= 0,1101 * 2-5


Signe mantisse : positif ( 0)
Mantisse normalisé : 0,1101
Exposant réel = -5
Calculer le biais : b= 24-1 = 8
Exposant Biaisé = -5 + 8 = +3 = ( 0011)2

0 0011 1 1 0 1 0 0 0 0 0 0 0

1 bit 4 bits 11 bits


- (15,01)8=(001101,000001)2= 0,1101000001 * 24

Signe mantisse : négatif ( 1)


Mantisse normalisée : 0,1101000001
Exposant réel = + 4
Calculer le biais : b= 24-1 = 8
Exposant Biaisé = 4 + 8 = +12 = ( 1100)2

1 1100 1 1 0 1 0 0 0 0 0 1 0
1 bit 4 bits 11 bits
Opérations arithmétiques en virgule flottante

• Soit deux nombres réels N1 et N2 tel que


N1=M1*be1 et N2=M2*be2

• On veut calculer N1+N2 ?


• Deux cas se présentent :
– Si e1 = e2 alors N3= (M1+M2) be1
– Si e1 <> e2 alors élevé au plus grand exposant et faire l’addition
des mantisses et par la suite normalisée la mantisse du résultat.
Exemple

• Effectuer l’opération suivante : (0,15)8+ (1,5)8=(?) :

(0,15)8= (0,001101) = 0,1101 *2-2


(1,5)8= (001, 1 01) = 0,1101 *21
(0,15)8+ (1,5)8 = 0,1101 *2-2 + 0,1101 *21
= 0,0001101 *21 + 0,1101 *21
= 0, 1110101 * 21

0 0001 111010
1 bit 4 bits 6 bits
Exercice
Donner la représentation des deux nombres N1= (-0,014)8 et
N2=(0,14)8 sur la machine suivante :

Signe Exposant biaisé Mantisse normalisée


mantisse (décalé)
1 bit 5 bits 10 bits

 Calculer N2-N1 ?.
Avant de représenter les deux nombres on doit calculer le biais (décalage)
B = 2 5-1 = 24 = 16
N1 = (-0,014) 8 = (-0,000001100) 2= (-0,1100) 2 . 2 - 5
ExpB= -5 + 16 = 11 = (01011)2
N2 = (0,14)8 = (0,001100)2= (0,1100)2. 2 -2
ExpB = -2 + 16 = 14 = (01110) 2
Donc on va avoir la représentation suivante pour N1 et N2:

N1 1 01011 1100000000 1 010 1111 0000 0000


( AF00)16

N2 0 01110 1100000000 0011 10 11 0000 0000


(3B00)16
N2 - N1 = 0,14 – (-0,014) = 0,14 + 0,014
N2 - N1 = (0,1100)2. 2-2 +(0,1100) 2 . 2-5
= (0,1100)2. 2-2 +(0,0001100) 2 . 2-2
= (0,1101100)2. 2-2

•Si on fait les calculs avec l’exposant biaisé :

N2 - N1 = (0,1100)2. 214 + (0,1100) 2 . 211


= (0,1100)2. 214 + (0,0001100) 2 . 214
= (0,1101100)2. 214

Exposant biaisé = 14
Exposant réel = Exposant biaisé – Biais
Exposant réel = 14 – 16 = -2

Donc on trouve le même résultat que la première opération.


3. Le codage BCD (Binary Coded Decimal )

• Pour passer du décimal au binaire , il faut Décimal Binaire


effectuer des divisions successives. Il 0 0000
existe une autre méthode simplifiée pour 1 0001
le passage du décimal au binaire.
2 0010
3 0011
• Le principe consiste à faire des
4 0100
éclatement sur 4 bits et de remplacer
5 0101
chaque chiffre décimal par sa valeur
binaire correspondante . 6 0110
7 0111
• Les combinaisons supérieures à 9 sont 8 1000
interdites 9 1001
Exemple

1 2 9 5 6 2

0001 0010 1001 0101 0110 0010

129 = ( 0001 0010 1001)2 562 = (0101 0110 0010)2


Le codage EXCESS3 ( BCD+3 )
Décimal BCD+3 Binaire
0 3 0011
1 4 0100
2 5 0101
1 2 9
3 6 0110
4 7 0111
5 8 1000 0100 0101 1100
6 9 1001
7 10 1010
8 11 1011
9 12 1100
4. Codage des caractères
• Les caractères englobent : les lettres alphabétiques ( A, a, B , B,.. ) ,
les chiffres , et les autres symboles ( > , ; / : …. ) .
• Le codage le plus utilisé est le ASCII (American Standard Code for
Information Interchange)
• Dans ce codage chaque caractère est représenté sur 8 bits .
• Avec 8 bits on peut avoir 28 = 256 combinaisons
• Chaque combinaison représente un caractère
– Exemple :
• Le code 65 (01000001)2correspond au caractère A
• Le code 97 (01100001) correspond au caractère a
• Le code 58 (00111010 )correspond au caractère :
• Actuellement il existe un autre code sur 16 bits , se code s’appel
UNICODE .
Chapitre 3 :Algèbre de Boole

• Définition des variables et fonctions logiques


• Les opérateurs de base et les portes logiques .
• Les lois fondamentales de l’algèbre de Boole

1
1. Introduction

• Les machines numériques sont constituées d’un ensemble


de circuits électroniques.
• Chaque circuit fournit une fonction logique bien déterminée (
addition, comparaison ,….).

A
F(A,B)
Circuit
B

La fonction F(A,B) peut être : la somme de A et B , ou le


résultat de la comparaison de A et B ou une autre fonction
2
• Pour concevoir et réaliser ce circuit on doit avoir
un modèle mathématique de la fonction réalisée
par ce circuit .

• Ce modèle doit prendre en considération le


système binaire.

• Le modèle mathématique utilisé est celui de


Boole.

3
2. Algèbre de Boole
• George Boole est un mathématicien anglais ( 1815-1864).

• Il a fait des travaux dont les quels les fonctions ( expressions


) sont constitués par des variables qui peuvent prendre les
valeurs ‘OUI’ ou ‘NON’ .

• Ces travaux ont été utilisés pour faire l’étude des systèmes
qui possèdent deux états s’exclus mutuellement :
– Le système peut être uniquement dans deux états E1 et
E2 tel que E1 est l’opposé de E2.
– Le système ne peut pas être dans l’état E1 et E2 en même
temps

• Ces travaux sont bien adaptés au Système binaire ( 0 et 1 ).


4
Exemple de systèmes à deux états

• Un interrupteur est ouvert ou non ouvert ( fermé )


• Une lampe est allumée ou non allumée ( éteinte )
• Une porte est ouverte ou non ouverte ( fermée )

• Remarque :
On peut utiliser les conventions suivantes :

OUI  VRAI ( true )


NON  FAUX ( false)

OUI  1 ( Niveau Haut )


NON  0 ( Niveau Bas )
5
3. Définitions et conventions
3.1. Niveau logique : Lorsque on fait l’étude d’un
système logique il faut bien préciser le niveau du
travail.

Niveau Logique positive Logique négative


H ( Hight ) haut 1 0
L ( Low ) bas 0 1

Exemple :
Logique positive :
lampe allumée : 1
lampe éteinte : 0
Logique négative
lampe allumée : 0
lampe éteinte : 1 6
3.2. Variable logique ( booléenne )
• Une variable logique ( booléenne ) est une variable qui
peut prendre soit la valeur 0 ou 1 .
• Généralement elle est exprimée par un seul caractère
alphabétique en majuscule ( A , B, S , …)

• Exemple :

 Une lampe : allumée L=1


éteinte L=0

– Premier interrupteur ouvert : I1 =1


fermé : I1 =0

– 2éme interrupteur ouvert : I2=1


fermé : I2=0
7
3.3. Fonction logique
• C’est une fonction qui relie N variables logiques avec
un ensemble d’opérateurs logiques de base.

• Dans l’Algèbre de Boole il existe trois opérateurs de


base : NON , ET , OU.

• La valeur d’une fonction logique est égale à 1 ou 0


selon les valeurs des variables logiques.

• Si une fonction logique possède N variables logiques


 2n combinaisons  la fonction possède 2n valeurs.

• Les 2n combinaisons sont représentées dans une table


qui s’appelle table de vérité ( TV ).
8
Exemple d’une fonction logique
F ( A, B, C)  A.B.C  A.B.C  A.B.C  A.B.C
La fonction possède 3 variables  23 combinaisons

F (0,0,0)  0.0.0  0.0.0  0.0.0  0.0.0  0


F (0,0,1)  0.0.1  0.0.1  0.0.1  0.0.1  1
A B C F
F (0,1,0)  0.1.0  0.1.0  0.1.0  0.1.0  0
0 0 0 0
F (0,1,1)  0.1.1  0.1.1  0.1.1  0.1.1  1
0 0 1 1
F (1,0,0)  1.0.0  1.0.0  1.0.0  1.0.0  0 0 1 0 0
F (1,0,1)  1.0.1  1.0.1  1.0.1  1.0.1  1 0 1 1 1
F (1,1,0)  1.1.0  1.1.0  1.1.0  1.1.0  0 1 0 0 0
1 0 1 1
F (1,1,1)  1.1.1  1.1.1  1.1.1  1.1.1  1
1 1 0 0
1 1 1 1
9
Une table de vérité
4. Opérateurs logiques de base
4.1 NON ( négation )

• NON : est un opérateur unaire ( une seule variable) qui à


pour rôle d’inverser la valeur d’une variable .

F(A)= Non A = A
( lire : A barre )

0 1

1 0
10
4.2 ET ( AND )
• Le ET est un opérateur binaire ( deux variables) , à
pour rôle de réaliser le Produit logique entre deux
variables booléennes.
• Le ET fait la conjonction entre deux variables.

• Le ET est défini par : F(A,B)= A . B

A B A.B
0 0 0
0 1 0
1 0 0
1 1 1
11
4.3 OU ( OR )
• Le OU est un opérateur binaire ( deux variables) , à pour
rôle de réaliser la somme logique entre deux variables
logiques.
• Le OU fait la disjonction entre deux variables.
• Le OU est défini par F(A,B)= A + B ( il ne faut pas
confondre avec la somme arithmétique )

A B A+B
0 0 0
0 1 1
1 0 1
1 1 1
12
Remarques
• Dans la définition des opérateurs ET , OU , nous avons
juste donner la définition de base avec deux variables
logiques.

• L’opérateur ET peut réaliser le produit de plusieurs


variables logique ( ex : A . B . C . D ).

• L’opérateur OU peut aussi réaliser la somme logique de


plusieurs variables logiques ( ex : A + B + C +D).

• Dans une expression on peut aussi utiliser les


parenthèses.

13
4.4 Précédence des opérateurs ( priorité des opérateurs )
• Pour évaluer une expression logique ( fonction logique) :
– on commence par évaluer les sous expressions entre les
parenthèses.
– puis le complément ( NON ) ,
– en suite le produit logique ( ET )
– enfin la somme logique ( OU)
Exemple :
F(A, B, C)  ( A . B) . ( C  B)  A.B.C
si on veut calculer F(0,1,1) alors :
F(0,1,1)  (0.1)(1 1)  0.1.1
F(0,1,1)  (0 ) (1 )  0.0.1
F(0,1,1)  1.1  0.0.1
F(0,1,1)  1  0
F(0,1,1)  1
Exercice :
Trouver la table de vérité de la fonction précédente ? 14
Solution
•Pour trouver la table de vérité , il faut trouver la valeur de la fonction F
pour chaque combinaisons des trois variables A, B , C
•3 variables  2 3 = 8 combinaisons

F(A, B, C)  (A . B) . ( C  B)  A.B.C A B C F
0 0 0 0
F(0,0,0)  ( 0. 0) .(0  0)  0 . 0 .0  0 0 0 1 1
F(0,0,1)  ( 0. 0) .(1  0)  0 . 0 .1  1
0 1 0 1
F(0,1,0)  ( 0.1) .(0  1)  0 . 1 .0  1
0 1 1 1
F(0,1,1)  ( 0.1) .(1  1)  0 . 1 .1  1
1 0 0 0
F(1,0,0)  ( 1. 0) .(0  0)  1 . 0 .0  0
1 0 1 1
F(1,0,1)  ( 1. 0) .(1  0)  1 . 0 .1  1
F(1,1,0)  ( 1.1) .(0  1)  1 . 1 .0  0 1 1 0 0

F(1,1,1)  ( 1.1) .(1  1)  1 . 1 .1  0 1 1 1 0


15
4.5 Lois fondamentales de l’Algèbre de Boole

•L’opérateur NON

A A
A A 1
A. A  0

16
•L’opérateur ET

( A.B).C  A.( B.C )  A.B.C Associativité


A.B  B. A Commutativité
A. A  A Idempotence
A.1  A Elément neutre
A.0  0 Elément absorbant

17
• L’opérateur OU

( A  B)  C  A  ( B  C )  A  B  C Associativité
A B  B  A Commutativité
A A  A Idempotence
A0  A Elément neutre
A 1  1 Elément absorbant

18
•Distributivité

A . ( B  C )  ( A . B )  ( A . C ) Distributivité du ET sur le OU
A  ( B . C )  (A  B).(A  C) Distributivité du OU sur le ET

•Autres relations utiles


A  ( A.B)  A
A. ( A  B)  A
(A  B) . (A  B)  A
A  A.B A  B

19
5. Dualité de l’algèbre de Boole

• Toute expression logique reste vrais si on remplace le ET


par le OU , le OU par le ET , le 1 par 0 , le 0 par 1.

• Exemple :

A 1  1  A . 0  0
A  A 1 A . A  0

20
6. Théorème de DE-MORGANE

•La somme logique complimentée de deux variables est


égale au produit des compléments des deux variables.

AB  A . B
• Le produit logique complimenté de deux variables est
égale au somme logique des compléments des deux
variables.

A.B  A  B 21
6.1 Généralisation du Théorème DE-
MORGANE à N variables

A.B.C......  A  B  C  ..........
A  B  C  .......... .  A.B.C......

22
7. Autres opérateurs logiques
7.1 OU exclusif ( XOR)

F ( A, B)  A  B

A  B  A.B  A.B

23
7.2 NAND ( NON ET )

F(A, B)  A . B
F ( A, B)  A  B

24
7.3 NOR ( NON OU )

F(A, B)  A  B
F ( A, B)  A  B

25
7.4 NAND et NOR sont des opérateurs
universels

• En utilisant les NAND et les NOR on peut


exprimer n’importe qu’elle expression ( fonction )
logique.

• Pour cela , Il suffit d’exprimer les opérateurs de


base ( NON , ET , OU ) avec des NAND et des
NOR.

26
7.4.1 Réalisation des opérateurs de base
avec des NOR

A AA AA
A  B  A  B  A  B  (A  B)  (A  B)
A.B  A.B  A  B  A  B  (A  A)  (B  B)

27
Exercice

• Exprimer le NON , ET , OU en utilisant


des NAND ?

28
7.4.3 Propriétés des opérateurs NAND et
NOR

A  0 1 A0 A
A 1 A A 1 0
A B  B A A B  B A
( A  B)  C  A  ( B  C ) ( A  B)  C  A  ( B  C )

29
8. Portes logiques
Une porte logique est un circuit électronique élémentaire qui
Permet de réaliser la fonction d’un opérateur logique de base .

A A

Inverseur

A A
A.B A+B

B Porte ET B Porte OU
30
A A
A B A B

B Porte NAND B Porte NOR

A
A B

B Porte XOR

Remarque :
•Les portes ET , OU , NAND , NOR peuvent avoir plus
que deux entrées
•Il n’existe pas de OU exclusif à plus de deux entrées
31
8.1 Schéma d’un circuit logique ( Logigramme)

•C’est la traduction de la fonction logique en un schéma électronique.


•Le principe consiste à remplacer chaque opérateur logique par la porte
logique qui lui correspond.

Exemple1
B F
F ( A, B, C)  A.B  B.C

32
Exemple 2

F(A, B, C, D)  (A  B ) . ( B  C  D ) .A

A
B

D
33
Exercice 1
• Donner le logigramme des fonctions suivantes :

F(A, B)  A.B  A.B


F(A, B, C)  (A  B).(A  C).(B  C)
F(A, B, C)  ( A . B) . ( C  B)  A.B.C

34
Exercice 2 : Donner l’équation de F ?

B
F

D
35
Définition textuelle d’une fonction
logique , table de vérité , formes
algébriques , simplification
algébrique, table de Karnaugh

36
1. Définition textuelle d’une fonction logique

• Généralement la définition du fonctionnement d’un


système est donnée sous un format textuelle .

• Pour faire l’étude et la réalisation d’un tel système on


doit avoir son modèle mathématique (fonction logique).

• Donc il faut tirer ( déduire ) la fonction logique a partir de


la description textuelle.

37
Exemple : définition textuelle du fonctionnement
d’un système

• Une serrure de sécurité s’ouvre en fonction de trois clés.


Le fonctionnement de la serrure est définie comme suite :

– La serrure est ouverte si au moins deux clés sont


utilisées.

– La serrure reste fermée dans les autres cas .

Donner la schéma du circuit qui permet de contrôler


l’ouverture de la serrure ?
38
Étapes de conception et de réalisation d’un circuit

numérique

• Pour faire l’étude et la réalisation d’un circuit il faut


suivre le étapes suivantes :

1. Il faut bien comprendre le fonctionnement du système.


2. Il faut définir les variables d’entrée.
3. Il faut définir les variables de sortie.
4. Etablir la table de vérité.
5. Ecrire les équations algébriques des sorties ( à partir de la
table de vérité ).
6. Effectuer des simplifications ( algébrique ou par Karnaugh).
7. Faire le schéma avec un minimum de portes logiques.

39
Si on reprend l’exemple de la serrure :

– Le système possède trois entrées : chaque entrée


représente une clé.
– On va correspondre à chaque clé une variable logique: clé
1  A , la clé 2  B , la clé 3  C
• Si la clé 1 est utilisée alors la variable A=1 sinon A =0
• Si la clé 2 est utilisée alors la variable B=1 sinon B =0
• Si la clé 3 est utilisée alors la variable C=1 sinon C =0

– Le système possède une seule sortie qui correspond à


l’état de la serrure ( ouverte ou fermé ).
– On va correspondre une variable S pour designer la sortie :
• S=1 si la serrure est ouverte ,
• S=0 si elle est fermée

40
S=F(A,B,C)
F(A,B,C)= 1 si au mois deux clés sont introduites
F(A,B,C)=0 si non .

A
S=F(A,B,C)
B Circuit
C

Remarque :
Il est important de préciser aussi le niveau logique avec lequel on travail
( logique positive ou négative ).

41
2. Table de vérité ( Rappel )

• Si une fonction logique possède N variables


logiques  2n combinaisons  la fonction
possède 2n valeurs.

• Les 2n combinaisons sont représentées dans


une table qui s’appelle table de vérité.

42
2. Table de vérité ( Exemple )

A B C S
0 0 0 0 A  B  C : max terme
0 0 1 0 A  B  C : max terme
0 1 0 0 A  B  C : max terme
0 1 1 1 A .B.C : min terme
1 0 0 0 A  B  C : max terme
1 0 1 1 A .B.C : min terme
1 1 0 1 A .B.C : min terme
1 1 1 1 A .B.C : min terme
43
2.3 Extraction de la fonction logique à partir
de la T.V

• F = somme min termes

F ( A, B, C)  A . B . C  A . B . C  A . B . C  A . B . C

• F = produit des max termes

F(A, B, C)  ( A  B  C) (A  B  C)(A  B  C) (A  B  C)

44
3. Forme canonique d’une fonction logique

• On appel forme canonique d’une fonction la forme ou


chaque terme de la fonction comportent toutes les
variables.

• Exemple :

F(A, B, C)  ABC  ACB  ABC

Il existent plusieurs formes canoniques : les plus utilisées


sont la première et la deuxième forme .
45
3.1 Première forme canonique

• Première forme canonique (forme disjonctive) : somme de


produits
• C’est la somme des min termes.
• Une disjonction de conjonctions.

• Exemple :

F ( A, B, C)  A . B . C  A . B . C  A . B . C  A . B . C

•Cette forme est la forme la plus utilisée.


46
3.2 Deuxième forme canonique
• Deuxième forme canonique (conjonctive): produit de
sommes
• Le produit des max termes
• Conjonction de disjonctions
• Exemple :

F(A, B, C)  ( A  B  C) (A  B  C)(A  B  C) (A  B  C)

La première et la deuxième forme canonique sont


équivalentes .
47
Remarque 1
• On peut toujours ramener n’importe qu’elle fonction
logique à l’une des formes canoniques.

• Cela revient à rajouter les variables manquants dans les


termes qui ne contiennent pas toutes les variables ( les
termes non canoniques ).

• Cela est possible en utilisant les règles de l’algèbre de


Boole :
– Multiplier un terme avec une expression qui vaut 1
– Additionner à un terme avec une expression qui vaut 0
– Par la suite faire la distribution

48
Exemple :
1. F(A, B)  A  B
 A (B  B)  B( A  A )
 AB  A B  AB  AB
 AB  A B  AB

2. F(A, B, C)  AB  C
 AB(C  C)  C( A  A )
 ABC  AB C  AC  AC
 ABC  AB C  AC(B  B)  AC (B  B)
 ABC  AB C  ABC  A BC  ABC  A BC
 ABC  AB C  A BC  A B C  A B C 49
Remarque 2
• Il existe une autre représentation des formes canoniques
d’une fonction , cette représentation est appelée forme
numérique.
• R : pour indiquer la forme disjonctive
• P : pour indiquer la forme conjonctive.

Exemple : si on prend une fonction avec 3 variables

R( 2,4,6)   (2,4,6)  R( 010,100,110)  ABC  A BC  ABC

P(0,1,3,5,7)   (0,1,3,5,7)  P(000,001,011,101,111)


 (A  B  C)(A  B  C) (A  B  C ) (A  B  C ) (A  B  C)
50
Remarque 3 : déterminer F
A B C F F
0 0 0 0 1
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 0

F  A.B.C  A.B.C  A.B.C  A.B.C 51


Exercice 1
• Déterminer la première , la deuxième forme canonique et
la fonction inverse à partir de la TV suivante ? Tracer le
logigramme de la fonction ?

A B F
0 0 0
0 1 1
1 0 1
1 1 0

52
Exercice 2

• Faire le même travail avec la T.V suivante :

A B C S
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
53
Exercice 3

Un jury composé de 4 membres pose une question à un joueur, qui à


son tour donne une réponse. Chaque membre du jury positionne son
interrupteur à " 1 " lorsqu'il estime que la réponse donnée par le
joueur est juste (avis favorable ) et à " 0 " dans le cas contraire (avis
défavorable ). On traite la réponse de telle façon à positionner :
• Une variable succès (S=1) lorsque la décision de la majorité des
membres de jury est favorable,
• une variable Échec (E=1) lorsque la décision de la majorité des
membres de jury est défavorable
• et une variable Égalité (N=1) lorsqu’il y a autant d'avis favorables que
d'avis défavorables.

Question :
a./ Déduire une table de vérité pour le problème,
b./ Donner les équations de S, E,
c./ En déduire l’équation de N,
54
4. Simplification des fonctions
logiques

55
4. Simplification des fonctions logiques

• L’objectif de la simplification des fonctions logiques est de :


– réduire le nombre de termes dans une fonction
– et de réduire le nombre de variables dans un terme

• Cela afin de réduire le nombre de portes logiques utilisées


 réduire le coût du circuit

• Plusieurs méthodes existent pour la simplification :


– La Méthode algébrique
– Les Méthodes graphiques : ( ex : table de karnaugh )
– Les méthodes programmables

56
5. Méthode algébrique
• Le principe consiste à appliquer les règles de l’algèbre de
Boole afin d’éliminer des variables ou des termes.
• Mais il n’y a pas une démarche bien spécifique.
• Voici quelques règles les plus utilisées :

A.B A.B B
A  A.B A
A  A.B A  B
( A  B) ( A  B)  A
A . ( A  B)  A
A . ( A  B)  A . B 57
5.1 Règles de simplification
• Règles 1 : regrouper des termes à l’aide des règles
précédentes

• Exemple

ABC  AB C  A BCD  AB (C  C)  A BCD


 AB  A BCD
 A ( B  B (CD))
 A ( B  CD)
 AB  ACD

58
• Règles 2 : Rajouter un terme déjà existant à une expression

• Exemple :

A B C  ABC  A BC  ABC 
ABC  ABC  ABC  A BC  ABC  ABC 
BC  AC  AB

59
• Règles 3 : il est possible de supprimer un terme
superflu ( un terme en plus ), c’est-à-dire déjà
inclus dans la réunion des autres termes.

• Exemple 1 :

F(A, B, C)  A B  BC  AC  AB  BC  AC ( B  B)
 AB  BC  ACB  A BC
 AB ( 1  C)  BC (1  A)
 AB  BC

60
Exemple 2 : il existe aussi la forme conjonctive du terme
superflu

F(A, B, C)  (A  B) . (B  C) . (A  C)
 (A  B) . (B  C) . (A  C  B.B)
 (A  B) . (B  C) . (A  C  B) .(A  C  B)
 (A  B) . (A  C  B) . (B  C) .(A  C  B)
 (A  B) . (B  C)

61
• Règles 4 : il est préférable de simplifier la forme
canonique ayant le nombre de termes minimum.

• Exemple :

F ( A, B, C )  R ( 2,3,4,5,6,7)
F(A, B, C)  R( 0,1)  A . B . C  A . B . C
 A . B (C  C)
 A.B A  B
F(A, B, C)  F(A, B, C)  A  B  A  B

62
Exercice

Démontrer la proposition suivante :

A.B  B.C  A.C  A.B.C  A.B.C  A.B.C  A  B  C

Donner la forme simplifiée de la fonction suivante :

F ( A, B, C, D)  ABCD  ABCD  ABCD  ABC D  ABCD

63
6. Simplification par la table
de Karnaugh

64
6.1. Les termes adjacents
•Examinons l’expression suivante :

A.B A.B

•Les deux termes possèdent les même variables. La


seule différence est l’état de la variable B qui change.
•Si on applique les règles de simplification on obtient :

AB  A B  A( B  B )  A

•Ces termes sont dites adjacents.


65
Exemple de termes adjacents

Ces termes sont adjacents


A.B  A.B  B
A.B.C  A.B.C  A.C
A.B.C.D  A.B.C.D  A.B.D
Ces termes ne sont pas adjacents
A.B  A.B
A.B.C  A.B.C
A.B.C.D  A.B.C.D

66
6.1 Description de la table de karnaugh

•La méthode de Karnaugh se base sur la règle précédente.


• La méthode consiste a mettre en évidence par une
méthode graphique (un tableaux ) tous les termes qui sont
adjacents (qui ne différent que par l’état d’une seule
variable).
•La méthode peut s’appliquer aux fonctions logiques de
2,3,4,5 et 6 variables.
•Un tableau de Karnaugh comportent 2n cases ( N est le
nombre de variables ).

67
A AB
B 0 1 C 00 01 11 10
0 0

1 1

Tableau à 2 variables Tableaux à 3 variables

68
Tableau à 4 variables

AB
CD 00 01 11 10
00

01

11

10

69
Tableau à 5 variables

AB AB
CD 00 01 11 10 CD 00 01 11 10
00 00

01 01

11 11

10 10

U=0 U= 1
70
Dans un tableau de karnaugh , chaque case possède un certain
nombre de cases adjacentes.

AB AB
C 00 01 11 10 CD 00 01 11 10
0 00

1 01

11

Les trois cases bleues sont des


10
cases adjacentes à la case rouge

71
6.2 Passage de la table de vérité à la table de Karnaugh

•Pour chaque combinaisons qui représente un min terme lui


correspond une case dans le tableau qui doit être mise à 1 .

•Pour chaque combinaisons qui représente un max terme lui


correspond une case dans le tableau qui doit être mise à 0 .

• Lorsque on remplis le tableau , on doit soit prendre les


min terme ou les max terme

72
Exemple :

A B C S
0 0 0 0
AB
0 0 1 0 C 00 01 11 10
0 1 0 0 0 1
0 1 1 1
1 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

73
6.3 Passage de la forme canonique à la table de
Karnaugh

• Si la fonction logique est donnée sous la première forme


canonique ( disjonctive), alors sa représentation est
directe : pour chaque terme lui correspond une seule
case qui doit être mise à 1.

• Si la fonction logique est donnée sous la deuxième


forme canonique ( conjonctive), alors sa représentation
est directe : pour chaque terme lui correspond une seule
case qui doit être mise à 0 .

74
Exemple
AB
C 00 01 11 10
F1(A, B, C)   (1,2,5,7) 0 1
1 1 1 1

AB
C 00 01 11 10
F2(A, B, C)   (0,2,3,6) 0 0 0 0
1 0

75
6.4 Méthode de simplification (Exemple : 3 variables )

•L’idée de base est d’essayer de regrouper (faire des regroupements ) les


cases adjacentes qui comportent des 1 ( rassembler les termes
adjacents ).
•Essayer de faire des regroupements avec le maximum de cases ( 16,8,4
ou 2 )
•Dans notre exemple on peut faire uniquement des regroupements de 2
cases .

AB
C 00 01 11 10
0 1 ABC  ABC  AB

1 1 1 1

76
•Puisque il existent encore des cases qui sont en dehors d’un
regroupement on refait la même procédure : former des
regroupements.
•Une case peut appartenir à plusieurs regroupements

AB
C 00 01 11 10
0 1 ABC  ABC  AB
1 1 1 1 ABC  ABC  AC

77
•On s’arrête lorsque il y a plus de 1 en dehors des regroupements
•La fonction final est égale à la réunion ( somme ) des termes après
simplification.

AB
C 00 01 11 10
0 1 ABC  ABC  AB

1 1 1 1 ABC  ABC  AC

ABC  ABC  BC

F ( A, B, C )  AB  AC  BC
78
Donc , en résumé pour simplifier une fonction par la table de
karnaugh il faut suivre les étapes suivantes :

1. Remplir le tableau à partir de la table de vérité ou à partir


de la forme canonique.
2. Faire des regroupements : des regroupements de
16,8,4,2,1 cases ( Les même termes peuvent participer à
plusieurs regroupements ) .
3. Dans un regroupement :
 Qui contient un seule terme on peut pas éliminer de variables.
 Qui contient deux termes on peut éliminer une variable ( celle qui
change d’état ).
 Qui contient 4 termes on peut éliminer 2 variables.
 Qui contient 8 termes on peut éliminer 3 variables.
 Qui contient 16 termes on peut éliminer 4 variables.
5. L’expression logique finale est la réunion ( la somme ) des
groupements après simplification et élimination des
variables qui changent d’état.
79
Exemple 1 : 3 variables

AB
C 00 01 11 10
0 1
1 1 1 1 1

F ( A, B, C )  C  AB

80
Exemple 2 : 4 variables

AB
CD 00 01 11 10
00 1
01 1 1 1 1
11

10 1

F ( A, B, C, D)  C.D  A.B.C  A.B.C.D


81
Exemple 3 : 4 variables

AB
CD 00 01 11 10
00 1 1
01 1 1 1
11 1
10 1 1

F ( A, B, C, D)  AB  B D  BCD 82
Exemple 4 : 5 variables
AB AB
CD 00 01 11 10 CD 00 01 11 10
00 1 00 1
01 1 1 01 1 1
11 1 1 11 1 1
10 1 10 1 1

U=0 U= 1

F(A, B, C, D, U)  A B  A.B.D.U  A.C.D.U  A.B.D.U


83
Exercice
Trouver la forme simplifiée des fonctions à partir des
deux tableaux ?

AB
CD 00 01 11 10
AB
C 00 01 11 10 00 1 1 1
0 1 1 1 01

1 1 1 1 11

10 1 1 1 1

84
6.5 Cas d’une fonction non totalement définie

• Examinons l’exemple suivant :

Une serrure de sécurité s’ouvre en fonction de quatre clés A, B, C


D. Le fonctionnement de la serrure est définie comme suite :
S(A,B,C,D)= 1 si au moins deux clés sont utilisées
S(A,B,C,D)= 0 sinon

Les clés A et D ne peuvent pas être utilisées en même temps.

•On remarque que si la clé A et D sont utilisées en même temps


l’état du système n’est pas déterminé.

•Ces cas sont appelés cas impossibles ou interdites  comment


représenter ces cas dans la table de vérité ?.
85
A B C D S
•Pour les cas impossibles ou interdites
0 0 0 0 0
il faut mettre un X dans la T.V . 0 0 0 1 0
•Les cas impossibles sont représentées 0 0 1 0 0
aussi par des X dans la table de karnaugh 0 0 1 1 1
0 1 0 0 0
0 1 0 1 1

AB 0 1 1 0 1
CD 0 1 1 1 1
00 01 11 10
1 0 0 0 0
00 1 1 0 0 1 X
1 0 1 0 1
01 1 X X 1 0 1 1 X
1 1 0 0 1
11 1 1 X X 1 1 0 1 X

10 1 1 1 0 1
1 1 1 1 1 1 1 X 86
• Il est possible d’utiliser les X dans des regroupements :
– Soit les prendre comme étant des 1
– Ou les prendre comme étant des 0
• Il ne faut pas former des regroupement qui contient uniquement des X

AB
CD
00 01 11 10
00 1
01 1 X X
11 1 1 X X
10 1 1 1

AB 87
AB
CD
00 01 11 10
00 1
01 1 X X
11 1 1 X X
10 1 1 1

AB  CD

88
AB
CD
00 01 11 10
00 1
01 1 X X
11 1 1 X X
10 1 1 1

AB  CD  BD
89
AB
CD
00 01 11 10
00 1
01 1 X X
11 1 1 X X
10 1 1 1

AB  CD  BD  AC
90
AB
CD
00 01 11 10
00 1
01 1 X X
11 1 1 X X
10 1 1 1

AB  CD  BD  AC  BC
91
Exercice 1

Trouver la fonction logique simplifiée à partir de la table


suivante ?

AB
CD 00 01 11 10
00 1 X
01 1 X 1
11 1 X 1
10 X 1 X
92
Exercice 2

• Faire l’étude ( table de vérité , table de karnaugh ,


fonction simplifiée) du circuit qui nous permet de
passer du codage BCD au codage EXCESS 3 ?

• Faire le même travail pour le circuit qui permet le


passage du codage EXCESS 3 au codage BCD ?

93
La figure 1 représente un réservoir alimenté par deux vannes V1 et V2.
On distingue trois niveaux : Sécurité, Moyen, Haut:
- lorsque le niveau de liquide est inférieur ou égale à Sécurité, V1 et
V2 sont ouvertes.
- lorsque le niveau du liquide est inférieur ou égal à Moyen mais
supérieur à Sécurité, seule V1 est ouverte.
- lorsque le niveau du liquide est supérieur à Moyen mais inférieur à
Haut, seule V2 est ouverte.
- lorsque le niveau de liquide a atteint le niveau Haut, les deux
vannes sont fermées.

Question:Donner les équations logiques de l’ouverture de V1 et V2 en


fonction du niveau de liquide.

V1 V2
Haut

Moyenne

Sécurité
94
Chapitre 4 : Les circuits combinatoires

Objectifs
• Apprendre la structure de quelques circuits
combinatoires souvent utilisés ( demi additionneur ,
additionneur complet,……..).

• Apprendre comment utiliser des circuits combinatoires


pour concevoir d’autres circuits plus complexes.

1
1. Les Circuits combinatoires
• Un circuit combinatoire est un circuit numérique dont les
sorties dépendent uniquement des entrées.
• Si=F(Ei)
• Si=F(E1,E2,….,En)

E1 S1
S2
E2 Circuit
..
.. combinatoire
En Sm

Schéma Bloc

• C’est possible d’utiliser des circuits combinatoires pour


réaliser d’autres circuits plus complexes.
2
Exemple de Circuits combinatoires

1. Demi Additionneur
2. Additionneur complet
3. Comparateur
4. Multiplexeur
5. Demultiplexeur
6. Encodeur
7. Décodeur

3
2. Demi Additionneur
• Le demi additionneur est un circuit combinatoire qui permet de
réaliser la somme arithmétique de deux nombres A et B chacun sur
un bit.
• A la sotie on va avoir la somme S et la retenu R ( Carry).

A S
B
DA
R

Pour trouver la structure ( le schéma ) de ce circuit on doit en


premier dresser sa table de vérité
4
• En binaire l’addition sur un
seul bit se fait de la manière
suivante:

•La table de vérité associée :

A B R S De la table de vérité on trouve :

0 0 0 0
R  A.B
0 1 0 1
S  A.B  A.B  A  B
1 0 0 1
1 1 1 0 5
R  A.B
S  A B

A S
B

6
3. L’additionneur complet
• En binaire lorsque on fait une addition il faut
tenir en compte de la retenue entrante.

r4 r3 r2 r1 r0= 0
ri-1
a4 a3 a2 a1
+ ai
b4 b3 b2 b1
+ bi

r4 s4 s3 s2 s1
ri s i
7
3.1 Additionneur complet 1 bit
• L’additionneur complet un bit possède 3 entrées :
– ai : le premier nombre sur un bit.
– bi : le deuxième nombre sur un bit.
– ri-1 : le retenue entrante sur un bit.
• Il possède deux sorties :
– Si : la somme
– Ri la retenue sortante

ai Si
Additionneur
bi
complet
Ri
ri-1

8
ai bi ri-1 ri si
Table de vérité d’un additionneur 0 0 0 0 0
complet sur 1 bit
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Si  Ai .Bi .Ri 1  Ai .Bi .R i 1  Ai .B i .R i 1  Ai .Bi .Ri 1


Ri  Ai Bi Ri 1  Ai B i Ri 1  Ai Bi R i 1  Ai Bi Ri 1
9
Si on veut simplifier les équations on obtient :

S i  Ai .Bi .Ri 1  Ai .Bi .R i 1  Ai .B i .R i 1  Ai .Bi .Ri 1


S i  Ai .( Bi .Ri 1  Bi .R i 1 )  Ai .( B i .R i 1  Bi .Ri 1 )
S i  Ai ( Bi  Ri 1 )  Ai .( Bi  Ri 1 )
S i  Ai  Bi  Ri 1

Ri  Ai Bi Ri 1  Ai B i Ri 1  Ai Bi R i 1  Ai Bi Ri 1
Ri  Ri 1.( Ai .Bi  Ai .B i )  Ai Bi ( R i 1  i Ri 1 )
Ri  Ri 1.( Ai  Bi )  Ai Bi

10
3.3 Schéma d’un additionneur complet
R i  A i .Bi  R i 1.(Bi  A i )
Si  A i  Bi  R i 1

Ai

Bi
Si
Ri-1

Ri

11
3.4 En utilisant des Demi Additionneurs
R i  A i .Bi  R i 1.(Bi  A i )
Si  A i  Bi  R i 1
Si on p ose X  A i  Bi et Y  A i Bi
On obtient :
R i  Y  R i 1.X
Si  X  R i 1
et si on p ose Z  X  R i 1 et T  R i 1.X
On obtient :
Ri  Y  T
Si  Z

•On remarque que X et Y sont les sorties d’un demi additionneur


ayant comme entrées A et B
•On remarque que Z et T sont les sorties d’un demi additionneur
ayant comme entrées X et Ri-1 12
X  A i  Bi
Y  A i Bi
Z  X  R i 1
T  R i 1.X
Ri  Y  T
Si  Z
Y
AI
RI
Demi Add
BI
X

T
Demi Add
RI-1
Z SI 13
3.4 Additionneur sur 4 bits
• Un additionneur sur 4 bits est un circuit qui permet de faire l’addition
de deux nombres A et B de 4 bits chacun
– A(a3a2a1a0)
– B(b3b2b1b0)
En plus il tient en compte de la retenu entrante

• En sortie on va avoir le résultat sur 4 bits ainsi que la retenu ( 5 bits


en sortie )

• Donc au total le circuit possède 9 entrées et 5 sorties.

• Avec 9 entrées on a 29=512 combinaisons !!!!!! Comment faire pour


représenter la table de vérité ?????

• Il faut trouver une solution plus facile et plus efficace pour concevoir
ce circuit ?
14
•Lorsque on fait l’addition en binaire , on additionne bit par bit en
commençant à partir du poids fiable et à chaque fois on propage la
retenue sortante au bit du rang supérieur.
L’addition sur un bit peut se faire par un additionneur complet sur 1 bits.

r3 r2 r1 r0= 0
a4 a3 a2 a1
+ b4 b3 b2 b1

r4 s 4 r 3 s 3 r2 s 2 r1 s 1

r4 s4 s3 s2 s1 Résultat final
15
3.4.1 Additionneur 4 bits ( schéma )

R0=0
A4 B4 A3 B3 A2 B2 A1 B1
R3 R2 R1

ADD4 ADD3 ADD2 ADD1

R4 S4 S3 S2 S1

16
Exercice

• Soit une information binaire sur 5 bits ( i4i3i2i1i0). Donner


le circuit qui permet de calculer le nombre de 1 dans
l’information en entrée en utilisant uniquement des
additionneurs complets sur 1 bit ?
• Exemple :
Si on a en entrée l’information ( i4i3i2i1i0) =( 10110) alors en
sortie on obtient la valeur 3 en binaire ( 011) puisque il
existe 3 bits qui sont à 1 dans l’information en entrée .

17
4. Le Comparateur
• C’est un circuit combinatoire qui permet de
comparer entre deux nombres binaire A et B.
• Il possède 2 entrées :
– A : sur un bit
– B : sur un bit

• Il possède 3 sorties fi
A
– fe : égalité ( A=B) Comparateur fe
– fi : inférieur ( A < B) B 1 bit
fs
– fs : supérieur (A > B)

18
4.1 Comparateur sur un bit

A B fs fe fi

0 0 0 1 0
fs  A.B
fi  AB
0 1 0 0 1
fe  AB  AB  A  B  fs  fi
1 0 1 0 0

1 1 0 1 0

19
Schéma d’un comparateur dur un bit
fs  A.B
fi  AB
fe  fs  fi

A fs

fe

B fi

20
4.2 Comparateur 2 bits

• Il permet de faire la comparaison entre deux nombres A


(a2a1) et B(b2b1) chacun sur deux bits.

A1
fi
A2
Comparateur fe
B1 2 bits
B2 fs

21
A2 A1 B2 B1 fs fe fi
1. A=B si
0 0 0 0 0 1 0
A2=B2 et A1=B1 0 0 0 1 0 0 1
0 0 1 0 0 0 1
fe  ( A2  B2).( A1  B1) 0 0 1 1 0 0 1
0 1 0 0 1 0 0
0 1 0 1 0 1 0
2. A>B si
0 1 1 0 0 0 1
A2 > B2 ou (A2=B2 et A1>B1) 0 1 1 1 0 0 1
1 0 0 0 1 0 0
fs  A2.B2  ( A2  B2).( A1.B1) 1 0 0 1 1 0 0
1 0 1 0 0 1 0
3. A<B si 1 0 1 1 0 0 1
A2 < B2 ou (A2=B2 et A1<B1) 1 1 0 0 1 0 0
1 1 0 1 1 0 0
1 1 1 0 1 0 0
fi  A2.B2  ( A2  B2).( A1.B1)
1 1 1 1 0 1 022
4.2.2 comparateur 2 bits avec des comparateurs 1 bit

•C’est possible de réaliser un comparateur 2 bits en utilisant des


comparateurs 1 bit et des portes logiques.
•Il faut utiliser un comparateur pour comparer les bits du poids faible
et un autre pour comparer les bits du poids fort.
•Il faut combiner entre les sorties des deux comparateurs utilisés
pour réaliser les sorties du comparateur final.

a2 b2 a1 b1

Comparateur 1 bit Comparateur 1 bit

fs2 fe2 fi2 fs1 fe1 fi1

23
1. A=B si
A2=B2 et A1=B1

fe  (A2  B2).(A1 B1)  fe2.fe1


2. A>B si
A2 > B2 ou (A2=B2 et A1>B1)

fs  A2.B2  (A2  B2).(A1.B1)  fs2  fe2.fs1

3. A<B si
A2 < B2 ou (A2=B2 et A1<B1)

fi  A2.B2  (A2  B2).(A1.B1)  fi2  fe2.fi1


24
a2 b2 a1 b1

Comparateur 1 bit Comparateur 1 bit

fs2 fe2 fi2 fs1 fe1 fi1

fs fe fi
25
4.2.3 Comparateur avec des entrées de
mise en cascade
• On remarque que :
– Si A2 >B2 alors A > B
– Si A2<B2 alors A < B

• Par contre si A2=B2 alors il faut tenir en compte du


résultat de la comparaison des bits du poids faible.

• Pour cela on rajoute au comparateur des entrées qui


nous indiquent le résultat de la comparaison précédente.

• Ces entrées sont appelées des entrées de mise en


cascade.
26
A2 B2 Es Eg Ei fs fe fs A2 B2

A2>B2 X X X 1 0 0
Comp Es ( >)
Eg ( =)
A2<B2 X X X 0 0 1 Ei ( <)
fs fe fi

1 0 0 1 0 0

A2=B1 0 1 0 0 1 0
fs= (A2>B2) ou (A2=B2).Es
0 0 1 0 0 1 fi= ( A2<B2) ou (A2=B2).Ei
fe=(A2=B2).Eg
27
a2 b2 a1 b1

‘0’
Comp Comp
Es Es

Eg Eg ‘1’
fs2 fe2 fi2 fs1 fe1 fi1
Ei Ei

28
Exercice

• Réaliser un comparateur 4 bits en utilisant


des comparateurs 2 bits avec des entrées
de mise en cascade?

29
5. Le Multiplexeur
• Un multiplexeur est un circuit combinatoire qui permet de
sélectionner une information (1 bit) parmi 2n valeurs en
entrée.
• Il possède :
– 2n entrées d’information
– Une seule sortie
– N entrées de sélection ( commandes)

Em ......... E3 E1 E0
C0
C1 Mux 2n 1 V
Cn-1
S

30
5.1 Multiplexeur 2 1

V C0 S

0 X 0

E1 E0
1 0 E0 C0
Mux 2 1 V
1 1 E1

S  V .(C0 .E 0  C0 .E1)
31
5.2 Multiplexeur 4 1

C1 C0 S

0 0 E0
E3 E2 E1 E0
0 1 E1 C0
C1 Mux 4 1
1 0 E2

1 1 E3
S

S  C1.C 0.( E 0)  C1.C 0.( E1)  C1.C 0.( E 2)  C1.C 0.( E3)

32
5.3 Multiplexeur 81
C2 C1 C0 S
0 0 0 E0
0 0 1 E1
0 1 0 E2 E7 E6 E5 E4 E3 E2 E1 E0
C0
0 1 1 E3 C1 Mux 8 1

1 0 0 E4 C2
1 0 1 E5
1 1 0 E6
1 1 1 E7

S  C 2.C1.C 0.( E 0)  C 2.C1.C 0( E1)  C 2.C1.C 0( E 2)  C 2.C1.C 0( E 3) 


C 2.C1.C 0( E 4)  C 2.C1.C 0( E 5)  C 2.C1.C 0( E 6)  C 2.C1.C 0( E 7)
33
Exemple : Réalisation d’un additionneur complet
avec des multiplexeurs 81

•Nous avons besoin d’utiliser deux multiplexeurs :Le premier pour


réaliser la fonction de la somme et l’autres pour donner la retenue.

ai bi ri-1 ri ai bi ri-1 Si
0 0 0 0
0 0 0 0
0 0 1 1
0 0 1 0
0 1 0 1
0 1 0 0
0 1 1 0
0 1 1 1
1 0 0 1
1 0 0 0
1 0 1 1 1 0 1 0

1 1 0 1 1 1 0 0
1 1 1 1 1 1 1 1
34
Réalisation de la fonction de la somme

S i  Ai .B i .R i 1 (0)  Ai .Bi .Ri 1 (1)  Ai .Bi .R i 1 (1)  Ai .Bi .Ri 1 (0)  Ai .B i .R i 1 (1)  Ai .B i .Ri 1 (0)
 Ai .Bi .R i 1 (0)  Ai .Bi .Ri 1 (1)

S  C 2.C1.C 0.( E 0)  C 2.C1.C 0( E1)  C 2.C1.C 0( E 2)  C 2.C1.C 0( E 3) 


C 2.C1.C 0( E 4)  C 2.C1.C 0( E 5)  C 2.C1.C 0( E 6)  C 2.C1.C 0( E 7)

On pose :
C2=Ai
C1=Bi
C0=Ri-1
E0=0, E1=1, E2=1, E3=0, E4=1, E5=0, E6=0, E7=1

35
Réalisation de la fonction de la retenue

Ri  Ai B i R i 1 .(0)  Ai B i Ri 1 .(0)  Ai Bi R i 1 .(0)  Ai Bi Ri 1 .(1)  Ai B i R i 1 .(0)  Ai B i Ri 1 .(1)


 Ai Bi R i 1 .(1)  Ai Bi Ri 1 .(1)

S  C 2.C1.C 0.( E 0)  C 2.C1.C 0( E1)  C 2.C1.C 0( E 2)  C 2.C1.C 0( E 3) 


C 2.C1.C 0( E 4)  C 2.C1.C 0( E 5)  C 2.C1.C 0( E 6)  C 2.C1.C 0( E 7)

On pose :
C2=Ai
C1=Bi
C0=Ri-1
E0=0, E1=0, E2=0, E3=1, E4=0, E5=1, E6=1, E7=1

36
Réalisation d’un additionneur complet avec des
multiplexeurs 81

‘1’
‘1’
‘0’
‘0’
ri-1 E7 E6 E5 E4 E3 E2 E1 E0
C0 ri-1 E7 E6 E5 E4 E3 E2 E1 E0
Mux 8 1 C0
bi C1
bi C1 Mux 8 1
ai C2
ai C2

Ri
Si
37
Exercice

• Réaliser le circuit qui permet de trouver le


maximum entre deux nombres A et B sur un Bit
en utilisant le minimum de portes logiques et de
circuits combinatoires?

38
6. Demultiplexeurs
• Il joue le rôle inverse d’un multiplexeurs, il permet de
faire passer une information dans l’une des sorties selon
les valeurs des entrées de commandes.
• Il possède :
– une seule entrée
– 2n sorties
– N entrées de sélection ( commandes)

C0 DeMux 1 4
C1
S3 S2 S1 S0
39
6.1 Demultiplexeur 14
C1 C0 S3 S2 S1 S0
S 0  C1.C 0.( I )
S1  C1.C 0.( I )
0 0 0 0 0 i
S 2  C1.C 0.( I )
0 1 0 0 i 0
S 3  C1.C 0.( I )
1 0 0 i 0 0
I
1 1 i 0 0 0

C0 DeMux 1 4
C1
S3 S2 S1 S0
40
7. Le décodeur binaire
• C’est un circuit combinatoire qui est constitué de :
– N : entrées de données
– 2n sorties
– Pour chaque combinaison en entrée une seule sortie
est active à la fois

S0
A S1
S2
B S3
S4
C
S5
S6
S7

Un décodeur 38 41
V
Décodeur 24

V A B S0 S1 S2 S3
S0
A
0 X X 0 0 0 0 S1
B
S2
1 0 0 1 0 0 0
S3
V
1 0 1 0 1 0 0

1 1 0 0 0 1 0

S 0  ( A.B ).V
1 1 1 0 0 0 1
S1  ( A.B ).V
S 2  ( A.B ).V
42
S 3  ( A.B ).V
Décodeur 38 A
S0
S1
S2
B S3
S4
C
S5
S6
S7
A B C S0 S1 S2 S3 S4 S5 S6 S7

0 0 0 1 0 0 0 0 0 0 0 V

0 0 1 0 1 0 0 0 0 0 0
S 0  A.B.C
0 1 0 0 0 1 0 0 0 0 0
S1  A.B.C
0 1 1 0 0 0 1 0 0 0 0
S 2  A.B.C
1 0 0 0 0 0 0 1 0 0 0 S 3  A.B.C
1 0 1 0 0 0 0 0 1 0 0 S 4  A.B.C
1 1 0 0 0 0 0 0 0 1 0 S 5  A.B.C
1 1 1 0 0 0 0 0 0 0 1 S 6  A.B.C
43
S 7  A.B.C
Réalisation d’un additionneur complet
avec des décodeurs binaire 38
S i  Ai .Bi .Ri 1  Ai .Bi .R i 1  Ai .B i .R i 1  Ai .Bi .Ri 1
0 0 1 0 1 0 1 0 0 1 1 1
Ri  Ai Bi Ri 1  Ai B i Ri 1  Ai Bi R i 1 .  Ai Bi Ri 1
0 1 1 1 0 1 1 1 0 1 1 1

On pose A=Ai , B =Bi , C=Ri-1

S 0  A.B.C , S1  A.B.C , S 2  A.B.C , S 3  A.B.C ,


S 4  A.B.C , S 5  A.B.C , S 6  A.B.C , S 7  A.B.C

Ri  S 3  S 5  S 6  S 7

S i  S1  S 2  S 4  S 7 44
8. L’encodeur binaire

• Il joue le rôle inverse d’un décodeur


– Il possède 2n entrées
– N sortie
– Pour chaque combinaison en entrée on va avoir sont
numéro ( en binaire) à la sortie.

I0
I1 x
Encodeur 42
y
I2
I3

45
L’encodeur binaire ( 42)
I0 I1 I2 I3 x y

0 0 0 0 0 0 I0
I1 x
1 x x x 0 0 y
I2
I3
0 1 x x 0 1

0 0 1 x 1 0
X  I 0.I1.( I 2  I 3)
0 0 0 1 1 1
Y  I 0.( I1  .I 2.I 3)
46
9. Le transcodeur

• C’est un circuit combinatoire qui permet de transformer


un code X ( sur n bits) en entrée en un code Y ( sur m
bits) en sortie.

E1 S1

E2 S2
transcodeur ..
..
En Sm

47
Exemple : Transcodeur BCD/EXESS3
A B C D X Y Z T
0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 1
0 1 0 1 1 0 0 0
0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0
1 0 0 0 1 0 1 1
1 0 0 1 1 1 0 0
1 0 1 0 x x x x
1 0 1 1 x x x x
1 1 0 0 x x x x
1 1 0 1 x x x x
1 1 1 0 x x x x
1 1 1 1 x x x x 48
L’UNITE ARITHMETIQUE ET LOGIQUE (UAL)

Définition
L’UAL est un circuit combinatoire capable d’exécuter
des opérations arithmétiques et logiques suivant un
Code de choix de l’opération.
Représentation symbolique
A,B: opérandes (sur n bits)
S = f(A,B) : résultat (sur n bits)
C: code opération (sur m bits d’où 2m opérations
Possibles)
Exemple de circuit
Le circuit intégré 74181 est une unité arithmétique et logique 4 bits
(n=4, m=4)

49
50
51
Chapitre 5 : Les circuits séquentiels

•Introduction
•Notion d’horloge (système synchrone et système asynchrone)
•Les bascules
–T
– RS
– RST
– D et D latch
– JK
•Les registres
•Les compteurs/decompteurs
1
1.Introduction
 Un circuit combinatoire est un circuit numérique dont
les sorties dépendent uniquement des entrées:
S  f (E)
 L’état du système ne dépend pas de l’état interne du
système.
 Pas de mémoration de l’état du système.

2
2.Les circuits séquentiels
 Un circuit séquentiel est un circuit numérique (logique) dont
l’état à l’instant t+1 est une fonction des entrées en même
instant t+1 et de l’état précédente du système ( l’instant t)

St1  f (E, St )
Circuit
E séquentiel S

S  f (E,S)
3
Exemple d’un circuit séquentiel

Circuit
C séquentiel L

C L L+

0 X L Mémoire

1 0 1 basculement

1 1 0 basculement

4
3.Système synchrone( Notion de l’horloge)
 Une horloge est une variable logique qui passe successivement de 0 à 1 et
de 1 à 0 d’une façon périodique.
 Cette variable est utilisée souvent comme une entrée des circuits
séquentiels  le circuit est dit synchrone.
 L’horloge est notée par h ou ck ( clock).

1 1 1 1 1 1 1
h 0 0 0 0 0 0 0

E0
Circuit séquentiel S1
E1
synchrone S2
H
5
L’horloge
Niveau Haut: 1

1
0 0

Niveau Bas : 0
Front
Front
descendant La période T
montant
La période T est en
seconde
Fréquence F f 1
T

La fréquence est en hertz


6
Synchronisation sur niveau Haut

Synchronisation sur front montant

Synchronisation sur front descendant

E
7
4. Les systèmes Asynchrones

 Lorsque un circuit séquentiel n’a pas d’horloge comme


variable d’entrée ou si le circuit fonctionne indépendamment
de cette horloge alors ce circuit est asynchrone.

E0
Circuit séquentiel S1
E1
asynchrone S2
E2

8
5.Les bascules ( flip-flops)

 Les bascules sont les circuits de bases de la logique séquentiel .


 Une bascule peut posséder une horloge (synchrone ) ou non (asynchrone)
.
 Chaque bascule possède des entrées et deux sorties et Q . Q
 Une bascule possède la fonction de mémoration et de basculement.

E0
E1 Q

…… Une bascule Q F(Ei
,Q)
E2 Q

Il existe plusieurs types de bascules :T ,RS, RST ,D ,JK


9
5.1 Les bascules RS (Reset,Set)

R Q
Une bascule
S RS
Q

R S Q- Q+

0 0 0 0
R S Q+ Etat mémoire
0 0 1 1
0 0 Q- 0 1 0 1
Remise à 1
0 1 1 0 1 1 1

1 0 0 1 0 0 0
Remise à 0
1 0 1 0
1 1 X
1 1 0 X
État interdite
1 1 1 X 10
Chronogramme d’une bascule RS

mémoire
11
Structure interne d’une bascule RS

Q   S  R.Q
Q   R  S .Q
Q   S  R.Q  S  R.Q  S  ( R  Q)  ( S  S )  ((R  R)  Q)

Q   R  S .Q  R  S .Q  R  ( S  Q)  ( R  R)  ((S  S )  Q)

Q
S Q

Q
R
12
5.3 Les bascules RST

T R S Q+
0 X X Q

R Q 1 0 0 Q
Une bascule
S RST
Q 1 0 1 1
T
1 1 0 0

1 1 1 X

13
5.3 Les bascules T

Q T Q+
Une bascule
T T
Q 0 Q

1
Q

14
5.4 Les bascules D latch

 C’est une bascule synchrone (utilise une horloge) sur niveau


Haut ou niveau Bas

D
Q h D Q+
Une bascule
D latch Q
h 0 0 Q-

Sur niveau Haut 0 1 Q-

1 0 0
D
Q 1 1 1
Une bascule
D latch
h Q
Si h=1 Q+=D
Sur niveau bas 15
Chronogramme d’une bascule D latch (niveau haut )

16
Exercice
 Transformer une bascule RST pour quelles agisse comme une
bascule D-latch ?

T R S Q+
0 X X Q

1 0 0 Q T= h
S= D
1 0 1 1
R= D
1 1 0 0

1 1 1 X

17
5.6 Les bascules D

 C’est une bascule synchronisée sur front montant ou


descendant

Sur front montant


h D Q+

0/1 0 Q- Q
D Une bascule
h D
0/1 1 Q- Q

0 0

1 1
Q
D Une bascule
h D
Q
18
Sur front descendant
Chronogramme d’une bascule D

1
D 0

Q 0

19
5.7 Les bascules J.K en mode synchrone

Une bascule avec deux entrée J , K et une horloge


( front montant ou descendant)

h J K Q+
0/1 x x Q-
J Q
0 0 Q-
h Bascule JK
0 1 0 Q
K
1 0 1
1 1 Q
20
Chronogramme d’une bascule J.K

0 1 0
J

K 0 0 0

Q
21
Les bascules J.K en mode asynchrone
 Deux entrées Pr ( preset ) et cl ( clear) asynchrone
 Plus prioritaire que l’horloge
 Pr et Cl fonctionne avec la logique negative.

J Pr Q
Sur front montant h Bascule JK
Q
K Cl

J Pr
Q
Sur front descendant h Bascule JK
Q
K Cl 22
Table de vérité d’une bascule J.K

Pr Cl h J K Q+
Mode 0 0 X X X X État interdit
Asynchrone
0 1 X X X 1 Remise à 1
1 0 X X X 0 Remise à 0
Mode 1 1 0/1 x x Q- Etat mémoire
Synchrone
1 1 0 0 Q- Etat mémoire
1 1 0 1 0 Remise à 0
1 1 1 0 1 Remise à 1
1 1 1 1 Q Basculement

23
Exercice

 Transformer une bascule JK en une bascule D ?

h J K Q+

0/1 x x Q-
J  D
0 0 Q-
K  D
0 1 0
h  h1
1 0 1

1 1 Q
24
Table de transition d’une bascule JK
 On connait les valeurs des sorties , comment determiner les
valeurs des entrées JK ?

Q Q+ J K

0 0 0 X Remise à 0 ou état mémoire

0 1 1 X Remise à 1 ou basculement

1 0 X 1 Remise à 0 ou basculement

1 1 X 0 Remise à 1 ou état mémoire

25
II.SYNTHESE DES SYSTEMES SEQUENTIELS, TABLES DE TRANSITION DES
BASCULES.
Les méthodes de synthèse permettent d'écrire les équations logiques des entrées d'une bascule à
partir de sa table de transition.

26
III.LES COMPTEURS
III-1.Définition
Un compteur est un assemblage de bascules et de systèmes combinatoires ayant une seule
entrée : l’horloge.
On peut définir un compteur comme étant un système séquentiel dont les sorties indiquent le
nombres d’impulsion qui ont été applique sur son entrée horloge.
Les compteurs peuvent être soit synchrones ou asynchrones.

27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
6) APPLICATION DES BASCULES
Diviseur de fréquence 
application des bascules : Division de la fréquence d'une forme d'onde périodique. Appliquer onde
impulsionnelle à l'entrée HORLOGE d'une bascule J-K connectée en mode de basculement (J = K = 1)

Bascule change d'état à chaque front déclencheur du signal d'horloge (ici front +).
⇒ Sortie Q -> onde rectangulaire de fréquence égale à ½ celle du signal d'horloge

42
Exp. 2 bascules J-K utilisées pour diviser la fréquence d’horloge par 4.
La fréquence à la sortie QA est divisée par 2 à l’aide de la bascule A
Appliquer une onde impulsionnelle à l'entrée HORLOGE d'une bascule J-K connectée en mode de basculement
(J = K = 1).

Bascule J-K servant de diviseur de fréquence

⇒ Sortie QA : Onde rectangulaire de fréquence égale à ½ celle du signal d'horloge.


⇒ Sortie QB vaut ¼ de la fréquence horloge d'origine.
⇒ Division de fréquence par 2n (n : nombre de bascules).

43
Exp.: Développez la forme d'onde de sortie (f sor) du circuit à la figure ci-dessous lorsqu'une forme d'onde
rectangulaire de 8 kHz est appliquée à l'entrée HORLOGE de la bascule A (déclenchement par front positif)

Solution :
Les 3 bascules sont connectées afin de diviser la fréquence du signal d'entrée par 8 (23 = 8). Forme d'onde
fsor illustrée à la figure ci-jointe. Comme il s'agit de bascules à déclenchement par front positif, les sorties
varient lors des fronts positif.
Une impulsion de sortie est produite à toutes les 8 impulsions d'entrée ; la fréquence de sortie est donc 1
kHz comme illustré ci-dessus.

44
Exp. Compteur modulo N=4
Les deux bascules J-K à déclenchement par front négative (–) (état initial à 0).

Bascule A déclenchée lors du signal d'horloge.


Sortie Q de la bascule A déclenche B à chaque fois que QA transite de HAUT vers BAS.
Formes d'onde QA et QB résultantes illustrées sur figure ci-jointe.

Séquence de QA et QB de cette figure :

Avant impulsion 1 d'horloge, QA = 0 et QB = 0 ;-

Après impulsion 1, QA = 1 et QB = 0 -

Après impulsion 2, QA = 0 et QB = 1 -

- Après impulsion 3, QA = 1 et QB = 1.

Bascules générant une


séquence binaire ascendante :
2 répétitions (00, 01, 10, 11)45
Exp. Compteur modulo N=16

compteur asynchrone modulo 16, il compte de 0 à 15.


46
Exp. Décompteur modulo N=16

Décompteur asynchrone modulo 16, il décompte de 15 à 0.


47
Les registres

48
1. Définition
• Une bascule est l’élément de base de la logique
séquentielle.
• Une bascule permet de mémoriser un seul bit.
• Un registre est ensemble un ordonné de n bascules.
• Un registre permet de mémoriser ( sauvegarder) une
information sur n bits.
• Exemple :

49
2. Type de registres
• Il existe plusieurs types de registres :
– Registre à entrées parallèles et sorties parallèles
(Registre à chargement parallèle ).
– Registre à entrée série et sortie série
– Registre à entrée série et sortie parallèle.
– Registre à entrée parallèle et sortie série.
– Registre à décalage circulaire.

50
2.1 Registre à entrées parallèles et sorties parallèles
(Registre à chargement parallèle ).

• Il peut charger une information sur N bits en même temps.


• Les n bascules changement d’états en même temps.
• Chaque bascule Bi prend la valeur de l’information i.
• Il possède une entrée de chargement chg ( chg=0  état mémoire,
chg=1 chargement )

51
2.2 Registre à entrée série et sortie série

• L’information est introduite bit par bit ( en série).


• L'ensemble du registre est décalé d'une position ( Bi, Bi+1) et la
bascule B0 reçoit une nouvelle entrée ES.
• Un tel registre est appelé registre à entrée série à gauche et à sortie
série à droite.

52
registre à entrée série à droite et à sortie
série à gauche.

53
Registre à entrée série et sortie parallèle.

54
Registre à entrée parallèle et sortie série.

55
2.5 Registre à décalage circulaire

• C'est un registre qui effectue un décalage vers la gauche en


répercutant la sortie de la derniére bascule vers l'entrée de la
dernière bascule.
• Le décalage peut être un décalage droite ( circulaire droite) ou
gauche ( circulaire gauche)

56
Exercice

57
Registre programmable

• Il existe des registres qui permettent :


– le décalage à droite ( ou circulaire droite)
– Le décalage à gauche (ou circulaire gauche)
– Chargement parallèle.

58
Registre programmable ( table de vérité)

h S0 S1 QA+ QB+ QC+ QD+ Obs.

X 0 0 QA QB QC QD Mémoire

0 1 Eg QA QB QC Décalage à droite

1 0 QB QC QD Ed Décalage à gauche

1 1 A B C D Chargement Synchrone

59
Exercice

60
Les Bus

• Un bus est un ensemble de lignes utilisées pour interconnecter des


éléments d'un ordinateur (registres, mémoires, ...).
• Son rôle est d'assurer le transport de l'information d'un élément à
l'autre.

61
Représentation simplifié d’un bus sur 8
bits

62
Bus Unidirectionnel et Bidirectionnel
• Bus Unidirectionnel : Ce type de bus assurent un transport de
l'information dans un seul sens.
• Le bus bidirectionnel : Le bus bidirectionnel assure le transfert de
l'information dans les deux sens.

Bus Unidirectionnel

Le bus bidirectionnel

63
Application des Bus : interconnections
des registres

64
Le tampon trois états( Tristate )

• C’est un circuit qui possède trois états : Haut (H : 1), Bas (B : 0) et


Haute Impédance (Z).

• Un tampon trois états est un circuit qui sert pour contrôler le


passage d'un signal logique entre une entrée et une sortie.

65
Inverseur à trois états

66
Registre à trois états
• Les sorties sont dotés de tampons à trois états.
• Si S=0 alors les Qi sont dans l’état haute impédance.

Les entrées aussi peuvent avoir des tampons à trois états


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Logique séquentielle
La méthode d'huffman
LogHuff

A) Introduction.
La méthode d'huffman est une méthode de synthèse des systèmes séquentiels qui oblige à faire
une étude complète du système à réaliser et fournit un moyen systématique de réalisation avec un
minimum de variables internes (bascules).
Cette méthode a beaucoup perdu de son importance depuis l'apparition des microprocesseurs et
d'autre méthode d'analyse (GRAFCET). Cependant pour les systèmes séquentiels rapides (les
systèmes micro sont lents), elle est utile pour la conception de petits sous ensembles, lorsque la
solution n'est pas apparente, et que l'emploi des autres méthodes serait trop lourd.
B) Analyse et synthèse à partir d'un exemple.
Recherche d'un système séquentiel pour automatisme ferroviaire (modèle réduit).
On désire que la locomotive passe 2 fois sur la voie A puis 1 fois sur la voie B, et recommence (2
fois sur la voie A etc. ...).

b
2 aiguillages M et N permettent
Voie B de passer sur les voies A ou B
Si les actionneurs M et N
1 1 sont à 1, les aiguillages
M N s'orientent vers la voie B. Si M
0 0 = N= 0 => voie A.
voie A
2 capteurs a et b délivrent un 1
lorsque la locomotive passe
dessus.
a

B-1) Représentation par un diagramme de fluence.


On représente sur un diagramme orienté les étapes numérotées de la séquence en indiquant les
états logiques des entrées et sorties. Ici ab/MN.

Diagramme de fluence.
10/00 00/00 10/10 00/10 01/01 00/01
1 2 3 4 5 6

Remarque importante: Dans la méthode d'huffman, on suppose que 2 entrées ne peuvent varier
simultanément (les transitions d'entrée (01)->(10) sont interdites).
Dans l'exemple présent, cette condition est toujours remplie (s'il n'y a qu'une locomotive).

Loghuf Méthode d'Huffman. Page: 1


B-2) Ecriture de la matrice des phases.
La méthode d'Huffman commence par l'écriture d'un tableau appelé matrice des phases, équivalent
au diagramme de fluence. Il comporte une colonne pour chaque combinaison des entrées (codage
en binaire réfléchi) et une colonne pour chaque sortie.
On place un état stable par ligne (phase stable = étape), avec les valeurs des sorties pour cette
étape. L'état stable est représenté par le numéro de l'étape entouré. On indique alors sur la ligne,
les transitions possibles par le numéro de la phase stable d'arrivée (numéro de l'étape non
entouré).

Matrice des phases Explication:


ab la 1ere ligne indique l'étape 1
00 01 11 M N ab=10 (locomotive en a), les
10
2 1 0 0 sorties sont MN=00, et la seule
transition possible est ab=00
2 3 0 0
donc passage à l'étape 2
4 3 1 0
4 5 1 0 états stables (entourés)
6 5 0 1
états instables (non entourés)
6 1 0 1 ils indiquent l'étape suivante.
Chaque ligne correspond à une étape (état stable).

On constate que le système est bien séquentiel (et non combinatoire) à la présence dans une même
colonne, de plusieurs phases stables (ex: pour ab=00, on trouve les étapes N°2, N°4 et N°6, alors
que l'état des sorties M et N diffèrent. Il est donc impossible d'écrire une équation logique de M et
N en fonction de a et b).
Remarque: Il peut se produire que l'on ait introduit plusieurs phases stables équivalentes, sans
s'en rendre compte au cours de l'analyse. Deux phases seront équivalentes si:
Elles sont dans la même colonne (même vecteur d'entrée).
Les états des sorties sont les mêmes.
Les mêmes transitions d'entrées mènent aux mêmes phases ou à des phases équivalentes.
Il faut détecter ces phases équivalentes afin de n'en garder qu'une (cela permet de limiter le
nombre d'étapes et donc de simplifier d'autant le système séquentiel). Dans l'exemple proposé, il
n'y a pas de phases équivalentes (les étapes dans les mêmes colonnes n'ont pas les mêmes états en
sortie.).

B-3) Ecriture de la matrice réduite.


L'écriture de la matrice des phases montre que les phases stables dans une même colonne ne
peuvent pas être différenciées par les variables d'entrées a et b. Il faudra donc ajouter d'autres
variables appelées variables internes, pour pouvoir coder les lignes et donc indiquer l'étape de la
séquence (étape = ligne de la matrice des phases). Les variables internes seront réalisées à l'aide
d'éléments comportant un état mémoire, afin de garder le numéro de l'étape dans laquelle on se
trouve à un instant donné. Il est donc possible d'utiliser les bascules RS, D ou JK. Si l'on prend n
bascules, il est donc possible de coder une matrice de 2n lignes. On a donc intérêt à limiter le
nombre de ligne.

Loghuf Méthode d'Huffman. Page: 2


Il est possible de réduire le nombre de lignes par fusion.
Conditions de fusionnement de 2 ou plusieurs lignes:
Les états stables doivent être dans des colonnes différentes.
Les transitions doivent être compatibles (on ne peut mettre deux numéros différents dans
une même case).
On ne tient pas compte de l'état des sorties (elles peuvent être différentes).
Ici il est possible de fusionner la ligne 3 avec la ligne 4, et de fusionner les lignes 5 et 6 (pas de
conflit entre des chiffres différents dans chaque colonne).

Matrice réduite
Dans cette matrice les sorties ne doivent
ab pas être représentées
00 01 11 10
2 1
lignes 3 et 4 fusionnées
2 3
4 5 3
6 5 1 lignes 5 et 6 fusionnées

Lorsque deux lignes fusionnent, les états stables sont représentés en priorité, certains états
instables ne sont donc plus nécessaires, car ils correspondent à l'état stable de même numéro.
B-4) Codage des lignes.
Il est indispensable d'ajouter des variables internes pour différentier les lignes. Ici la matrice
réduite comporte 4 lignes, il faut donc deux variables internes pour coder ces 4 lignes. Appelons
y1 et y2 les deux variables internes supplémentaires. Il est alors possible en attribuant à chaque
ligne, une combinaison de y1 et y2, de traduire chaque étape par une relation en logique
combinatoire de a, b, y1 et y2.

Codage des lignes


a Système M
ab
b logique N
00 01 11 10
y1 y2 combinatoire
00 2 1 y1 sans retard Y1
01 2 3 y2 de propagation Y2
11 4 5 3
10 6 5 1
retard de
propagation

On utilisera des lettres minuscules pour les variables d'entrée, et des majuscules pour les
grandeurs de sortie. Nous aurons donc ici 4 variables d'entrée a, b, y1, y2, et il faudra réaliser les
4 grandeurs de sortie M, N, Y1 et Y2.
Remarque: y1 et y2 correspondent respectivement à Y1 et Y2, mais aux temps de propagations
près des portes logiques et/ou des bascules.

Loghuf Méthode d'Huffman. Page: 3


B-5) Ecriture de la matrice d'excitation et de la matrice de sortie.
Il est alors indispensable de choisir le mode de réalisation de l'ensemble du système.
a) Réalisation totale en logique combinatoire (possible s'il n'y a que quelques variables
internes, en principe 3 maximum).
b) Réalisation à l'aide de bascules RS (si asynchrone), D ou JK (si système synchrone ou
asynchrone synchronisé).
c) Réalisation à l'aide de composants programmables (PROMs, ROMs, EPROMs, PALs
combinatoire, pour les systèmes asynchrones, ou les mêmes composants associés à des
bascules pour les systèmes asynchrones synchronisés, ou même des PALs séquentiels).

B-5-a) Réalisation en logique combinatoire.

Matrice réduite
ab
00 01 11 10
y1 y2 Pour la construction des
00 2 1 matrices d'excitation et des
01 2 3 matrices de sortie, voir Explication
11 4 5 3
10 6 5 1
Matrices d'excitation de Y1 et Y2

Y1 ab Y2 ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
00 0 0 00 1 0
01 0 1 01 1 1
11 1 1 1 11 1 0 1
10 1 1 0 10 0 0 0

Matrices des sorties


M ab N ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
00 X 0 00 X 0
01 0 X 01 0 X
11 1 X 1 11 0 X 0
10 0 0 X 10 1 1 X

Explication sur la construction des matrices d'excitation:


Pour construire la matrice d'excitation de Y1 (tableau de Karnaugh), il faut utiliser la matrice
réduite. On procédera de même pour Y2 en remplaçant par les indices 2.

Loghuf Méthode d'Huffman. Page: 4


Pour chaque état stable Y1 aura la même valeur que la variable d'entrée y1 que l'on voit sur la
ligne de l'état stable (ex: pour l'état stable 1 {1ère ligne}, y1 vaut 0, donc Y1 vaudra également
0).
Pour les états instables (états transitoires), on prend comme valeur de Y1, la valeur de
l'entrée y1 de l'état stable .(Ex: pour l'état instable 3 sur la 2 ième ligne, y1 vaut 1 pour l'état
stable 3, donc l'état instable prend la même valeur, soit 1.
Il ne reste plus qu'à déterminer les équations de Y1 et Y2 (tableau de Karnaugh).

Explication sur la construction des matrices de sortie:

Equations de Y1 et Y2

Y1 ab Y2 ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
00 0 0 00 1 0
01 0 1 01 1 1
11 1 1 1 11 1 0 1
10 1 1 0 10 0 0 0

Y1=y1.a +y2.a Y2=y1.a + y2.b

Les matrices de sortie sont construites à partir de la matrice des phases et de la matrice réduite.
On écrit une matrice (tableau de Karnaugh) pour chaque sortie. Prenons le cas de la sortie M en
exemple.
Pour les états stables il faut prendre l'état spécifié dans la matrice des phases.
Pour les états instables (ils ne durent que pendant des temps très brefs = temps de
propagations) l'état peut en général être quelconque, mais parfois pour éviter des problèmes
d'aléas ou d'états transitoires parasites, on préfère imposer soit l'état de l'étape stable de départ,
ou celui de l'étape stable d'arrivée.

Matrices de sortie
M ab N ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
00 X 0 00 X 0
01 0 X 01 0 X
11 1 X 1 11 0 X 0
10 0 0 X 10 1 1 X

M=y1.y2 N=y1.y2

Le système peut donc être réalisé après avoir simplifié les équations à l'aide des règles de l'algèbre
de Boole. Ex: en transformant l'équation de Y2 de la façon suivante.

Loghuf Méthode d'Huffman. Page: 5


Y2 = (y1 + a) + (y2 + b) Il faut alors 4 portes NOR à 2 entrées, 4 portes ET à 2 entrées et 2 portes
OU à 2 entrées, soit 3 boîtiers au total.

Schéma structurel
&
a >1 Y1
>1 M
&
&

>1 N
Y2 &
b >1 >1
>1 Y2

B-5-a) Réalisation à l'aide de bascules.


On écrit à partir de la matrice réduite, une matrice de transition (TY1 et TY2) pour chaque
variable interne (Y1 et Y2).

Réalisation à l'aide de bascules Matrice réduite


ab
A partir de la matrice réduite 00 01 11 10
y1 y2
pour chaque état (stable et instable) 00 2 1
on détermine les transiti ons 01 2 3
que doivent subir Y1 et Y2 pour 11 4 5 3
arriver à la phase suivante.
10 6 5 1

Matrices de transition de Y1 et Y2
TY1 ab TY2 ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
0 0 t00 t00 0 0 t01 t00
0 1 t00 t01 0 1 t11 t11
1 1 t11 t11 t11 1 1 t11 t10 t11
1 0 t11 t11 t10 1 0 t00 t00 t00

En utilisant les tables de transitions des bascules, on obtient alors une matrice d'excitation et les
équations des entrées de la bascule. Dans l'exemple, le système étant asynchrone, on choisit
d'utiliser des bascules RS. Il suffit alors d'utiliser la table des transitions de la bascule RS, pour
obtenir le tableau de Karnaugh des entrées R et S (voir tableau de Karnaugh de R1, S1, R2, S2).

Loghuf Méthode d'Huffman. Page: 6


Les équations des sorties sont obtenues comme dans le cas de la solution en logique combinatoire
à partir des matrices de sortie .

Rappel de la table de transition de la bascule RS


RS
--0 01 10 0--
t00 t01 t10 t11
Tableaux de Karnaugh des entrées des bascules
Matrices d' excitation de Y1
R1 ab S1 ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
00 X X 00 0 0
01 X 0 01 0 1
11 0 0 0 11 X X X
10 0 0 1 10 X X 0

R1=y2.a S1=y2.a
Matrices d'excitation de Y2
R2 ab S2 ab
00 01 11 10 00 01 11 10
y1 y2 y1 y2
00 0 X 00 1 0
01 0 0 01 X X
11 0 1 0 11 X 0 X
10 X X X 10 0 0 0

R2=b S2=y1.a

Les équations sont alors plus simples. Ici il y aura toujours 3 boîtiers (1 pour les bascules, 1
boîtier de 4 portes ET à deux entrées et 1 boîtier de NOR en transformant l'équation de S2).
Remarque: pour les bascules RS, il faut disposer des sorties complémentées, on prend alors
souvent des bascules D ou JK avec entrées asynchrones Set et Reset (attention les autres entrées
doivent être invalidées et non pas laissées en l'air).

Schéma structurel à l'aide de bascules RS.


a U1
Y2 & Y1
S Q M
&
Y2 R
&
U2
S Y2
Q &
>1 N
b Y1
R Y2

B-5-a) Réalisation en logique programmée.

Loghuf Méthode d'Huffman. Page: 7


Cette méthode permet, à partir de la matrice réduite, une réalisation à l'aide de composants
programmables (mémoires ROMs, PROMs, EPROMs). Il est alors possible de réaliser des
systèmes séquentiels rapides, avec un grand nombre d'étapes. Les variables d'entrées et les
variables internes (y1, y2...) donnent l'adresse de la case mémoire, les sorties de la mémoire
permettent de réaliser les sorties du système et de fabriquer les variables internes (Y1, Y2....). Les
sorties Y1, Y2 ..Yn sont reliées aux entrées y1, y2,...yn (appelé adressage composite) soit par
l'intermédiaire de circuit de retard (RC), le système est alors asynchrone (les constantes de temps
des circuits RC doivent être supérieures aux temps de propagation et d'accès de la mémoire), soit
par des bascules de type D ce qui permet d'avoir un système asynchrone synchronisé (la fréquence
d'horloge des bascules doit être inférieure aux temps de propagation et d'accès de la mémoire). La
résolution se ramène simplement à l'écriture d'une table ou les colonnes correspondent aux entrées
et sorties (variables internes comprises), avec autant de lignes que d'états stables et instables.

Solution en logique programmée Matrice réduite


ab
a M
Mémoire 00 01 11 10
b N y1 y2
00 2 1
y1 Y1
y2 Y2 01 2 3
11 4 5 3
retard 6 5 1
10
Adr N°étape y1 y2 a b Y1 Y2 M N Data
$2 1 0 0 1 0 0 0 0 0 $0
$4 2 0 1 0 0 0 1 0 0 $4
$E 3 1 1 1 0 1 1 1 0 $E
$C 4 1 1 0 0 1 1 1 0 $E
$9 5 1 0 0 1 1 0 0 1 $9
$8 6 1 0 0 0 1 0 0 1 $9
$A 1 1 0 1 0 0 0 0 0 $0
$0 2 0 0 0 0 0 1 0 0 $4
$6 3 0 1 1 0 1 1 1 0 $E
$D 5 1 1 0 1 1 0 0 1 $9

Il suffit alors d'affecter chaque variable d'entrée à un fil d'adresse (ici y1=A3, y2= A2, a= A1, b=
A0), et d'affecter chaque grandeur de sortie à une sortie de la mémoire (ici Q3 = Y1, Q2 = Y1,
Q1= M et Q0 = N). Après avoir écrit les adresses obtenues en hexadécimal dans l'ordre, ainsi que
les données, il n'y a plus qu'à programmer la mémoire.
Ce mode de réalisation permet d'utiliser un grand nombre de variables d'entrée (ex: 11 entrées
pour une EPROM 2716, y compris les variables internes), mais les sorties sont limitées au nombre
de sortie de la mémoire (souvent 8, y compris les variables internes).
La réalisation de la carte (typon) a l'avantage d'être très simple par rapport à son équivalent en
logique combinatoire ou même en logique séquentielle.

Loghuf Méthode d'Huffman. Page: 8


Réalisation en logique programmée
(Système asynchrone)

EPROM 2716
A10 Q7
à à
Q4 C1
A4 Y1 R1
Q3
gnd
y1 A3 Y2 R2 gnd
y2 Q2
A2 C2
a M
A1 Q1 gnd
b A0 N
Q0

Remarque: Les circuits RC (R1 C1 et R2 C2) permettent de maîtriser les retards, sinon seuls les
temps de propagations limitent la vitesse d'évolution de la séquence. Il faut alors vérifier la bonne
évolution de la séquence.

Systèmes asynchrones synchronisés.


Pour éviter tout problème de temps de propagation, on préfère imposer la vitesse maximale
d'évolution de la séquence en n'autorisant des évolutions que sur les fronts d'une horloge de
synchronisation. La vitesse de cette horloge est choisie en fonction de la vitesse maximale
d'évolution de la séquence. Ces systèmes sont appelés: systèmes asynchrones synchronisés (voir
schéma ci dessous).
Principe: Il suffit de verrouiller à l'aide de registre de type D ( bascule D), les variables internes (et
si besoin les variables d'entrées). Il ne peut alors y avoir qu'une étape maximale à chaque période
de l'horloge.

Réalisation en logique programmée


(Système asynchrone synchronisé)

EPROM 2716 H
A10 Q7 C1
à à
Q4 Y1
A4 Q3 1D Q
y1 gnd
A3 Y2
y2 Q2
A2
a M
A1 Q1
b A0 N
Q0

Loghuf Méthode d'Huffman. Page: 9


C) Problème des courses critiques.

C-1) Les courses.

C-2) Les courses critiques.

D) Problème des aléas.

E) Conclusion: systèmes asynchrones et systèmes asynchrone synchronisés.

Loghuf Méthode d'Huffman. Page: 10


Le Grafcet
Introduction
 Objectifs d’un système automatisé
 Éliminer les tâches répétitives et rébarbatives
 Simplifier le travail de l’homme
 Améliorer la sécurité
 Accroître la productivité
 Économiser les matières premières et l’énergie
 Assurer la qualité
 Gérer les installations
 Architecture d’un système automatisé
 Partie Opérative (P.O.) : elle agit sur un produit pour lui conférer une
valeur ajoutée.
 Partie Commande (P.C.) : elle permet de commander un processus.
 Partie Relation ou dialogue : elle permet la communication entre
l’homme et la machine.
Le Grafcet
Produits PARTIE OPERATIVE Produits
entrants finis
Unité de production
+ +
Énergie Déchets
Actionneurs Capteurs

PARTIE COMMANDE
Pré-Actionneur

Interface de sortie Interface d’entrée


Ordre Information
Unité de traitement
Ordre Information
Interface de sortie Interface d’entrée

Visualisation Consigne

Opérateur
PARTIE DIALOGUE
Le Grafcet
 Cahier des charges
 Définitions : C’est un document où sont spécifiées toutes les
fonctions, toutes les valeurs des grandeurs physiques et tous les
modes d’utilisation du matériel.
 Les niveaux :
– niveau 1 : spécifications fonctionnelles. Les tâches à réaliser par
le système sont décrites sans préjuger de la technologie.
– niveau 2 : spécifications technologiques et opérationnelles. La
technologie des capteurs et actionneurs est spécifiée ainsi que les
différents modes de fonctionnement et les conditions de sécurité.
– niveau 3 : documentations relatives au système (utilisation,
entretien, dépannage).
– autre niveau : Clauses juridiques, commerciales et financières.
Le Grafcet
 Représentation du fonctionnement d’un automatisme
 Le langage naturel : les fonctions de l’automatisme sont énumérées
textuellement au moyen du langage quotidien qui est interprétable de
différentes manières selon les individus. Ceci engendre souvent des
cahier des charges ambigus et difficiles à exploiter.
 Le langage à contact ou le diagramme en échelle (Ladder) : ils sont
basés sur la représentation électrique des systèmes.
 Le langage booléen : il utilise les logigrammes.
 Le langage temporel : il utilise les chronogrammes.
 Les organigrammes : ils sont plus facilement applicables à
l’informatique.
 Le GEMMA : il permet de spécifier les différents modes de
fonctionnement d’un système.
 Les réseaux de Pétri : ils sont bien adaptés à l’étude des systèmes
complexes.
 Analyse fonctionnelle : SADT.
Le Grafcet
 Le Grafcet : défini en France en 1977, le Grafcet est un outil
graphique qui permet de décrire le cahier des charges d’un
automatisme séquentiel. Il est également directement exploitable pour
l’implantation technologique. C’est donc à la fois :
– un langage de spécification d’un automatisme (Grafcet de
spécification),
– un langage d’implémentation (Grafcet de réalisation).
Le Grafcet
 Exemple : automatisation d’une perceuse
Cahier des charges :
• Le foret tourne (R) toujours sur
lui-même en descente (D) et en
M montée (M).
• Les contacts h, b et m sont à 1
lorsqu’ils sont enclenchés.
h • Les contacts de fin de course h
et b sont enclenchés par le
passage de la came solidaire de
D
b la perceuse.
• Le cycle démarre lorsque l’on
appuie sur le bouton poussoir m
R et que le contact h est
m
enclenché par la came.
Pièce
Le Grafcet
Organigramme :

M=0, D=0, R=0

M m=1
h=1

h
D=1, R=1

D
b b=1

D=0, M=1
m
R
Pièce
h=1
Le Grafcet
Grafcet :

M 0

m  h
h
1 D R

D b
b
2 M R

m h
R
Pièce
Le Grafcet
Les éléments du Grafcet
 Les éléments de base
étape initiale

0 arc orienté descendant

m  h réceptivité

1 D R action

b
transition
2 M R

arc orienté montant h étape


Le Grafcet
 Les étapes : elle permettent de rendre compte de la situation du
système. Chaque étape est repérée par un numéro i. A tout étape i,
est associée la variable d’état Xi dont la valeur correspond à l’état de
l’étape. Une étape peut ainsi être :
– active : dans ce cas Xi = 1,
– inactive :dans ce cas Xi = 0.

1 7 8

étape initiale n° 1 inactive étape n° 7 inactive étape n° 8 active


X1 = 0 X7 = 0 X8 = 1
Le Grafcet
 Les actions : à chaque étape est associée une ou plusieurs actions.
L’action est réalisée dès que l’étape est activée et se poursuit tant
que l’étape est active. Ces actions peuvent être :
– externes : ordre envoyé à la partie opérative ou dialogue.
– internes : ordre envoyé à la partie commande

Descendre Rotation Incrémenter


5 6
perceuse foret le compteur C

actions externes action interne


Le Grafcet
 Les transitions : elles expriment les possibilités d’évolution entre deux
ou plusieurs étapes. Une transition peut être :
– validée si toutes les étapes immédiatement reliées à cette
transition sont actives.
– non validée si les étapes immédiatement reliées a cette transition
ne sont pas toutes actives (si une étape est inactive).

5 6 7
5

(1)
étape
étapen°n°55inactive
active
transition
transition
non
validée
validée
transition
transition non
(1)(1) validée
validée
Le Grafcet
 Les réceptivités : associées à chaque transition, elles expriment les
conditions nécessaire pour passer d’une ou plusieurs étapes à une ou
plusieurs autres étapes. Une transition peut être :
– vraie si la condition correspondante est vérifiée.
– fausse si la condition correspondante n’est pas vérifiée.

5 5 5 5 5 5

Bouton m
m ab c=12 T>200°C X11
enclenché

6 6 6 6 6 6
Le Grafcet
 Franchissement d’une transition : une transition peut être :
– franchissable si elle est validée et si la réceptivité associée est
vraie. Lors de son franchissement, toutes les étapes précédent la
transition sont désactivées et toutes les étapes suivant la
transition sont activées.
– non franchissable si la transition n’est pas validée ou si la
réceptivité est fausse.

5 étape n° 5 inactive
active

transition non
validée
validée transition non
a=1
0 a
réceptivité vraie
fausse franchissable

6 étape n° 6 active
inactive
Le Grafcet
 Les arcs (liaisons) orientés : dans un Grafcet, il y a toujours
alternance entre étapes et transitions. Les arcs orientés relient les
étapes aux transitions et les transitions aux étapes. Un Grafcet se lit
de haut en bas et les liaisons descendantes ne sont pas fléchées.
Toute autre orientation doit être renseignée par une flèche indiquent
le sens de la liaison.

m  h

1 D R

2 M R

h
Le Grafcet
 Les temporisations
 Une variable de temporisation δ est une variable logique dont le mode
d’évaluation permet de prendre en compte le temps.
 En général, δ est égale à 1 dès qu’un délais de q secondes s’est
écoulé après le changement d’état de 0 à 1 d’une variable d’entrée E
(temporisation à l’appel). δ s’écrit alors :

δ=t/E/q

 La variable d’entrée est soit :


– Une variable d’état Xi : t / Xi / 10s
– Une variable externe : t / a / 10s
Le Grafcet
 Les différents types de temporisations :
– Temporisation à l’appel : t / x / T0

chronogramme :
x

t
t/x/T0 T0 T0

symbole :
x %TMi t/x/T0

ti / x / T0
Le Grafcet
 Autres éléments du Grafcet
 La séquence unique
– Elle est composée d’une suite d’étapes pouvant être activées les
unes après les autres.
– Chaque étape n’est suivie que d’une seule transition et chaque
transition n’est validée que par une seule étape.
– La séquence est dite active si au moins une étape est active. Elle
est dite inactive si toute les étapes sont inactives

r1

r2

r3
Le Grafcet
– Exemple : Alimentation d’une machine outil
po OP RG RD
pf FP d g m

av ar
Tapis A AV AR
h
a MB

DB
Tapis C
b

c
Le Grafcet
Conditions initiales
po
d

ar

h
Le Grafcet
1/ Appui sur m.

m
Le Grafcet
2/ Nous attendons une pièce en a.

a
Le Grafcet
3/ Nous avançons le bras jusqu’à ce que le bras soit en avant.

av
AV
Le Grafcet
4/ Nous fermons la pince jusqu’à ce que la pince soit fermée.

pf FP
Le Grafcet
5/ Nous rentrons le bras jusqu’à ce que le bras soit en arrière.

ar
AR
Le Grafcet
6/ Rotation du bras vers la gauche.

RG
g
Le Grafcet
7/ Nous descendons le bras jusqu’à ce que le bras soit en bas.

DB
b
Le Grafcet
8/ Nous attendons que le tapis C soit vide.

c
Le Grafcet
9/ Avance du bras jusqu’à ce que le bras soit en avant.

av
AV
Le Grafcet
10/ Nous ouvrons la pince jusqu’à ce que la pince soit ouverte.
po OP
Le Grafcet
11/ Retour en position initiales (attention, il faut décomposer les actions).
po
d

ar

h
Le Grafcet
– Question : Réalisez le Grafcet niveau 1 correspondant au cahier
des charges. 0

h∙ar∙d∙po∙m
1

2 AV

av

3 FP

pf

4 AR
ar
Le Grafcet
1

a
2 AV

av

3 FP

pf

4 AR

ar

5 RG
g
Le Grafcet
2 AV

av
3 FP

pf

4 AR

ar

5 RG

6 DB
b
Le Grafcet
3 FP

pf
4 AR

ar

5 RG

6 DB

7
c
Le Grafcet
4 AR

ar
5 RG

6 DB

8 AV
av
Le Grafcet
5 RG

g
6 DB

8 AV

av

9 OP
po
Le Grafcet
6 DB

b
7

8 AV

av

9 OP

po

10 AR
ar
Le Grafcet
7

c
8 AV

av

9 OP

po

10 AR

ar

11 MB
h
Le Grafcet
8 AV

av
9 OP

po

10 AR

ar

11 MB

12 RD
d
Le Grafcet

0
h∙ar∙d∙po∙m

2 AV

av

3 FP

pf
4 AR

ar
Le Grafcet
– Grafcet final :

0
h∙ar∙d∙po∙m
1
a
2 AV
av
3 FP
pf
4 AR
ar
5 RG
g
6 DB
b
7
c
8 AV
av
9 OP
po
10 AR
ar
11 MB
h
12 RD
d
Le Grafcet
 Les divergences et convergences en OU :
– C’est une sélection de séquence selon certaines conditions
données par les réceptivités associées aux transitions.
– Une divergence en OU commence toujours par des
transitions et une convergence en OU se termine toujours
par des transitions.

4 5 6 7

r1 r2 r3
r1 r2 r3

5 6 7 8

divergence en OU convergence en OU

– Cas particuliers : saut d’étapes et reprise de séquence.


Le Grafcet
– Exemple : Aiguillage

G D

A g B1
a AG AD b1
m1 d

m2

B2
b2
Le Grafcet
1/ L’opérateur appui sur m2.

A B1

m2

B2
Le Grafcet
2/ Nous positionnons l’aiguillage à droite.

A B1

AD
d

B2
Le Grafcet
3/ Nous emmenons le chariot en b2.

A B1

B2
b2
Le Grafcet
4/ L’opérateur appuie sur m2 pour renvoyer le chariot en a.

A B1

m2

B2
Le Grafcet
5/ Retour du chariot en a.

A B1
a

B2
Le Grafcet
– Question : Réalisez le Grafcet niveau 1 correspondant au cahier
des charges. 0

a∙m1 a∙m2

1 AG 5 AD

g d

2 D 6 D

b1 b2

3 7
m1 m2
4 G 8 G

a a
Le Grafcet
0

a∙m1 a∙m2

1 AG 2 AD

g d

3 D

b1 + b2

m1∙b1 + m2∙b2
5 G

a
Le Grafcet
– Exemple : Reprise de séquence

a2 G2 D2 b2 m

po OP M
h pf FP
c1
D
a1 G1 D1 b1
c2

v p
Le Grafcet
1/ Appui sur m.

m
Le Grafcet
2/ Descente de la pince jusqu’en c2.

c2
Le Grafcet
3/ fermeture de la de la pince.

pf FP
Le Grafcet
4/ Montée de la de la pince jusqu’en h.

M
h
Le Grafcet
5/ Déplacement de la pince jusqu’en b2.

D2 b2
Le Grafcet
6/ Descente de la pince jusqu’en c1.

c1
D
Le Grafcet
7/ Ouverture de la pince.

po OP
Le Grafcet
8/ Montée de la pince jusqu’en h.

M
h
Le Grafcet
9/ Déplacement de la pince jusqu’en a2.

a2 G2
Le Grafcet
10/ Descente de la pince jusqu’en c2.

c2
Le Grafcet
11/ fermeture de la de la pince.

pf FP
Le Grafcet
12/ Montée de la de la pince jusqu’en h.

M
h
Le Grafcet
13/ Déplacement de la pince jusqu’en b2.

D2 b2
Le Grafcet
14/ Descente de la pince jusqu’en c1.

c1
D
Le Grafcet
15/ Ouverture de la pince.

po OP

p
Le Grafcet
16/ Montée de la pince jusqu’en h.

M
h
Le Grafcet
17/ Déplacement de la pince jusqu’en a2.

a2 G2
Le Grafcet
18/ Déplacement du chariot jusqu’en b1.

D1 b1
Le Grafcet
19/ Attente du chariot vide.

v
Le Grafcet
20/ Déplacement du chariot jusqu’en a1.

a1 G1
Le Grafcet
– Question : Réalisez le Grafcet niveau 1 correspondant au cahier
des charges. 0

a1∙a2∙h∙po.v∙m
1 D

c2

2 FP

pf

3 M

4 D2
b2
Le Grafcet
1 D

c2
2 FP

pf

3 M

4 D2

b2

5 D
c1
Le Grafcet
2 FP

pf
3 M

4 D2

b2

5 D

c1

6 OP
po
Le Grafcet
3 M

h
4 D2

b2

5 D

c1

6 OP

po

7 M
h
Le Grafcet
4 D2

b2
5 D

c1

6 OP

po

7 M

8 G2
a2
Le Grafcet
5 D

c1
6 OP

po

7 M

8 G2

a2

p p
Le Grafcet
0

a1∙a2∙h∙po.v∙m

1 D

c2
2 FP
pf

3 M

4 D2

b2
Le Grafcet
5 D

c1
6 OP

po

7 M

8 G2

a2

p p
Le Grafcet
6 OP

po
7 M

8 G2

a2

p p

10 D1

b1
Le Grafcet
7 M

h
8 G2

a2

p p

10 D1

b1

11

v
Le Grafcet
8 G2

a2
9

p p
10 D1
b1

11

12 G1

a1
Le Grafcet
0

a1∙a2∙h∙po.v∙m

1 D

c2
2 FP
pf

3 M

4 D2

b2
Le Grafcet
– Grafcet final

0
a1∙a2∙h∙po.v∙m

1 D
c2
2 FP
pf
3 M
h
4 D2
b2
5 D
c1
6 OP
po
7 M
h
8 G2
a2
9

p p
10 D1
b1
11
v
12 G1
a1
Le Grafcet
 Les divergences et convergences en ET (parallélisme structural) :
– Le but est de permettre l’exécution simultanée de plusieurs
séquences en même temps.
– Une divergence en ET commence toujours par des étapes et
une convergence en ET se termine toujours par des étapes.

7 4 5 6

r1
r1

8 9 10 7

divergence en ET convergence en ET
Le Grafcet
– Exemple : Transport aérien
D2 c
Co=1 C
G2
Co=0 Cabine 2
D1
m b1 b2
G1 B OP2 po2
Cabine 1 FP2 pf2
a
A
OP1 po1
FP1 pf1
Le Grafcet
1/ Conditions initiales et appui sur m.

A
Le Grafcet
2/ Fermeture des portes des deux cabines.

B
FP2 pf2

FP1 pf1
Le Grafcet
3/ Déplacement des deux cabines vers la station intermédiaire B.

C
G2

D1
b1 b2
B

A
Le Grafcet
4/ Ouverture des portes des cabines arrivés en B.

B OP2 po2

A
OP1 po1
Le Grafcet
5/ Attente de la fin de la temporisation de durée T0.

A
Le Grafcet
6/ Fermeture des portes des deux cabines.

B
FP2 pf2

FP1 pf1
Le Grafcet
7/ Déplacement des deux cabines vers leur station de départ.
D2 c
C

G1 B

a
A
Le Grafcet
8/ Ouverture des portes des deux cabines.

B OP2 po2

A
OP1 po1
Le Grafcet
9/ Arrêt si Co=0 ou attente de la fin de la temporisation
de durée T1 avant de démarrer un nouveau cycle si Co=1.

Co=1 C

A
Le Grafcet
– Question : Réalisez le Grafcet
0 niveau 1 correspondant au cahier
des charges.
a∙c∙po1∙po2∙m

1 FP1 2 FP2

pf1 pf2
3 D1 4 G2
b1 b2

5 OP1 6 OP2

po1 po2

7 8

t / b1∙b2 / T0
Le Grafcet
1 FP1 2 FP2

pf1 pf2

3 D1 4 G2

b1 b2

5 OP1 6 OP2

po1 po2

7 8

t / b1∙b2 / T0

9 FP1 10 FP2

pf1 pf2
Le Grafcet
3 D1 4 G2

b1 b2

5 OP1 6 OP2

po1 po2

7 8

t / b1∙b2 / T0

9 FP1 10 FP2
pf1 pf2
11 G1 12 D2

a c
Le Grafcet
5 OP1 6 OP2

po1 po2

7 8

t / b1∙b2 / T0

9 FP1 10 FP2

pf1 pf2

11 G1 12 D2
a c
13 OP1 14 OP2

po1 po2
Le Grafcet
7 8

t / b1∙b2 / T0

9 FP1 10 FP2

pf1 pf2

11 G1 12 D2

a c

13 OP1 14 OP2
po1 po2
15 16

=1
Le Grafcet
9 FP1 10 FP2

pf1 pf2

11 G1 12 D2

a c

13 OP1 14 OP2

po1 po2

15 16

=1

17

Co = 0 Co = 1
Le Grafcet
0

a∙c∙po1∙po2∙m

1 FP1 2 FP2

pf1 pf2

3 D1 4 G2

b1 b2

5 OP1 6 OP2
po1 po2
7 8

t / b1∙b2 / T0
Le Grafcet
9 FP1 10 FP2

pf1 pf2

11 G1 12 D2

a c

13 OP1 14 OP2

po1 po2

15 16

=1

17

Co = 0 Co = 1
Le Grafcet
11 G1 12 D2

a c

13 OP1 14 OP2

po1 po2

15 16

=1

17

Co = 0 Co = 1
18

t / X18 / T1
Le Grafcet
0

a∙c∙po1∙po2∙m

1 FP1 2 FP2
pf1 pf2
3 D1 4 G2

b1 b2

5 OP1 6 OP2

po1 po2
7 8

t / b1∙b2 / T0
Le Grafcet
– Grafcet final
0
a∙c∙po1∙po2∙m

1 FP1 2 FP2
pf1 pf2
3 D1 4 G2
b1 b2
5 OP1 6 OP2
po1 po2
7 8

t / b1∙b2 / T0

9 FP1 10 FP2
pf1 pf2
11 G1 12 D2
a c
13 OP1 14 OP2
po1 po2
15 16

=1
17

Co = 0 Co = 1
18
t / X18 / T1
Les Réseaux de Petri
(RdP en abrégé)

4.1. Origine et domaines d'application


4.2. Présentation informelle
4.3. La formalisation
4.5. Raffinement et composition
4.6. Quelques extensions…

Master-SEER-RDP
4.1. Origine et domaines d'application

Master-SEER-RDP
4.1. RdP : origine et domaines d'application

Origine :
Idées de départ de Carl Adam Petri (thèse en 1962) :
– Un ensemble d'automates à états finis qui communiquent

– Avoir à la fois la représentation des automates

– Et celle des communications par les mêmes primitives


• communications asynchrones par échange de messages
• communication synchrones par rendez-vous, synchronisations, ressources
partagées

=> Graphes avec 2 types de nœuds « places » et « transitions »

Master-SEER-RDP
4.1. RdP : origine et domaines d'application

Domaines d'application :
– Systèmes de production, Autom. Prog. Ind., Grafcet
• Evaluation des performances, simulation à événements discrets

– Validation de protocoles de communication

– Systèmes temps réels, systèmes distribués, génie logiciel

– Systèmes d'information, gestion, interfaces homme-machine

– Modèles de raisonnement, planification

Master-SEER-RDP
4.2. Présentation informelle du
formalisme…

Master-SEER-RDP
4.2. RdP : présentation informelle

• Le formalisme des réseaux de Petri est un outil permettant l'étude de


systèmes dynamiques et discrets.

• Il s'agit d'une représentation mathématique permettant la modélisation


d'un système.

• L'analyse d'un réseau de Petri peut révéler des caractéristiques


importantes du système concernant sa structure et son comportement
dynamique.

• Les résultats de cette analyse sont utilisés pour évaluer le système et


en permettre la modification et/ou l'amélioration le cas échéant.

Master-SEER-RDP
4.2. RdP : présentation informelle

Démarche générale

Master-SEER-RDP
Master-SEER-RDP
4.2. RdP : présentation informelle

Concepts de base
– Condition
• Une condition est un prédicat ou une description logique d'un état du système.
• Une condition est vraie ou fausse.
• Un état du système peut être décrit comme un ensemble de conditions.

– Evénement
• Les événements sont des actions se déroulant dans le système.
• Le déclenchement d'un événement dépend de l'état du système.

– Déclenchement, précondition, postcondition


• Les conditions nécessaires au déclenchement d'un événement sont les
préconditions de l'événement.
• Lorsqu'un événement se produit, certaines de ses pré-conditions peuvent cesser
d'être vraies alors que d'autres conditions, appelées postconditions de l'événement
deviennent vraies.

Master-SEER-RDP
4.2. RdP : présentation informelle

Concepts de base

– Condition = Place P

– Evénement = Transition t

– précondition = arc Place -> Transition

P
t1 t2

– postcondition = arc Transition -> Place

P1 P2
Master-SEER-RDP
4.2. RdP : présentation informelle

Concepts de base

– Satisfaction d'une Condition = Jeton dans une Place

P P
vrai faux

Remarque : on peut avoir un nombre quelconque non borné de jetons dans une
place

Master-SEER-RDP
4.2. RdP : présentation informelle

Concepts de base
– Condition de franchissement d'une transition = satisfaction de toutes les places
préconditions de la transition

P2 P2'
P1 P1'
t1 t1'
non franchissable franchissable

– Effet du franchissement d'une transition = satisfaction de toutes les places


postconditions de la transition

P P
avant franchissement
t t après franchissement

P2 P1 P2
P1
Master-SEER-RDP
4.2. RdP : présentation informelle
Modélisation de systèmes avec ressources
– Pour certains systèmes, il est plus juste de raisonner en termes d'ensemble de ressources,
au sens large, qu'en termes de conditions-événements.
=> un jeton = une ressource
– Le nombre de jetons contenus dans une place reflète le nombre de ressources qu'elle
possède.
– Les jetons d'une place n'ont pas d'identité individuelle, autrement dit ils sont
indiscernables.
– Ces ressources sont consommées et produites par les événements du système.
– Les arcs entrants d'une transition peuvent être valués par un entier quelconque (non nul)
=> valuation = nombre de jeton nécessaires dans la place pour franchir la transition
=> si k est la valuation d'un arc d'une place P vers une transition T, le tir de la transition T retire k
jetons dans la place P
– Les arcs sortants d'une transition peuvent être valués par un entier quelconque (non nul)
=> valuation = nombre de jeton produits dans la place située après la transition
=> si k est la valuation d'un arc d'une transition T vers une place P, le tir de la transition T dépose k
jetons dans la place P
– Par défaut, les arcs sont valués par 1.

Master-SEER-RDP
4.2. RdP : présentation informelle

Concepts de base
– Exemples
3 3 P2'
P2 2
P1 2 P1'
t1 t1'
non franchissable franchissable

avant franchissement P P
2 2
t t après franchissement
3 3
P2 P1 P2
P1

Master-SEER-RDP
4.2. RdP : présentation informelle
Schémas particuliers

a b a b
b

indétermisme a ou b

indépendance a||b partage de ressource


séquence a;b (exclusion, conflit…)

Master-SEER-RDP
4.2. RdP : présentation informelle

T0
• Notions complémentaires
– Une transition-puit est une transition
P1
ayant une sortie vide.
P2
– Une transition-source est une
transition ayant une entrée vide. 2
– Une boucle est un circuit constitué T1
d'une seule place et d'une seule
P3
transition.
P4
– Un RdP sans boucle est dit pur

T2
2
– Exemple : P5

• T0 est une transition-source.


• T3 est une transition-puit.
T3

Master-SEER-RDP
4.2. RdP : présentation informelle

Exemple : les 5 philosophes

fourchette fourchette
gauche pense droite

mange

1 philosophe

=> composition par mise en commun des fourchettes


=> fusion des places « fourchette droite » du philosophe N et « fourchette
gauche » du philosophe N+1 (modulo 5)
Master-SEER-RDP
4.2. RdP : présentation informelle
• La situation est la suivante :
• cinq philosophes (initialement mais il peut y en avoir beaucoup plus) se trouvent autour d'une table ;
• chacun des philosophes a devant lui un plat de spaghettis;
• à gauche de chaque plat de spaghettis se trouve une fourchette.
• Un philosophe n'a que trois états possibles :
• penser pendant un temps indéterminé ;
• être affamé pendant un temps déterminé et fini ;
• manger pendant un temps déterminé et fini.
• Des contraintes extérieures s'imposent à cette situation :
• quand un philosophe a faim, il va se mettre dans l'état « affamé » et attendre que les fourchettes soient
libres ;
• pour manger, un philosophe a besoin de deux fourchettes : celle qui se trouve à gauche de sa propre
assiette, et celle qui se trouve à droite (c'est-à-dire les deux fourchettes qui entourent sa propre assiette) ;
• Le problème consiste à trouver un ordonnancement des philosophes tel qu'ils puissent tous manger,
chacun à leur tour. Cet ordre est imposé par la solution que l'on considère comme celle de Dijkstra
avec sémaphores ou Courtois avec des compteurs.

Master-SEER-RDP
4.2. RdP : présentation informelle

Exemple : les 5 philosophes

Philosophe 0 Philosophe 1 Philosophe 2 Philosophe 3 Philosophe 4

Master-SEER-RDP
4.3. La formalisation

4.3.1. Les bases de la formalisation


4.3.2. L’étude de la dynamique
4.3.3. L’étude de propriétés structurelles

Master-SEER-RDP
4.3. RdP : formalisation

• L'un des intérêts de ce formalisme, c'est la possibilité de vérifier


formellement des propriétés

• Nécessite le recours à la formalisation (matrice d'incidence, séquence de


franchissement, vecteur caractéristique, équation d'état)

• Propriétés structurelles (structure du réseau) et/ou comportementales


(évolution du réseau)

Master-SEER-RDP
4.3.1. Formalisation : les bases

Réseau de Petri: R = {P, T, Pre, Post}


– P = ensemble de places
– T = ensemble de transitions

– Pre = PxT  N places précédentes


Pre(p, t) = nombre de jeton nécessaire dans la place p pour le
franchissement de la transition t

– Post = PxT  N places suivantes


Post(p, t) = nombre de jeton produits dans la place p lors du
franchissement de la transition t

=> C = Post - Pre matrice d'incidence

Master-SEER-RDP
4.3.1. Formalisation : les bases

Réseau de Petri: R = {P, T, Pre, Post}


=> Représentation matricielle

Master-SEER-RDP
4.3.1. Formalisation : les bases

Réseau marqué: N = {R,M}


Le marquage d'un RdP R=(P, T, Pre, Post) est son état. Formellement, un
marquage est une application

M:PN

donnant pour chaque place le nombre de jetons qu'elle contient. Le marquage


initial est généralement noté M0.

Notation matricielle:
– Transitions en colonnes
– Places en lignes
– Marquage = vecteur colonne

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Dynamique (sémantique) d'un RdP


– Transition t franchissable
• une transition t est franchissable ssi, pour toute place p,

M(p) > Pre(p, t)

– Franchissement d'une transition t


• Si une transition t est franchissable à partir du marquage M, alors le
nouveau marquage de toute place p est
M'(p) = M(p) - Pre(p, t) + Post(p, t)
= M(p) + C(p, t)
avec C = Post - Pre (matrice d'incidence)

on note M —t M' (tir de la transition t à partir du marquage M)

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Dynamique (sémantique) d'un RdP


– Exemple
• t1 est franchissable car

2
Pre(., t1) = 0 < M0

• après le franchissement de t1
M = M0 - Pre(., t1) + Post(., t1)

2 1 1
2 1 0 5 0 1
= 3 - 0 + 0
0 6 4 7 3 0
0 0

2 2 5 5
= - + =
3 0 7 10

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Dynamique (sémantique) d'un RdP


– Exemple

• calcul direct avec la matrice d'incidence


M = M0 + C(., t1)
2 1
3 -1 1
= 3 + 0 = 5
7 -3 -4 10
0

donne (heureusement) le même résultat

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Dynamique (sémantique) d'un RdP : séquence de transitions

T1 T2 T3 T4
est une séquence de
transitions
franchissables

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Dynamique (sémantique) d'un RdP : séquence de transitions


Soit un RdP R=(P, T, Pre, Post) de marquage initial M0
Soit t1 t2 ... tn des transitions de T telles que
M0 —t1 M1 —t2 M2 … —tn Mn
alors, t1 t2 ... tn est appelée séquence de transitions franchissables
(successivement)

De plus
Mn = M + C . VsT
où Vs est le vecteur caractéristique de la séquence de transitions
s = t1 t2 ... tn
tel que Vs(t) donne le nombre d'occurrences de la transition t dans s
On note
M —s Mn
Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Equation d'état

Mf = M + C . VsT

Remarque :
s = s1 . s2 => Vs = Vs1 + Vs2
Vs1 = Vs2 => M + C . Vs1T = M + C . Vs2T même si s1s2

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Dynamique (sémantique) d'un RdP : séquence de transitions
Exemple :

T = {T1, T2, T3, T4}


VT2T3T4T1T3 = (1, 1, 2, 1)

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Remarques importantes :

– ATTENTION ! Le vecteur caractéristique ne fait que compter le nombre


d'apparition des transitions. Il ne donne pas, comme la séquence, l'ordre dans
lequel celles-ci ont lieu.

T = {T1, T2, T3} V = (1, 2, 1)

Le vecteur V ci-dessus est le vecteur de comptage de toutes les séquences de


franchissement suivantes :

<T1, T2, T3, T2>, <T3, T1, T2, T2>, <T3, T2, T2, T1>,
<T1, T3, T2, T2>, <T1, T2, T2, T3>, …

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Remarques importantes :

– ATTENTION ! L'équation d'état permet de calculer le marquage atteint après


franchissement d'une séquence de transitions. Elle ne permet pas de dire que la
séquence est franchissable !!

T1 T2 T3 T4
P1 P2 P3 P4 P5

La séquence <T1, T2, T3> est franchissable,


Les séquences <T2, T1, T3>, <T3, T2, T1>, <T2, T3, T1> ne le sont pas !
Elles ont pourtant même vecteur de comptage. L'équation d'état donnera donc
le même résultat pour les quatre.

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Aperçu (incomplet et approximatif) des raisonnements faisables sur un RdP
– Le rôle de l'équation d'état est de matérialiser, en termes de jetons, l'évolution du RdP.
Elle représente l'outil qui va permettre de calculer le résultat du franchissement de
transitions. En tant que tel, elle est nécessaire. Il faut toutefois l'utiliser correctement, en
pas à pas.

Eq. Eq. Eq.


M0 M1 M2 M3
Etat Etat Etat

Pb Pb Pb

L'équation d'état peut signaler un non-franchissement. Une transition est franchissable


s'il y a suffisamment de jetons dans chacune de ses places en entrée. La matrice
d'incidence fournit le nombre de jetons produits par le déclenchement de chaque
transition.

L'équation d'état appliquée à une séquence réduite à une transition fournit le nombre de
jetons qui restent après « exécution » de cette transition.
=> Si ce nombre est négatif, alors la transition n'est pas franchissable.
(Attention : réciproque fausse)
Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Aperçu… des raisonnements faisables…
– L'équation d'état peut également servir à autre chose. Il est possible de calculer
le marquage initial nécessaire pour franchir une séquence donnée et arriver à
un marquage donné. Le travail se fait, dans ce cas-là, « à l'envers ».
M0 = Mf - C . VsT
Eq. Eq. Eq.
M0 M1 M2 Mf
Etat Etat Etat

Pb Pb Pb P1
– Exemple : P2
Quel marquage initial pour le marquage final
2
Mf= [2, 5, 1, 4, 0] et la séquence <T1, T2, T2>
T1
=> calcul de M2
P3
x 2 0 -1 3 P4
y 5 -2 0 5
0
M2 = z = 1 - 1 -1
1 => M2 = 2
T2
t 4 0 -1 5 2
u 0 0 2 -2 Impossible : P5

Mf inaccessible
par T2
Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
P1
Aperçu… des raisonnements faisables… P2

– Autre Exemple : 2
Quel marquage initial pour le marquage final T1
Mf= [2, 5, 1, 4, 5] et la séquence <T1, T2, T2> P3
P4
2 0 -1 3
=> calcul de M2
5 -2 0 5
0 T2
M2 = 1 - 1 -1 = 2 2
1
4 0 -1 5 P5
5 0 2 3

=> calcul de M1 3 0 -1 4
5 -2 0 5
0
M1 = 2 - 1 -1 = 3
1
5 0 -1 6
3 0 2 1
=> calcul de M0 4
4 0 -1
5 -2 0 7
1
M0 = 3 - 1 -1 = 2
0
6 0 -1 6
1 0 2 1
Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Aperçu… des raisonnements faisables…

– L'équation d'état peut également déterminer le marquage initial minimal pour


franchir une séquence donnée, sans se préoccuper du marquage final.

M0 + C . VsT > 0

Eq. Eq. Eq.


M0 M1 M2 Mf > 0
Etat Etat Etat

Pb Pb Pb

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
P1
Aperçu… des raisonnements faisables… P2

– Exemple : 2
Quel marquage initial minimal permettant le franchissement T1
de la séquence <T1, T2, T2> P3
=> calcul des contraintes sur M2 P4

x 0 -1 0 x 1
y -2 0 0 y 0 T2
0 2
M2 = z + 1 -1 > 0 => z > 1
1 P5
t 0 -1 0 t 1
u 0 2 0 u 0

=> calcul des contraintes sur M1


x 0 -1 1 x 2
y -2 0 0 y 0
0
M1 = z + 1 -1 > 1 => z > 2
1
t 0 -1 1 t 2
u 0 2 0 u 0 x 2
y 2
=> calcul de M0 M0 = z > 1
t 2
u 0
Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques

Marquage accessible et graphe de marquage


– Marquages accessibles (ou successeurs)
• Un marquage M' est un marquage accessible (successeur de M) s'il existe
une séquence de transitions s tel que
M —s M'

• L'ensemble des marquages accessibles depuis M est noté A(R,M)

– Graphe des marquages accessibles


• Le graphe des marquages accessibles, noté GA(R,M), est le graphe ayant
comme sommets les marquages de A(R,M) et tel qu'il existe un arc entre
deux sommets M1 et M2 si et seulement si
M1 —t M2
où t est une transition du RdP

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Marquage accessible et graphe de marquage
Exemple :

Master-SEER-RDP
4.3.2. Formalisation : propriétés structurelles
Exemple
Graphe de marquage :
Idle1 Idle2
1 (Idle1
0
d1 d2 1 Idle2
f1 f2
Busy1 Res Busy2 0
1 Res)
f1 f2

T= (d1, f1, d2, f2) 0 0


d1 d2
(Busy1) 1 0
Idle1 -1 1 0 0 0 0
Busy1 1 -1 0 0 0 (Busy2) 1
P= Idle2 C= 0 0 -1 1 0 0
Busy2 0 0 1 -1
Res -1 1 -1 1

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Marquage accessible et graphe de marquage

Remarque importante : le graphe des marquage peut être infini


=> dans ce cas, le RdP est non borné

Exemple :

(1) —t (2) —t (3) —t (4) —t …


2
t

Master-SEER-RDP
4.3.2. Formalisation : propriétés dynamiques
Propriétés des RdP
– Place et RdP k-bornés
• Une place est dite k-bornée pour un marquage initial si sa marque ne
dépasse jamais k (binaire si k=1)
• Un RdP est k-borné si toutes les places le sont
• C'est une propriété décidable, grâce à la monotonie
– Transition et RdP vivants
• Une transition est dite quasi-vivante pour un marquage M s'il existe un
marquage accessible à partir de M permettant de la franchir
• Une transition est dite vivante si elle est quasi vivante pour tout marquage
accessible à partir de M0
• Un RdP est dit vivant si toutes ses transitions le sont
– Un RdP ne contient pas de blocage s'il peut continuellement évoluer
– Un RdP est dit réinitialisable si M0 est accessible à partir de tout
marquage accessible à partir de M0

Master-SEER-RDP
4.5. Raffinement (top-down) et composition

Ou, comment modéliser un système complexe en


Réseaux de Petri … ?
– Raffinement
– Composition
– Exemple

Master-SEER-RDP
4.5. Raffinement et composition de RdP

Raffinage :
Principe :
– substituer une transition par un bloc "bien formé"
=> on introduit des détails en conservant les "bonnes" propriétés

=> bloc

Master-SEER-RDP
4.5. Raffinement et composition de RdP

Raffinement :
Blocs bien formés standards :

séquence do-while fork-join


if-then-else

Master-SEER-RDP
4.5. Raffinement et composition de RdP

Composition asynchrone
Principe : fusion de places

ent1 ent2

a c

p3 p4

p1 p2
b d

Master-SEER-RDP
4.5. Raffinement et composition de RdP

Composition synchrone
Principe : fusion de transitions

ent1 ent2

te
a
b

Master-SEER-RDP
4.5. Raffinement et composition de RdP

Exemple : un système de transport par chariots filoguidés


Contraintes :
– Un seul chariot par section
– Un seul chariot en mouvement par cellule

5
cellule 2-4
4
1 2

Master-SEER-RDP
4.5. Raffinement et composition de RdP

Zone de mouvement
– Une section : (Mvt)

Zone d'attente pour entrer dans


la section suivante
(Porte)

e.s.2 Mvt2 a.p.2 Porte2 s.s.2

(par exemple pour la section 2)

Sec.libre2

Master-SEER-RDP
4.5. Raffinement et composition de RdP

– Une section :
contrainte : un seul chariot en mouvement dans la section 2-4
=> introduction d'une place « espace »

Espace2

e.s.2 Mvt2 a.p.2 Porte2 s.s.2

Sec.libre2

Master-SEER-RDP
4.5. Raffinement et composition de RdP

– Une section :
contrainte : un seul chariot en mouvement dans la section 2-4
=> introduction d'une place « espace »
=> fusion des places « Espace » des sections 2 et 4

Sec.libre4

e.s.4 Mvt4 a.p.4 Porte4 s.s.4

Espace
e.s.2 a.p.2 Porte2 s.s.2

Mvt2

Sec.libre2

Master-SEER-RDP
4.5. Raffinement et composition de RdP

– Réseau de sections :
contrainte : un seul chariot par section
=> fusion des transitions s.s.1 et e.s.2, s.s.3 et e.s.4, s.s.4 et e.s.5

Sec.libre3 Sec.libre4 Sec.libre5

Mvt4
Mvt3 Porte3 Porte4 Mvt5 Porte5
Espace

Porte1 Mvt2 Porte2

Mvt1

Sec.libre1 Sec.libre2

Master-SEER-RDP
4.6. Quelques extensions…

– Les réseaux colorés


– Les arcs inhibiteurs

Master-SEER-RDP
4.6. Extensions

Motivations des extensions

– Certaines propriétés ne peuvent pas être exprimées à l'aide des réseaux


usuels

– Nécessité de réduire la taille des modélisations

– Besoin d'avoir une information plus précise sur les jetons transitant
dans le réseau

Master-SEER-RDP
4.6. Extensions : RdP colorés

Les RdP colorés


– Les jetons sont « typés » par des couleurs.
– Le nombre de couleurs est fini.
– Ces réseaux permettent de représenter de manière compacte des
systèmes ayant des composantes aux comportements identiques.

=> Différentes couleurs de franchissement associées à chaque transition


• fonctions associées aux arcs
• couleur : par exemple un n-uplet
• disparition/création de couleurs par le franchissement de transitions

Master-SEER-RDP
4.6. Extensions : RdP colorés

Les RdP colorés


– Exemple

Master-SEER-RDP
4.6. Extensions : RdP colorés

Les RdP colorés

– Un rdP coloré n'est qu'une représentation avec un graphisme condensé


d'un rdP ordinaire.

=> Les propriétés d'un rdP coloré sont les mêmes que celles des rdP
ordinaires,

Master-SEER-RDP
4.6. Extensions : arc inhibiteurs

Propriété inexprimable : le test à zéro

– Dans le cas général, il est impossible de tester si le contenu d'une place


est vide: autrement dit, il est impossible de définir un RdP pour lequel
une transition est tirable si une place donnée ne contient pas de jeton.

– Intuitivement, le « test à zero » est en contradiction avec le principe de


monotonie (dans les RdP traditionnels)

– Dans les RdP traditionnels, la valuation à zéro équivaut à une absence


d'arc...

Master-SEER-RDP
4.6. Extensions : arc inhibiteurs

Arc inhibiteur
– La transition est tirable si et seulement si la place d'entrée est vide.

=> Pouvoir d'expression très grand


• Les RdP à arcs inhibiteurs ont la même puissance de calcul qu'une
machine de Turing, en particulier grâce au test "si Pr=0 alors aller en Pei
sinon aller en Pej" qui permet de modéliser toute forme de branchement
(boucles, tests).
• Une place qui serait place de sortie de toute transition du RdP ne sera
bornée que si l'activité est de durée finie.
• Le bornage d'un RdP à arcs inhibiteurs est donc un problème équivalent à
celui de l'arrêt d'une machine de Turing, donc indécidable (de même que
les propriétés d'accessibilité et de vivacité).

Master-SEER-RDP
4.7. Conclusion

• formalisme d'emploi relativement aisé, ayant fort peu d'éléments de base

• formalisme utilisé dans des domaines très différents

• formalisme ayant un atout indéniable : son « arsenal » théorique

• formalisme orienté modèle - trop « limité » pour représenter finement un


logiciel

=> Exercices en TD n°1.

Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
• http://grif-workshop.fr/modules/package-
simulation/module-petri/

Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP
Master-SEER-RDP

Vous aimerez peut-être aussi