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

publicité
Kesséssa?
ELE1300

Quine-McCluskey est une méthode (un algorithme) de
simplification
p
de fonctions logiques
gq

Une table de Karnaugh
g ppermet de simplifier
p
une
fonction de 2 à 6 variables maximum. Au-delà, QuineMcCluskey prend le relais (utile jusqu’à 10 variables)

L’algorithme de Q-MC est surtout destiné à une
utilisation logicielle.
logicielle Pour ce cours,
cours
IL EST IMPORTANT DE SAVOIR L’EXÉCUTER
Quine-McCluskey
2
Étapes de ll’algorithme
algorithme
1.
Exprimer la fonction sous forme canonique disjonctive
2.
Exprimer
p
les minterms sous forme binaire
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
essentiels,
i l auquell cas arrêter
ê
9.
Si on n’a pas fini à l’étape (8), choisir les impliquants premiers appropriés
3
Exemple simple:

On va illustrer la technique sur un exemple à trois
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écution
écut o de l’algorithme
a go t e Q-MC
Q C
Exécution de ll’algorithme
algorithme Q
Q-MC
MC (…)
1. Exprimer la fonction sous forme canonique disjonctive
4. Unir les termes deux à deux
F(A B C) = AB+AB+AC+BC
F(A,B,C)
= ABC+ABC+ABC+ABC+ABC+ABC
001
010
100
2. Exprimer la fonction sous forme binaire
011
101
F(A,B,C) = 001+010+011+100+101+111
111
3. Grouper les termes selon leur poids (somme des bit de 1)
Poids 1
Poids 2
Poids 3
001
010
100
011
101
0x1
x01
01x
10x
x11
1x1
111
5
6
Exécution de ll’algorithme
algorithme Q
Q-MC
MC (…)
Exécution de ll’algorithme
algorithme Q
Q-MC
MC (…)
5. Répéter l’étape (4) autant de fois que nécessaire
6. Identifier les impliquants premiers
001
010
100
011
101
111
0x1
x01
01x
10x
x11
1x1
xx1
xx1
001
010
100
xx1
011
101
111
Les impliquants premiers (pas de crochet):
01x 10x
01x,
10x, xx1
Ce qui donne, respectivement:
AB AB
AB,
AB, C
7
0x1
x01
01x
10x
x11
1x1
8
xx1
Exécution de ll’algorithme
algorithme Q
Q-MC
MC (…)
Exécution de ll’algorithme
algorithme Q
Q-MC
MC (…)
7. Identifier les impliquants premiers essentiels
8. Vérifier si la fonction est entièrement exprimée par les impliquants premiers
essentiels. Auquel cas arrêter.
1
2
3
4
5
6
001
010
100
011
101
111
01x
10x
xx1
*
001
01x
10x
xx1
*
*
*
*
*
*
On cherche les colonnes où se retrouve un seul signe, Les lignes
correspondantes sont des impliquants premier.
I i tous
Ici,
t
les
l impliquants
i li
t premiers
i sontt essentiels
ti l
9
*
100
*
011
101
111
*
*
*
*
*
*
*
NOTE : Comme tous les impliquants de la fonction F sont ici essentiels, la
condition est forcément remplie.
remplie
10
Exécution de ll’algorithme
algorithme Q
Q-MC
MC (…)
Conclusion:
Un exemple plus costaud
Étape 1 : Exprimer la fonction sous forme canonique disjonctive.
F(A,B,C) = AB+AB+C
Ce que nous aurions pu trouver avec une table de Karnaugh:
00
01
0
0
0
1
1
11
1
1
4
11
010
3
1
5
1
10
2
1
7
1
6
0
12
A B C
D
S
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
S  ABC D  ABC D  ABCD
 ABC D  ABCD  A BCD  ABCD
Un exemple plus costaud (…)
Un exemple plus costaud (…)
Étape 4 :
Étape 2 : Exprimer les « mintermes » sous forme binaire.
S  ABC D  ABC D  ABCD  ABC D  ABCD  ABCD  ABCD
0010
0100
0101
0110
0111
1001
1101
Étape 3 : Grouper les termes selon leurs poids (nombre de 1).
Comparer chaque terme dd’un
un groupe avec chacun des termes du groupe suivant.
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
terme.
poids 2
010
0100
0100
010
010
0101
0101
0010
0100
0101
010
0110
0110
0110
1001
1001
1001
0111
poids 3
1101
13
0111
0111
1101
1101
14
Un exemple plus costaud (…)
15
0010
0010
poids 1
Un exemple plus costaud (…)
0010
010
0010
010
0010
010
0010
010
0100
010
0100
010
0100
010
0100
010
0101
010
0101
010
0101
010
0101
010
0110
0110
011
0110
011
0110
011
1001
1001
1001
101
1001
101
0111
0111
0111
0111
011
1101
1101
1101
1101
16
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
0100
010
0010
010
0101
010
0100
0010
010
010
0100
010
0101
010
0101
010
0110
011
1001
101
0110
011
0110
011
0111
011
1001
101
1001
101
1101
101
0111
011
0111
011
1101
101
1101
101
17
01
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.
Étape 7 : Associer chaque implicant premier avec les termes de la fonction qu’ils
peuvent représenter et identifier les implicants premiers essentiels.
0010
0010
*
010
0100
010
0101
010
0110
011
1001
* 101
0111
011
1101
101
*
*
01
0 10
010
0100
0101
*
0110
0111
*
*
01
*
*
1101
*
101
20
1001
*
101
* Implicant premier
19
01
*
I li t premier
Implicant
i essentiel
ti l
*
*
*
Un exemple plus costaud (…)
Un exemple avec étape 9
Étape 8 : Vérifier si les implicants premiers essentiels sont suffisants pour
représenter tous les termes de la fonction. Si c’est le cas, la simplification est
terminée.
i é
0010
010
0100
0101
0110
*
0111
1101
*
101
*
*
101
01
1001
Autre exemple :
*
*
*
*
*
*
S  AC D  ACD  AB
010
101
01
21
D
S
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
S  ABC D  ABCD  ABC D  ABCD
 ABC D  ABCD  ABC D
 ABCD  ABC D  ABC D
