A. Lebrun
Théorème de Shannon Soit F une fonction logique de n variables xn F(x1,..,xi, xn)=xi.f(x1,…,1, xn)+xi.g (x1,…,0,,xn) F(x1,..,xi, xn)=(xi+g(x1,…,0, xn)).(xi+f (x1,…,1,,xn)) f et g sont obtenues en remplaçant xi par 1 et 0 dans F Ex: F(a,b,c) = abc +abc +abc s’écrit F = a(bc + bc) + a ( b c) F = (a + bc ).( a +(bc + bc))
Shannon Attention si dans un terme une variable n’apparaît pas, alors ce terme est dans les deux fonctions f et g déduites de F Ex F = ab + bc Alors F = a (b + bc) + a ( bc) Alors F = (a + bc). (a +(b + bc)) En effet bc = abc + abc
Extension de Shannon Si on applique successivement Shannon à chacune des variables xi on trouve: F (x1,…,xn)= x1.x2….xn.f(1,…,1) + x1.x2…xn.f(0,1,…,1) + …..+ x1.x2…..xn.f(0,0,….,0) F(x1,….,xn) = (x1+x2+….+xn+f(0,0,…0)).(x1+x2+…+xn+f(1,0,…,0)) …..(x1+x2+…+xn+f(1,1,….1))
Relation avec les Mintermes et Maxtermes On constate que dans la première expression, on retrouve la somme des mintermes (Produit de toutes les variables sous forme directe ou complémentaire) mutipliés par la valeur de la fonction (0 ou 1) correspondant à ce minterme On constate que dans la seconde expression on retrouve le produit des maxtermes (sommes de toutes les variables sous forme directe ou complémentaire) auxquels on ajoute la valeur de la fonction (0 ou 1) correspond à l’inverse des valeurs des variables
Exemple: Ex: F = ab + bc F = abc f(1,1,1) + abc f(0,1,1) +abc f(0,0,1)+ abc f(0,0,0) + abc f(0,1,0) + abc f(1,0,1) +abc f(1,1,0) + abc f(1,0,0) F = abc + abc + abc F = ( a+b+c+f(0,0,0)).( a+b+c+f(0,0,1)). (a+b+c+f(0,1,0)). (a+b+c+f(0,1,1)). ( a+b+c+f(1,0,0)). ( a+b+c+f(1,1,0)).( a+b+c+f(1,0,1)). (a+b+c+f(1,1,1)) F = (a+b+c).(a+b+c).(a+b+c).(a+b+c).(a+b+c)
Fonctions logiques Les tables de vérités des fonctions nous conduisent aux formes normales des fonctions Ces formes contiennent des mintermes ou des maxtermes Les différents mintermes peuvent quelquefois se simplifier facilite la réalisation du circuit représentant la fonction rend la maintenance plus aisée
Choix de la représentation Le choix de la représentation normale disjonctive ou conjonctive dépend du nombre de fois que la fonction vaut 1 Le théorème de De Morgan permet de passer d’une forme à l’autre
Simplifications algébriques Les simplification reposent sur les lois suivantes Lois des complémentaires a + a = 1 a. a = 0 Loi d’absorptions a + a.b = a + b a + a.b = a
Exemple: fonction majorité de 3 variables F = abc + abc + abc + abc F = abc +abc +abc +abc +abc +abc F = ab +bc + ac
Autre représentation La méthode algébrique est compliquée à mettre en œuvre Difficulté aussitôt que F dépend de 4 ou 5 variables Utiliser une autre représentation pour favoriser la visibilité des regroupement Faire en sorte que deux regroupements qui ont une variable complémentaire soient côte à côte Tableau de Karnaugh
Karnaugh KARNAUGH Maurice États-Unis Ph.D. de Physique, Université de Yale Actuellement retraité Gouverneur fondateur de l'ICCC en 1972 (International Council for Computer Communication)International Council for Computer Communication · Secrétaire général de 73 à 82 · Vice-président de 82 à 86 · Gouverneur émérite depuis Chercheur aux laboratoires Bell Telephone de 1952 à 1966 Chercheur au centre de recherche IBM – New York – de 1966 à 1993 Professeur d'informatique à l'Institut Polytechnique de New York de 1980 à 1999 Membre de l'IEEE – 1975 – Pour ses travaux sur l'utilisation des techniques numériques en télécommunications
Tableau Partage les variables en deux groupes Pour chaque groupe, on écrit tous les mintermes de la valeur minimale puis en changeant 1 variable (la plus à gauche possible) sans retomber sur une combinaison déjà écrite jusqu’à toutes les combinaisons soient écrites Chacun de ces mintermes correspond à une colonne pour le premier groupe et 1 colonne pour le second groupe chaque case correspond à un minterme de la fonction
Soit F dont la table de vérité est: abcdF
Exemple f (abcd) a b c d (0) 1(4) 0(12) 1(8) 1 c d (1) 0(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 1(6) 0(14) 0(10) 1 F = abcd + abcd + abcd+ abcd + abcd+ abcd+ abcd F = R{ 0,2,5,7,8,10,12} en considérant a = 8, b = 4, c=2 et d=1
Cases adjacentes Deux cases sont adjacentes si elles ont (n-1) variables en commun Ex: (0) et (1) sont adjacentes Si la fonction à n variables, toute case à n cases adjacentes Ex: (0) adjacentes à (1), (2), (4) et (8)
Simplification Si deux cases adjacentes sont à 1 alors on peut regrouper les deux termes et le nouveau groupement correspond aux variables communes et identiques ( disparition de la variable qui apparaît sous forme directe et complémentée) Ex: (5) et (7) (5)= a b c d et (7) = a b c d (5) + (7) = a b d Trouvez les autres groupements de 2 possibles
Exemple f (abcd) a b c d (0) 1(4) 0(12) 1(8) 1 c d (1) 0(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 1(6) 0(14) 0(10) 1 F = abcd + abcd + abcd+ abcd + abcd+ abcd+ abcd G (5,7) = a b d
Exemple f (abcd) a b c d (0) 1(4) 0(12) 1(8) 1 c d (1) 0(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 1(6) 0(14) 0(10) 1 F = abcd + abcd + abcd+ abcd + abcd+ abcd+ abcd G (5,7) = a b d
itération Si le groupement obtenu possède un groupement adjacent, valant également 1, alors on peut regrouper ces deux groupements pour en faire un de 4 dans lequel une deuxième variable disparaît Groupement (0,2) symétrique au groupement (8,10) G(0,2) = a b d et G(8,10) = a b d G (0,2,8,10) = b d On reitère le processus aussi longtemps que possible
Exemple f (abcd) a b c d (0) 1(4) 0(12) 1(8) 1 c d (1) 0(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 1(6) 0(14) 0(10) 1 F = abcd + abcd + abcd+ abcd + abcd+ abcd+ abcd G(0,2,8,10) = b d
Principes de simplification Transcrire la table de vérité de la fonction dans un tableau de Karnaugh (attention à l’ordre des lignes et colonnes) Chercher à regrouper les 1 En partant du 1 qui semble le plus isolé En cherchant à faire des regroupements les plus grands possibles (1,2,4,8,16,…) Nommer les différents groupements Tous les 1 doivent être dans un groupement Une case à 1 peut appartenir à plusieurs groupements Fonction simplifiée est la réunion de l’ensemble des groupements qui ont au moins une case n’appartenant qu’à lui
Exemple f (abcd) a b c d (0) 1(4) 0(12) 1(8) 1 c d (1) 0(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 1(6) 0(14) 0(10) 1 F = abcd + abcd + abcd+ abcd + abcd+ abcd+ abcd G (5,7) = a b d G(0,2,8,10) = b d G(8,12) = a c d F = a b d + b d + a c d
Exemple f (abcd) a b c d (0) 1(4) 0(12) 0(8) 1 c d (1) 1(5) 1(13) 1(9) 1 c d (3) 1(7) 1(15) 1(11) 1 c d (2) 0(6) 0(14) 1(10) 0 F = R {0,1,3,5,7,8,9,11,13,14,15}
Exemple f (abcd) a b c d (0) 1(4) 0(12) 0(8) 1 c d (1) 1(5) 1(13) 1(9) 1 c d (3) 1(7) 1(15) 1(11) 1 c d (2) 0(6) 0(14) 1(10) 0 F = a b c + d + b c
Exemple f (abcd) a b c d (0) 1(4) 1(12) 0(8) 0 c d (1) 1(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 1(11) 0 c d (2) 0(6) 0(14) 1(10) 0
Exemple f (abcd) a b c d (0) 1(4) 1(12) 0(8) 0 c d (1) 1(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 1(11) 0 c d (2) 0(6) 0(14) 1(10) 0 F = a c + a b d + a b c Le groupement b c d est inclus dans les groupements abc et a b d
Limites d’applications Cette méthode de simplification marche bien tant que le nombre de variables est inférieur à 10 Au-delà il vaut mieux essayer de dissocier les fonctions et la remplacer par plusieurs avec moins de variables
Fonctions avec des états non définis Pour certaines fonctions, des combinaisons d’entrées peuvent ne jamais apparaître. Exemple la fonction qui utilise les chiffres en binaire comme entrée. Les combinaisons 1010,1011,1100,1101,1110 et 1111 ne seront jamais utilisées Comme ces combinaisons ne seront jamais utilisées, on peut considérer que les sorties correspondantes valent indifféremment 0 ou 1 Dans ce cas on les note o
Exemple f (abcd) a b c d (0) 1(4) 1(12) 0(8) 0 c d (1) 1(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 0(6) 0(14) 0(10) 0
Simplification les règles précédentes subsistent Si on a besoin d’un état indifférent pour compléter le bloc, on peut le prendre afin de simplifier la fonction On le considère alors comme égal à 1 Sinon on le laisse et on le considère égal à 0
Exemple f (abcd) a b c d (0) 1(4) 1(12) 0(8) 0 c d (1) 1(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 0(6) 0(14) 0(10) 0 F = R {0,1,4,5,7} + I {10,11,12,13,14,15}
Exemple f (abcd) a b c d (0) 1(4) 1(12) 0(8) 0 c d (1) 1(5) 1(13) 0(9) 0 c d (3) 0(7) 1(15) 0(11) 0 c d (2) 0(6) 0(14) 0(10) 0 F = a c + b d Le groupement g(4,5,12,13) est inutile car il ne contient aucun 1 qui ne soit déjà dans un autre groupement.
Tableau de Karnaugh pour f(a,b,c,d,e,f,g,h) 2 groupes de 4 variables l = (a b c d)c = (e,f,g,h) Chaque minterme ( donc chaque case le représentant) est déterminé par un nombre compris entre 0 et 255 Ce nombre est égal à N= a.2 7 +b c.2 5 +d e f g h. 2 0 La règle d’écriture de Karnaugh nous conduit au tableau suivant la disposition ci-après:
Tableau pour 8 variables
Questions Combien de cases sont adjacentes au sens de Karnaugh d’une case donnée Quelles sont les cases adjacentes au sens de Karnaugh de la case 92?, de la case 8? Combien de cases comprend le plus grand regroupement possible? Ce regroupement correspond à quelle fonction?