Apprendre › Chapitre 4
Tableaux de Karnaugh à 2, 3 et 4 variables et cas indifférents (X)
7 min de lecture · Équipe bitGateLab
Simplifier avec l'algèbre de Boole fonctionne, à condition de « voir » quelle loi appliquer. Le tableau de Karnaugh transforme cette recherche en exercice visuel : il dispose la table de vérité dans une grille où deux cases voisines ne diffèrent que par une seule variable, et simplifier revient alors à entourer des groupes de uns. Vous allez apprendre ici à construire des tableaux à 2, 3 et 4 variables, à regrouper correctement (y compris par les bords, qui « se rejoignent ») et à tirer parti des cas indifférents.
L'idée : des cases voisines, une seule variable de différence
La loi d'adjacence dit que AB + AB = A : deux termes qui ne diffèrent que par une seule variable fusionnent, et cette variable disparaît. Le tableau de Karnaugh dispose les mintermes de sorte que deux cases partageant un côté remplissent toujours cette condition. Pour y parvenir, les en-têtes des lignes et des colonnes ne suivent pas l'ordre binaire 00, 01, 10, 11, mais le code Gray : 00, 01, 11, 10. Entre deux valeurs consécutives, un seul bit change, et il en va de même entre la dernière et la première (10 et 00). C'est pourquoi le tableau se comporte comme si ses bords opposés étaient collés l'un à l'autre.
Tableaux à 2 et 3 variables
Le tableau à deux variables comporte 4 cases : A sur les lignes et B sur les colonnes. Celui à trois variables comporte 8 cases : A sur les lignes et BC sur les colonnes, dans l'ordre Gray. Le numéro inscrit dans chaque case indique le minterme qui lui correspond :
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | m0 | m1 | m3 | m2 |
| 1 | m4 | m5 | m7 | m6 |
Remarquez que m3 et m2 se trouvent dans cet ordre : c'est l'effet du code Gray, et la cause de nombreuses erreurs lorsqu'on remplit le tableau à la main.
Règles de regroupement
- Les groupes ne peuvent contenir que des uns (ou des X, comme vous le verrez plus loin), jamais de zéros.
- La taille de chaque groupe doit être une puissance de 2 : 1, 2, 4, 8 ou 16 cases.
- Les groupes sont des rectangles de cases adjacentes, adjacence par les bords comprise. Les diagonales ne comptent pas.
- Faites chaque groupe aussi grand que possible : un groupe de 2k cases élimine k variables.
- Utilisez le plus petit nombre de groupes qui couvre tous les uns. Les groupes peuvent se chevaucher.
Pour lire un groupe, examinez chaque variable : si elle garde la même valeur dans toutes les cases du groupe, elle apparaît dans le terme (sans barre si elle vaut 1, avec une barre si elle vaut 0) ; si elle change, elle est éliminée.
Exemple 1 : trois variables. Simplifiez F(A, B, C) = Σm(1, 3, 4, 5, 7).
| A \ BC | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
- Les colonnes 01 et 11 sont complètes : un groupe de 4 (m1, m3, m5, m7). Dans ce groupe, A change, B change et C vaut toujours 1. Terme : C.
- Il reste m4. On le regroupe avec m5 (son voisin de droite) : A = 1 et B = 0 dans les deux cases, C change. Terme : AB.
- F = C + AB.
Vérifiez m6 (110) : C = 0 et AB = 0, donc F = 0, comme dans le tableau.
Tableau à 4 variables et adjacence par les bords
Avec quatre variables, le tableau comporte 16 cases : AB sur les lignes et CD sur les colonnes, toutes deux dans l'ordre Gray.
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | m0 | m1 | m3 | m2 |
| 01 | m4 | m5 | m7 | m6 |
| 11 | m12 | m13 | m15 | m14 |
| 10 | m8 | m9 | m11 | m10 |
La colonne de gauche est voisine de celle de droite, et la ligne du haut est voisine de celle du bas. Par conséquent, les quatre coins (m0, m2, m8, m10) forment un groupe valide de 4 cases : dans toutes, B = 0 et D = 0, ce qui se lit BD.
Exemple 2 : des groupes qui traversent les bords. Simplifiez F(A, B, C, D) = Σm(0, 1, 2, 5, 8, 9, 10).
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 1 | 1 | 0 | 1 |
| 01 | 0 | 1 | 0 | 0 |
| 11 | 0 | 0 | 0 | 0 |
| 10 | 1 | 1 | 0 | 1 |
- m0, m1, m8, m9 : colonnes 00 et 01 des lignes du haut et du bas (voisines par le bord). B = 0 et C = 0. Terme : BC.
- m0, m2, m8, m10 : les quatre coins. Terme : BD.
- Il reste m5 (0101). Son meilleur voisin à 1 est m1 (0001) : A = 0, C = 0, D = 1 et B change. Terme : ACD.
- F = BC + BD + ACD.
Vous êtes passé de 7 mintermes de 4 littéraux (28 littéraux) à 3 termes totalisant 7 littéraux.
Cas indifférents (X)
Il arrive que certaines combinaisons d'entrée ne se produisent jamais, ou que leur sortie soit sans conséquence. Par exemple, dans un chiffre BCD, les codes 1010 à 1111 n'existent pas. Sur ces lignes, on écrit un X (appelé aussi don't care) et on le note à part sous la forme d(...). Au moment de regrouper, chaque X peut être pris comme un 1 s'il vous aide à former un groupe plus grand, ou ignoré dans le cas contraire. Il n'est jamais nécessaire de couvrir un X.
Exemple 3 : avec des cas indifférents. Simplifiez F(A, B, C, D) = Σm(1, 3, 7, 11, 15) + d(0, 2, 5).
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | X | 1 | 1 | X |
| 01 | 0 | X | 1 | 0 |
| 11 | 0 | 0 | 1 | 0 |
| 10 | 0 | 0 | 1 | 0 |
- La colonne CD = 11 est pleine (m3, m7, m15, m11) : terme CD.
- Il manque m1. En prenant les X de m0 et m2 comme des uns, la ligne du haut tout entière forme un groupe de 4 : terme AB.
- F = CD + AB.
Il existe une autre solution tout aussi bonne : prendre le X de m5 et regrouper m1, m3, m5, m7, ce qui donne AD. Alors F = CD + AD. Les deux solutions ont 2 termes et 4 littéraux, et elles coïncident sur toutes les lignes qui comptent vraiment. Qu'une fonction ait plusieurs formes minimales est tout à fait normal.
Erreurs fréquentes
- Ordonner les en-têtes en binaire (00, 01, 10, 11) au lieu du code Gray. Les cases voisines ne diffèrent plus d'une seule variable et les groupes sont faux.
- Former des groupes de 3 ou 6 cases. Seules les puissances de 2 sont permises.
- Oublier l'adjacence par les bords et celle des quatre coins, ce qui laisse des groupes plus petits que nécessaire.
- Ajouter un groupe dont toutes les cases sont déjà couvertes par d'autres. Il est superflu et ajoute des portes.
- Se croire obligé de couvrir les X. On ne les utilise que lorsqu'ils agrandissent un groupe.
Essayez dans le simulateur
Le module Karnaugh dispose la fonction dans l'ordre Gray, marque les groupes et écrit l'expression minimale ; vous pouvez ainsi comparer votre regroupement à celui que propose l'outil.
- Créez une fonction de quatre variables et saisissez les uns de l'exemple 2.
- Regroupez d'abord vous-même sur papier et écrivez votre résultat.
- Observez les groupes que marque le tableau et l'expression obtenue ; si elle diffère de la vôtre, cherchez quel groupe n'était pas maximal.
- Saisissez l'exemple 3 en marquant comme X les cases 0, 2 et 5, puis observez comment la simplification change lorsque vous retirez ces X.
- Convertissez le résultat en circuit et changez les entrées pour confirmer qu'il coïncide avec la table.
Exercices
- Simplifiez F(A, B, C) = Σm(0, 2, 4, 6).
Réponse
Les colonnes BC = 00 et BC = 10 sont voisines par le bord et elles sont pleines. Dans les quatre cases, C = 0 : F = C.
- Simplifiez F(A, B, C, D) = Σm(0, 2, 5, 7, 8, 10, 13, 15).
Réponse
Coins : BD. Bloc central m5, m7, m13, m15 : BD. F = BD + BD, c'est-à-dire la XNOR de B et D.
- Simplifiez F(A, B, C, D) = Σm(4, 5, 6, 7, 12, 13, 14, 15).
Réponse
Les lignes AB = 01 et AB = 11 forment un groupe de 8 ; seule B reste à 1. F = B.
- Un chiffre BCD (A est le bit de poids fort) doit activer une sortie lorsqu'il vaut 5 ou plus. Simplifiez F = Σm(5, 6, 7, 8, 9) + d(10, 11, 12, 13, 14, 15).
Réponse
Avec les X, les lignes AB = 11 et AB = 10 forment un groupe de 8 : A. Le bloc m5, m7, m13, m15 donne BD et le bloc m6, m7, m14, m15 donne BC. F = A + BD + BC = A + B(C + D).
Au-delà de quatre ou cinq variables, le tableau devient difficile à lire ; pour ces cas, il existe une procédure tabulaire, la méthode de Quine-McCluskey.