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 010 0100 0100 010 010 0101 0101 0010 0100 0101 010 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 010 0010 010 0010 010 0010 010 0100 010 0100 010 0100 010 0100 010 0101 010 0101 010 0101 010 0101 010 0110 0110 011 0110 011 0110 011 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 010 0100 010 0010 010 0101 010 0100 0010 010 010 0100 010 0101 010 0101 010 0110 011 1001 101 0110 011 0110 011 0111 011 1001 101 1001 101 1101 101 0111 011 0111 011 1101 101 1101 101 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 * 010 0100 010 0101 010 0110 011 1001 * 101 0111 011 1101 101 * * 01 0 10 010 0100 0101 * 0110 0111 * * 01 * * 1101 * 101 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 010 0100 0101 0110 * 0111 1101 * 101 * * 101 01 1001 Autre exemple : * * * * * * S AC D ACD AB 010 101 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 000 0010 000 1000 * 0101 0110 010 1001 010 1010 100 1110 * * Un exemple avec étape 9 (…) * 00 * 00 * 10 001 001 0111 0000 001 0001 0010 * * 011 * Implicant premier 0101 0110 Meilleur choix * 00 * 100 00 * 011 10 0111 * * 1010 1110 * * * * * * S ABD BC C D 24 1001 * 011 110 1000 * 011 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 : 001 011 011 00 00 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 011 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 * * 00 * 010 101 110 111 00 0 0 00 01 01 10 10 11 11 10 * Implicant premier 11 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 00 01 10 11 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 001 0001 0010 * 0101 0110 Cas facultatifs 0111 1000 1001 1010 Exemple avec des cas facultatifs : 1110 * 4 011 * * 4 011 00 00 * * 1 * * * * 3 00 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 100 1000 100 1010 101 1100 110 0111 110 1011 110 1101 * 111 1110 111 1111 111 * 0001 * 10 * 11 * 11 0001 0001 010 100 111 111 10 * Implicant premier 0100 0111 1000 * * À noter : Ici, les cas facultatifs ne sont pas considérés * * * 11 P A BCD BC D BC D BCD AD 11 111 33 0010 34