22
Un exemple avec étape 9 (…)
0000
000
0001
000
0010
000
1000
*
0101
0110
010
1001
010
1010
100
1110
*
*
Un exemple avec étape 9 (…)
* 00
* 00
* 10
001
001
0111
0000
001
0001
0010
*
*
011
* Implicant premier
0101
0110
Meilleur choix
*
00
*
100
00
*
011
10
0111
*
*
1010
1110
*
*
*
*
*
*
S  ABD  BC  C D
24
1001
*
011
110
1000
*
011
110
23
A B C
*
*
*
Une méthode systématique
Un exemple parfait (…)
Autre exemple :
Pour réaliser l’étape (7, 8 et) 9 : Méthode de Petrick
A B C
S
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
Les implicants premiers :
001
011
011
00
00
10
x0
x1
x2
x3
x4
x5
Expression logique de la réalisation de la fonction :
P   x3  x4  x0  x3  x4  x5  x0  x1  x2  x5  x1  x2  x3  x4  x3  x4  x5  x5 
  x0  x1  x1  x2  x3  x5   x0 x1 x3 x5  x0 x2 x3 x5  x1 x3 x5  x1 x2 x3 x5
x
1
011
x
3
00
x
5
10
S  ABD  BC  C D
25
 A BC  ABC  ABC
26
Un exemple parfait (…)
000
001
010
101
110
111
*
*
*
*
*
*
Un exemple parfait (…)
000
001
00
*
*
00
*
010
101
110
111
00
0 0
00
01
01
10
10
11
11
10
* Implicant premier
11
11
27
S  ABC  ABC  ABC
28
*
*
*
*
*
*
*
*
*
Un exemple parfait (…)
Réduction du tableau
Méthode de Petrick.
Les implicants premiers :
Pour réaliser l’étape (7, 8 et) 9 : comme la Méthode de Petrick
00
00
01
10
11
11
x0
x1
x2
x3
x4
x5
« dominante » : Une colonne (ligne) est domine une autre lorsqu’elle l’inclut.
Une colonne p
peut être éliminée :
Expression logique de la réalisation de la fonction :
si elle est identique à une autre colonne
ou
si elle est domine une autre colonne.
colonne
P   x0  x1  x0  x2  x1  x3  x2  x4  x3  x5  x4  x5 
 x0 x1 x3 x4  x0 x2 x3 x4  x0 x3 x4  x1 x2 x3 x4  x0 x1 x4 x5  x0 x2 x3 x5  x0 x3 x4 x5  x1 x2 x5
Une ligne peut être éliminée :
si elle est identique à une autre ligne dont le coût* nn’est
est pas plus élevé
ou
si elle est dominée par une autre ligne dont le coût* n’est pas plus élevé.
S  AC  BC  AB
S  AB  BC  AC
* coût : contribution à la complexité du circuit (nombre de portes, nombre d’entrées).
29
30
Réduction du tableau (…)
0000
001
0001
0010
*
0101
0110
Cas facultatifs
0111
1000
1001
1010
Exemple avec des cas facultatifs :
1110
*
4
011
*
*
4
011
00
00
*
*
1
*
*
*
*
3
00
10
*
*
*
*
*
*
*
2
*
A B C
D
P
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
(sans objet)
à
1
31
32
1
P 
A BCD 
0001

A BC D 
0010
ABC D 
1000

ABC D 
0100
A BC D 
1010
ABCD 
1101
ABCD
0111
A BCD 
1011
ABC D 
1110
ABC D
1100
ABCD
1111
À noter :
Ici, les cas facultatifs sont considérés comme des 1
Cas facultatifs (…)
Cas facultatifs (…)
0010
* 010
* 100
0100
100
1000
100
1010
101
1100
110
0111
110
1011
110
1101
* 111
1110
111
1111
111
* 0001
* 10
* 11
* 11
0001
0001
010
100
111
111
10
* Implicant premier
0100
0111
1000
*
*
À noter :
Ici, les cas
facultatifs
ne sont pas
considérés
*
*
*
11
P  A BCD  BC D  BC D  BCD  AD
11
111
33
0010
34
Téléchargement