bitGateLab Digital · Apprendre
Français
Ouvrir le simulateur

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 \ BC00011110
0m0m1m3m2
1m4m5m7m6

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

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 \ BC00011110
00110
11110
  1. 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.
  2. 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.
  3. 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 \ CD00011110
00m0m1m3m2
01m4m5m7m6
11m12m13m15m14
10m8m9m11m10

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 \ CD00011110
001101
010100
110000
101101
  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.
  2. m0, m2, m8, m10 : les quatre coins. Terme : BD.
  3. Il reste m5 (0101). Son meilleur voisin à 1 est m1 (0001) : A = 0, C = 0, D = 1 et B change. Terme : ACD.
  4. 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 \ CD00011110
00X11X
010X10
110010
100010
  1. La colonne CD = 11 est pleine (m3, m7, m15, m11) : terme CD.
  2. 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.
  3. 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.

Sans les X, m1 ne pourrait se regrouper qu'avec m3 et l'on obtiendrait ABD, avec un littéral de plus. Les cas indifférents sont une économie gratuite : ne les gaspillez pas.

Erreurs fréquentes

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.

  1. Créez une fonction de quatre variables et saisissez les uns de l'exemple 2.
  2. Regroupez d'abord vous-même sur papier et écrivez votre résultat.
  3. 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.
  4. 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.
  5. Convertissez le résultat en circuit et changez les entrées pour confirmer qu'il coïncide avec la table.

Exercices

  1. 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.

  2. 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.

  3. 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.

  4. 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.