ELE1300 Kesséssa? Étapes de l`algorithme Étapes de l algorithme

ELE1300
Quine-McCluskey
Kesséssa?
Kesséssa?
Quine-McCluskey est une méthode (un algorithme) de
sim
p
lification de fonctions lo
g
i
q
ues
pgq
Une table de Karnau
g
h
p
ermet de sim
p
lifier une
gp p
fonction de 2 à 6 variables maximum. Au-delà, Quine-
McCluskey prend le relais (utile jusqu’à 10 variables)
L’algorithme de Q-MC est surtout destiné à une
utilisation logicielle Pour ce cours
utilisation
logicielle
.
Pour
ce
cours
,
IL EST IMPORTANT DE SAVOIR L’EXÉCUTER
2
Étapes de l
algorithme
Étapes
de
l algorithme
1. Exprimer la fonction sous forme canonique disjonctive
2. Ex
p
rimer les minterms sous forme binaire
p
3. Grouper les termes selon leurs poids
4. Unir les termes deux à deux
5. Répéter l’étape (4) autant de fois que nécessaire
6. Identifier les impliquants premiers
7. Identifier les impliquants premiers essentiels
8. Vérifier si la fonction est entièrement exprimée par ses impliquants
il l ê
essent
i
e
l
s, auque
l
cas arr
ê
te
r
9. Si on n’a pas fini à l’étape (8), choisir les impliquants premiers appropriés
3
Exemple simple:
Exemple
simple:
On va illustrer la technique sur un exemple à trois
variables
variables
(que l’on pourrait aussi bien résoudre
au moyen d’une table de Karnaugh)
F(A,B,C) = AB+AB+AC+BC
4
Ex
i
n
l’
l
ri
hm
-M
C
C
1. Exprimer la fonction sous forme canonique disjonctive
F(A B C)
=
AB+AB+AC+BC
F(A
,
B
,
C)
AB+AB+AC+BC
= ABC+ABC+ABC+ABC+ABC+ABC
2. Exprimer la fonction sous forme binaire
F(A,B,C) = 001+010+011+100+101+111
3. Grouper les termes selon leur poids (somme des bit de 1)
Poids 1 Poids 2 Poids 3
001
010 011
101 111
5
100
Exécution de l
algorithme Q
-
MC (…)
Exécution
de
l algorithme
Q
MC
(…)
4. Unir les termes deux à deux
001
0x1
001
010
100
0x1
x01
01x
011
101
10x
x11
1x1
111
1x1
6
Exécution de l
algorithme Q
-
MC (…)
Exécution
de
l algorithme
Q
MC
(…)
5. Répéter l’étape (4) autant de fois que nécessaire
001
010
0x1
x01
xx1
xx1
xx1
010
100
011
x01
01x
10x
xx1
101
111
x11
1x1
7
Exécution de l
algorithme Q
-
MC (…)
Exécution
de
l algorithme
Q
MC
(…)
6. Identifier les impliquants premiers
001
0x1
xx1
001
010
100
0x1
x01
01x
xx1
011
101
10x
x11
1x1
Les impliquants premiers (pas de crochet):
01x 10x xx1
111
1x1
01x
,
10x
,
xx1
Ce qui donne, respectivement:
AB AB C
8
AB
,
AB
,
C
Exécution de l
algorithme Q
-
MC (…)
Exécution
de
l algorithme
Q
MC
(…)
7. Identifier les impliquants premiers essentiels
001
010
100
011
101
111
1 2 3 64 5
01x
10x
001
010
100
011
101
111
**
**
xx1 * ***
On cherche les colonnes où se retrouve un seul signe, Les lignes
correspondantes sont des impliquants premier.
Iit l i li t i t til
9
I
c
i
,
t
ous
l
es
i
mp
li
quan
t
s prem
i
ers son
t
essen
ti
e
l
s
Exécution de l
algorithme Q
-
MC (…)
Exécution
de
l algorithme
Q
MC
(…)
8. Vérifier si la fonction est entièrement exprimée par les impliquants premiers
essentiels. Auquel cas arrêter.
001
010
100
011
101
111
01x
10x
001
010
100
011
101
111
**
**
xx1 * ***
NOTE : Comme tous les impliquants de la fonction F sont ici essentiels, la
condition est forcément remplie
10
condition
est
forcément
remplie
.
Exécution de l
algorithme Q
-
MC (…)
Exécution
de
l algorithme
Q
MC
(…)
Conclusion:
F(A,B,C) = AB+AB+C
Ce que nous aurions pu trouver avec une table de Karnaugh:
Ce
que
nous
aurions
pu
trouver
avec
une
table
de
Karnaugh:
0100 1011
0 1
4 5
1
03 2
7 6
1
0
1
1
1
1
0
1
11
Un exemple plus costaud
Un
exemple
plus
costaud
Étape 1 : Exprimer la fonction sous forme canonique disjonctive.
0000 0
0001 0
A
BCD S
0010 1
0011 0
0100 1
0101 1 SABCDABCDABCD
0110 1
0111 1
1000 0
1001 1
A
BCDABCDABCDABCD
1001 1
1010 0
1011 0
1100 0
1101 1
12
1101 1
1110 0
1111 0
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
Étape 2 : Exprimer les « mintermes » sous forme binaire.
0010 0100 0101 0110 0111 1001 1101
SABCDABCDABCDABCDABCDABCDABCD
Étape 3 : Grouper les termes selon leurs poids (nombre de 1).
0010
poids 1
0100
0101
0110
poids
1
poids 2
0110
1001
0111
poids
2
13
1101
poids 3
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
Étape 4 :
Comparer chaque terme d
un groupe avec chacun des termes du groupe suivant
Comparer
chaque
terme
dun
groupe
avec
chacun
des
termes
du
groupe
suivant
.
Si deux termes diffèrent par un seul bit, un nouveau terme est produit avec un
«» à la position où il y a différence. Marquer les deux termes ayant engendré
un nouveau terme
un
nouveau
terme
.
0010
0100
010 0010
0100
010
0
1
0
0100
0101
0110
0100
0101
0110
0
1
0
0110
1001
0111
0110
1001
0111
14
1101 1101
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
0010
0100
010
010
0010
0100
010
010
0101
0110
0100101
0110
010
011
1001
0111
1101
1001
0111
1101
1101
1101
15
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
0010
0100
010
010
0010
0100
010
010
0101
0110
010
011
0101
0110
010
011
1001
0111
1101
1001
0111
1101
101 101
011
1101
1101
16
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
0010
0100
010
010
0101
0110
010
011
1001
0111
1101
101
011
1
01
1101
1
01
17
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
Étape 5 : Répéter l’étape 4 avec les nouveaux termes jusqu’à ce qu’il n’y ait plus
d’association possible.
0010
0
10
01

0010 010 01
0010
0100
0101
0
10
010
010
01

0100
0101
010
010
0110
1001
0111
011
101
011
0110
1001
0111
011
101
011
0111
1101
011
101
0111
1101
011
101
18
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
Étape 6 : Identifiez les implicants premiers ; ce sont les termes n’ayant pas été
associés à d’autres.
0010 010 01
**
0100
0101
010
010
0110
1001
0111
011
101
011
*
0111
1101
011
101
**Implicant premier
19
Un exemple plus costaud (…)
Un
exemple
plus
costaud
(…)
Étape 7 : Associer chaque implicant premier avec les termes de la fonction qu’ils
peuvent représenter et identifier les implicants premiers essentiels.
0
10
0010 0100 0101 0110 0111 1001 1101
0
10
101
*
*
*
*
101
01

**
****
01

*
Ilit i til
20
*
I
mp
li
can
t
prem
i
er essen
ti
e
l
1 / 9 100%