Académique Documents
Professionnel Documents
Culture Documents
Optimisation Des Circuits Combinatoires: Chapitre
Optimisation Des Circuits Combinatoires: Chapitre
Chapitre
aintenant que la base thorique fondant lalgbre de Boole a t couverte et que nous avons illustr son applicabilit dans le cadre des circuits logiques combinatoires, nous allons nous pencher sur le problme de loptimisation de ces circuits.
Lconomie des ressources matrielles est un problme dimportance et un dfi de taille. Le dfi rside principalement dans lexplosion combinatoire des solutions possibles pour une mme fonction logique. On sait par exemple quun circuit combinatoire 2 entres peut implmenter jusqu 16 fonctions logiques. Chacune de ces fonctions logiques peut avoir une multitude de ralisations physiques possibles et il faut faire le tri parmi celle-l pour trouver la meilleure. Le nombre de fonctions logiques passe 256 pour un circuit 3 entres et le nombre de ralisations possibles est dautant plus grand. Ce nombre est 65 536 pour un circuit 4 entres, et il ne cesse de grossir inconsidrment avec le nombre dentres du circuit. Lexpression gnrale de cette relation est donne par : Nombre de fonctions pour n entres = 2k, o k=2n Aussi, les premiers travaux scientifiques raliss dans le cadre des circuits logiques ont trait de la problmatique doptimisation des circuits combinatoires. Ces travaux forment une base thorique essentielle pour qui veut travailler dans le domaine de llectronique numrique. Il existe de nombreuses techniques doptimisation. Nous nous intresserons plus particulirement deux dentre elles. La premire mthode est celle des tables de Karnaugh. Il sagit dune mthode graphique recourant une disposition spatiale des valeurs logiques fort ingnieuse, mais elle demeure confine une utilisation par les humains. Cette mthode, quoiqulgante, trouve en effet rapidement ses limites et ne permet pas de rsoudre des problmes complexes tels que la simplification de fonctions logiques sept variables et plus. La seconde mthode comble cette lacune en abandonnant la disposition spatiale au profit dun recensement exhaustif des combinaisons des minterms. Et gard lexplosion combinatoire susmentionne, cette mthode demeure rserve une excution machine. Elle sera pour nous nanmoins un moyen dapprofondir les concepts relatifs la simplification des fonctions logiques.
55
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
A 0 0 1 1
B 0 1 0 1
Table de vrit
F 0 1 0 1
Table de Karnaugh
Comme on peut le constater, les valeurs de la fonction F sont dplaces vers lintrieur de la table de Karnaugh alors que les variables indpendantes sont distribues sur sa priphrie. Lintrt de lopration rside dans ladjacence des valeurs logiques de la fonction F. Lorsque deux cellules sont adjacentes et quelles contiennent la mme valeur logique, elles peuvent tre runies pour former un seul terme.
56
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Il importe de relever lvolution des variables BC. Contrairement ce que lon retrouve dans les tables de vrit, lordre dnumration des valeurs BC nest pas celui de la reprsentation binaire des nombres (en loccurrence 00, 01, 10 et 11); il sagit dune numration associe un code dit de Grey. Ce dernier sera couvert au chapitre 7. On peut dores et dj remarquer que dune valeur la suivante, un seul bit change. Cest cette proprit qui permet deux cellules adjacentes de former un terme unique. Par exemple, les termes voisins A B C et ABC peuvent tre unis pour former le terme simplifi AC :
A B C + ABC =AC ( B +B )=AC(1)=AC Le code de Grey tant cyclique, cette proprit des cellules adjacentes est valide mme aux extrmits de la table de Karnaugh. Par exemple, les termes voisins A B C et A B C peuvent tre unis pour former le terme simplifi A C :
A B C + A B C = A C ( B +B )= A C (1)= A C
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Il est possible de combiner deux cellules adjacentes, quatre cellules adjacentes formant un carr ou un rectangle et encore huit cellules formant un rectangle comme lillustrent les exemples suivants : Cas de deux cellules adjacentes :
Une faon simple de retrouver le terme form par lunion des cellules est dliminer les variables qui se prennent les deux valeurs logiques possibles (0 et 1) et de ne garder que celles qui ne sont prsentes que sous une seule des deux formes (0 ou 1). Si la valeur logique est 0, la variable apparatra dans le terme simplifi sous forme ngative (invers), si cette valeur logique est 1, la variable apparat sous forme positive (noninverse). Considrons cet effet notre dernier exemple: la variable A prend les deux formes logiques 0 et 1, notamment aux lignes 1 et 3; il en est de mme pour les variables B (ligne 1 et 2) et D (colonne 1 et 2). Il ne reste donc que la variable C qui prend uniquement la valeur 0. Le terme ainsi obtenu scrit sous forme ngative : C
58
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Rappelons que la cyclicit du code de Grey permet dunir les cellules adjacentes aux extrmits de la table de Karnaugh. Lexemple suivant prsente lunion de huit cellules de cette sorte :
La simplification des termes veut cependant que lon cherche simplifier au mieux la fonction logique. Or il apparat quune cellule plus large englobe le terme prcdent : il suffit pour cela dinclure les deux cellules droite de la troisime ligne :
Ce nouveau terme peut son tour tre englob dans une cellule encore plus large, et ce en incluant les quatre cellules gauche des lignes 2 et 3. 59
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
La figure suivante prsente ce rsultat. ce stade, on constate que la cellule ne peut plus tre tendue et constitue le terme le plus simple pour lensemble de ces minterms. Nous avons donc un premier terme dune expression disjonctive : B.
Un second rectangle contenant lui aussi huit lments nous apparait aux colonnes 1 et 2, formant le terme : C . Il importe de noter que ces deux rectangles partagent quatre cellules.
Le procd de simplification ne peut cependant tre arrt ce stade puisquil reste encore deux cellules contenant des 1. Ces deux cellules tant adjacentes, il serait possible de les unir comme lillustre la figure suivante :
Cette expression nest cependant pas optimale. Il apparat en effet quun rectangle encore plus large peut inclure ces deux cellules. Pour ce faire. Il faut avoir recours certaines cellules dj utilises. Cette nouvelle expression est plus simple que la prcdente, mais elle nest toujours pas optimale. En effet, une inspection plus attentive du problme permet de trouver un rectangle encore plus large regroupant lensemble des cellules du nouveau rectangle.
60
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Pour ce faire, il faut recourir la proprit de cyclicit du code de Grey. Il est alors possible de runir des cellules aux extrmits de la table de Karnaugh comme lindique la figure suivante :
ce stade, aucun rectangle nest entirement contenu dans un rectangle plus large, et lensemble des rectangles couvre la totalit des cellules contenant un 1. La section 4.1.6 aura soin de donner les noms des concepts essentiels couverts ici et dnoncer clairement lalgorithme de simplification.
61
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Dans notre exemple, il nest possible de runir quun seul rectangle. Ce dernier comprend la variable A sous ses deux formes (ligne 1 et ligne 4). Elle est limine du terme obtenu par lunion. Les autres variables se prsentent sous une seule forme : B prend uniquement la valeur 0 et sera reprsente sous forme positive dans le terme ; C prend uniquement la valeur 1 et sera reprsente sous forme ngative dans le terme ; D prend uniquement la valeur 1 et sera reprsente sous forme ngative dans le terme. Le terme rsultant peut galement tre obtenu algbriquement comme suit :
(A+B+ C
+D
) ( A +B+ C
+D
) =(B + C
+D
)(A+ A ) =B + C
+D
Relevons que la forme conjonctive simplifie est la mme que celle de lexpression disjonctive simplifie. Cest l un cas particulier qui na aucune valeur de gnralit.
Lalgorithme de simplification laide dune table de Karnaugh snonce alors comme suit : 1. 2. 3. Trouver les impliquants/impliqus premiers en commenant par ceux qui comportent le plus de cellules Identifier les impliquants/impliqus premiers essentiels Si il reste des cellules, les associer des impliquants/impliqus premiers qui soient : Les plus gros possibles (comportant le plus de cellules possibles) Les moins nombreux possible (rduire le nombre dimpliquant/impliqus premiers)
Illustrons ceci par un exemple (nous considrons uniquement le cas dexpressions disjonctives) :
62
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
1.
On cherche des impliquants premiers comportant 4 On cherche des impliquants premiers comportant 2 cellules : il y en a une seule. cellules : il y en a quatre. 2. On identifie les impliquants premiers essentiels, il y en a deux
3.
On limine des impliquants premiers de sorte garder : Les plus gros possibles Le moins possible
63
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Le procd est identique pour trouver lexpression conjonctive simplifie : 1. On commence par chercher des impliqus premiers comportant 8 cellules : Il ny en a pas.
On cherche des impliqus premiers comportant 4 On cherche des impliqus premiers comportant 2 cellules : il y en a une seule. cellules : il y en a quatre. 2. On identifie les impliqus premiers essentiels, il y en a deux
3.
On limine des impliqus premiers de sorte garder : Les plus gros possibles Le moins possible
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Afin de rsoudre ce problme, il est conseill dagir comme si tous les cas facultatifs taient des minterms de la fonction simplifier. Il suffit alors dappliquer la mthode de simplification par table de Karnaugh comme nous le faisions la section 4.1.6 quelques diffrences prs. 1. On commence par recenser les impliquants premiers : 65
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
2.
3.
Si ncessaire, on choisit dautres impliquants premiers pour couvrir les minterms de dpart (donc sans compter les cas facultatifs). Dans notre exemple, les impliquants premiers essentiels couvrent dj lensemble des minterms; le processus de simplification est donc termin : f (a3, a2, a1, a0) = a3 a2 a1 a0 + a2 a1a0 + a2a1 a0 + a3a0
66
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Nous allons considrer la mthode permettant dinscrire une ou plusieurs variables dans une table de Karnaugh, puis nous nous pencherons sur les mthodes de simplification permettant dextraire lexpression de la fonction boolenne ainsi dcrite. Lorsquune variable se trouve dans une cellule dune table de Karnaugh, il faut associer la fonction le minterm rsultant du produit logique (oprateur de conjonction ET) de cette variable par le minterm correspondant la cellule considre. Dans lexemple prcdent, nous aurions la deuxime ligne et la troisime colonne le minterm : A BCD E Pour inscrire ladite variable dans la table, il faut procder linverse. Considrons quelques exemples simples qui seront facilement gnralisables. Prenons la fonction 3 variables suivante et la table de Karnaugh qui lui est associe :
1
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
f 1 0 1 1 0 0 0 1 67
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Pour passer de lune lautre, il faut regrouper les lignes de la table de vrit deux deux et considrer la valeur de la fonction selon la variable C :
1
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
f 1 0 1 1 0 0 0 1
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
f s0 s1 s2 s3 s4 s5 s6 s7
On peut ici faire lassociation entre cette dernire table de Karnaugh et le rsultat prsent prcdemment. On voit donc quil est possible de passer dune fonction n variables et de lexprimer avec une table de Karnaugh n-1 variables. Ce nouveau rsultat peut-tre rutilis pour reprsenter la fonction par une table de Karnaugh pour n-2 variables. On pourra ainsi traiter un problme de simplification cinq ou six variables indpendantes en utilisant une table de Karnaugh quatre variables, simplement en inscrivant les variables restantes. Quand on vient simplifier une table de Karnaugh variables inscrites, il est possible de runir les cellules contenant la mme variable inscrite. On peut alors procder de manire ingnieuse en rappelant la rgle de complmentation : A+ A =1 Ainsi, si nous reprenons la table de Karnaugh prcdente, nous aurons :
1
68
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Ce qui nous donne : f (A,B,C) = A C +BC Voici un exemple avec solution. Le lecteur est invit dtailler la solution afin de bien comprendre le fonctionnement :
Exemple :
f (A,B,C,D) = A B C + A C E + A D E + BD E + CD E Il est important de noter que la cellule correspondent au minterm AB C D contient un 1 qui est inclus dans deux impliquants premiers, le premier contenant des E, le second des E . Ce type dinclusion est important et rappelle celui de notre exemple de fonction trois variables.
69
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Nous allons lillustrer par un exemple. Considrons la fonction suivante exprime par sa table de vrit :
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
1.
f (A,B,C,D) = A B C D+ A BCD+AB C D +AB C D+ABC D +ABCD+A B C D +A B C D 2. Exprimer les minterms sous forme binaire
f (A,B,C,D) = 0101+0111+1100+1101+1110+1111+1000+1010
70
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Pour chaque minterm, on remplace les variables par leur quivalent binaire. Si la variable est inverse, on pose 0, si elle ne lest pas, on pose 1. Par exemple : 1. 2. 3. 4. 5. 3. Grouper les termes selon leurs poids 1. 2. 3. 4. 5. 6. 7. 8. 4. 1000 1010 0101 1100 0111 1101 1110 1111
Poids 1 Poids 2
Poids 3 Poids 4
Le mot poids renvoie au nombre de 1 contenus dans la forme binaire des minterms. Unir les termes deux deux
Cette procdure est cl. Il sagit de gnrer une nouvelle colonne de termes en runissant deux deux les termes de la colonne prcdente. 1. 2. 3. 4. 5. 6. 7. 8. 1000 1010 0101 1100 0111 1101 1110 1111 10x0 1x00 1x10 01x1 x101 110x 11x0 x111 11x1 111x Gnr en combinant 1. et 2. Gnr en combinant 1. et 4. Gnr en combinant 2. et 7. Gnr en combinant 3. et 5. Gnr en combinant 3. et 6. Gnr en combinant 4. et 6. Gnr en combinant 4. et 7. Gnr en combinant 5. et 8. Gnr en combinant 6. et 8. Gnr en combinant 7. et 8.
Pour unir deux termes ensemble, il faut quils appartiennent deux groupe de poids successifs (0 et 1; 1 et 2; 2 et 3; 3 et 4, et ainsi de suite), il faut quils soient identiques un bit prs. Lorsque deux termes sont unis, on retranscrit le produit de leur union dans la nouvelle colonne en remplaant par un x le bit qui diffrenciait. chaque fois quun terme est utilis pour gnrer un nouveau sur la nouvelle colonne, on lindique par une coche ( ). Lorsque lon passe dune paire de groupes de poids successifs la suivante, on lindique par un trait dlimitant les nouveaux groupes de poids.
71
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
5.
On runit les termes de la nouvelle colonne comme nous lavions fait ltape (4). Pour que deux termes soient unis, en plus des conditions prcdentes, il faut que les x soient au mme endroit. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10 10x0 1x00 1x10 01x1 x101 110x 11x0 x111 11x1 111x 1xx0 1xx0 x1x1 x1x1 11xx 11xx Gnr en combinant 1. et 7. Gnr en combinant 2. et 3. Gnr en combinant 4. et 9. Gnr en combinant 5. et 8. Gnr en combinant 6. et 10. Gnr en combinant 7. et 9.
Si le mme terme est gnr plusieurs fois, on ne garde quune seule copie. On rpte alors ltape (4) : 1. 2. 3. 1xx0 x1x1 11xx Impossible de combiner aucun des termes car il ny a pas de termes possdant les x au mme Endroit
Ne pouvant plus runir aucune paire de termes, ltape (5) est termine. 6. Identifier les impliquants premiers
On reprend ici lensemble des tapes effectues : 1000 1010 0101 1100 0111 1101 1110 1111 10x0 1x00 1x10 01x1 x101 110x 11x0 x111 11x1 111x 1xx0 x1x1 11xx
Tous les termes qui ne sont pas marqus ( ) sont des impliquants premiers : 1xx0, x1x1, 11xx. Cette criture binaire se lit A D , BD et AB respectivement.
72
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
7.
Pour identifier les impliquants premiers essentiels, on utilise un tableau tel que sur les lignes, on dispose tous les impliquants premiers identifis et que sur les colonnes, on pose les minterms de la fonction. On procde alors par identification : 1000 1010 0101 1100 0111 1101 1110 1111 1xx0 x1x1 11xx
* *
* * * * *
* * * *
Un impliquant premier est essentiel si il est le seul tre associ au moins un minterm. Ainsi, un minterm appartient un impliquant premier essentiel si sa colonne ne comporte quun seule astrisque (*). 1000 1010 0101 1100 0111 1101 1110 1111 1xx0 x1x1 11xx
(*)
(*) (*)
* (*) * * *
* * * *
Un impliquant premier est essentiel sil comporte au moins une toile entre parenthses. Dans notre exemple, les impliquants premiers essentiels sont : 1xx0 et x1x1. 8. Vrifier si la fonction est entirement exprime par ses impliquants essentiels
Pour ce faire, il faut refaire le tableau (il est aussi possible deffectuer cette tape sur le mme tableau prcdent) en ne gardant que les impliquants essentiels : 1000 1010 0101 1100 0111 1101 1110 1111 1xx0 x1x1
(*)
(*) (*)
* (*) *
* *
Pour que la fonction soit entirement dcrite par ses impliquant essentiels, il faut que chaque colonne comporte au moins une toile. Cest le cas de notre exemple. La technique de Quine-McCluskey sarrte ce point : f (A,B,C,D) = 1xx0 + x1x1 = A D +BD Nous verrons plus loin comment faire si la fonction nest pas dcrite par ses impliquants premiers. Il est suggr au lecteur de reprendre cet exemple avec une table de Karnaugh.
73
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Exemple : Soit une fonction simplifier par la mthode de Quine-McCluskey et dfinie par sa table de vrit : A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1. B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f 1 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1
f (A,B,C,D) = A B C D + A B C D + A BCD + A B C D + AB C D+ABC D + ABCD 2. Exprimer les minterms sous forme binaire
f (A,B,C,D) = 0000 + 0101 + 0111 + 1010 + 1101 + 1110 + 1111 3. Grouper les termes selon leurs poids 1. 2. 3. 4. 5. 6. 7. 0000 0101 1010 0111 1101 1110 1111
74
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
4.
Unir les termes deux deux 1. 2. 3. 4. 5. 6. 7. 0000 0101 1010 0111 1101 1110 1111 01x1 x101 1x10 x111 11x1 111x Gnr en combinant 2. et 4. Gnr en combinant 2. et 5. Gnr en combinant 3. et 6. Gnr en combinant 4. et 7. Gnr en combinant 5. et 7. Gnr en combinant 6. et 7.
5.
Rpter ltape (4) autant de fois que ncessaire 1. 2. 3. 4. 5. 6. 01x1 x101 1x10 x111 11x1 111x x1x1 x1x1 Gnr en combinant 1. et 5. Gnr en combinant 2. et 4.
Si le terme est gnr deux fois, il ne faut en garder quune seule copie : 1. x1x1
Puisquil ne reste quun seul terme, il nest plus possible de rpter ltape quatre. 6. Identifier les impliquants premiers 0000 0101 1010 0111 1101 1110 1111 01x1 x101 1x10 x111 11x1 111x x1x1
Les impliquants premiers sont : 0000, 1x10, 111x, x1x1. 7. Identifier les impliquants premiers essentiels 0000 0101 1010 0111 1101 1110 1111 0000 1x10 111x x1x1
* * (*)
* *
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
8.
Vrifier si la fonction est entirement exprime par ses impliquants essentiels 0000 0101 1010 0111 1101 1110 1111 0000 1x10 x1x1
Sur chaque colonne il y a au moins une toile. Nous pouvons donc nous arrter l. On trouve : f (A,B,C,D) = A B C D + AC D + CD
Comme on peut sen rendre compte, les impliquants essentiels sont : x00x, xx10.Si on reproduit cette table avec les impliquants essentiels uniquement, nous obtenons :
0000 0001 0010 0101 0110 0111 1000 1001 1010 1110 x00x * * * (*) xx10 * * * (*)
Les minterms 0101, 0111 ne sont pas couverts par les impliquants essentiels. Il nous faut donc trouver les impliquants premiers permettant de recouvrer ces minterms tout en minimisant la fonction. On reproduit pour ce faire la table avec les impliquants premiers restants et les minterms correspondant :
0x01 01x1 011x x0x0 0101 * * 0111 * *
Comme on peut le voir, le choix est simple : x0x0 est automatiquement limin car il ne couvre pas les minterms manquants. Le meilleur choix est 01x1 car il a lavantage de couvrir les deux minterms en mme temps, ce qui nest pas le cas des deux autres impliquants premiers. f (A,B,C,D) = x00x + xx10 + 01x1 = B C + C D + A BD Il est suggr au lecteur de reprendre cet exemple avec une table de Karnaugh. 76
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Chaque impliquant premier doit tre associ une variable boolenne. Le tableau suivant prsente cette correspondance :
0x01 x0 01x1 x1 011x x2 x00x x3 x0x0 x4 xx10 x5
Une fois cette association faite, on crit une quation algbrique reprsentant le tableau prcdent. Dans notre exemple, cette quation est : P = (x3+x4)(x0+x3)(x4+x5)(x0+x1)(x2+x5)(x1+x2)(x3+x4)(x3)(x4+x5)(x5) Cette quation est sous forme de produit de somme (expression conjonctive). Celle-ci se dduit directement du tableau obtenu ltape (7) de la technique de Quine-McCluskey. Pour ce faire, chaque colonne est traduite en une somme de variables. Les variables de chacune des sommes correspondent celles associes aux impliquants premiers pour lesquels on trouve une toile sur la colonne considre. Par exemple, la premire colonne contient deux toiles. Lune sur la ligne de limpliquant premier x00x et lautre sur celle de x0x0. Les variables associes ces impliquants premiers sont, respectivement, x3 et x4. La somme associe la premire colonne est donc (x3+x4). De la mme faon, on associe la seconde colonne la somme (x0+x3). Et ainsi de suite. Une fois lquation reprsentant le tableau obtenu ltape (7) trouve, on procde une premire simplification en appliquant le thorme dabsorption de lalgbre de Boole qui stipule : (X+Y)(X) = X Dans le cas de lquation P trouve prcdemment, on obtient : P = (x3+x4)(x0+x3)(x4+x5)(x0+x1)(x2+x5)(x1+x2)(x3+x4)(x3)(x4+x5)(x5) P = (x0+x1)(x1+x2)(x3) (x5) Une fois cette simplification effectue, on convertit P en somme de produits. P = (x0+x1)(x1+x2)(x3) (x5) P = x0x1x3x5 + x1x3x5 + x0x2x3x5 + x1x2x3x5 77
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
cette tape, on applique la forme disjonctive du thorme dabsorption : X+XY = X Nous trouvons : P = x0x1x3x5 + x1x3x5 + x0x2x3x5 + x1x2x3x5 P = x1x3x5 + x0x2x3x5 Chaque produit de variables correspond une combinaison possible des impliquants premiers couvrant lensemble des minterms. Il sagit alors de choisir la combinaison de cot minimal. Dans le cas de notre exemple, il sagit de la combinaison x1x3x5. En se rapportant aux dfinitions de ces variables, on trouve : f (A,B,C,D) = x1 + x3 + x5 = A BD + B C + C D Puisque toutes les combinaisons que lon puisse trouver incluent les impliquants premiers essentiels, il est possible dappliquer la mthode de Petrick sans inclure ces derniers. On considre alors simplement les impliquants premiers non essentiels et les minterms non couverts. Dans lexemple prcdent, nous aurions construire la table suivante : 0101 0x01 01x1 011x x0x0 0111
* *
* *
Afin de dterminer le bon candidat, on applique la mthode de Petrick. On associe chaque impliquant premier une variable : 0x01 x0 P = (x0+x1)(x1+x2) P = x0x1 + x0x2 + x1 + x1x2 P = x0x2 + x1 On choisi la solution la moins coteuse, dans ce cas x1 (01x1). Puisquil a dj t dtermin que les impliquants essentiels taient x00x et xx10, il suffit dajouter limpliquant premier trouv par la mthode de Petrick. On trouve finalement que : f (A,B,C,D) = x00x + xx10 + 01x1 = B C + C D + A BD 01x1 x1 011x x2 x0x0 x3
78
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
1) Nous commenons par retranscrire les maxterms de la fonction F sous forme binaire en soulignant les maxterms facultatifs exemple : 1110 pour ( A + B + C + D ): F(A,B,C,D) = 0000 + 0001 + 0101+ 0110 + 0111 + 1000 + 1110 + 1111 2) Une fois cela fait, nous procdons par la mthode Quine-McCluskey pour simplifier la fonction F(A,B,C,D) et identifier les impliqus premiers de la mme faon que nous le faisions pour trouver les impliquants premiers : 0000 000x 0001 x000 1000 0x01 x11x 0101 01x1 0110 011x 0111 x110 1110 x111 1111 111x On trouve alors les impliqus premiers sous forme binaire : 000x, x000, 0x01, 01x1, x11x
79
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
3) cette tape, on identifie les impliqus essentiels de F(A,B,C,D). Il est noter ici que les colonnes nincluent pas les maxterms facultatifs.
0001 x1 x2 x3 x4 x5 000x x000 0x01 01x1 x11x * * * * * * (*) 0101 0111 1000
Impliqus essentiels : x000 : (B + C + D) 4) Se pose alors la question de savoir si les impliqus essentiels couvrent lensemble des maxterms ? La fonction F nadmet quun seul impliqu essentiel. lvidence, ce dernier ne couvre que le maxterm 1000 et pas lensemble des maxterms de la fonction F. On utilise alors la mthode de Petrick pour identifier les impliqus premiers non essentiels permettant une couverture complte de la fonction. On recherche bien entendu une couverture au moindre cot. P(x1, x2, x3, x4, x5) = (x1 + x3) (x3 + x4) (x4 + x5) (x2) = (x3 + x1x4) (x4 + x5) (x2) = x2x3x4 + x1x2x4 + x2x3x5 + x1x2x4x5 Nous avons le choix entre quatre solutions possibles. Les cots minimaux (implmentation en NOR) associs aux diffrentes combinaisons des impliqus premiers sont donns par : x2x3x4 = (3+1) + 3(3+1) = 16 x1x2x4 = (3+1) + 3(3+1) = 16 x2x3x5 = (3+1) + 2(3+1) + (2+1) = 15 x1x2x4x5 = (4+1) + 3(3+1) + (2+1) = 20 On choisit la troisime option de sorte rduire le cot du circuit final. Nous obtenons par consquent : F(A, B, C, D) = (B+C+D)(A+C+ D )( B + C )
80
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Relevons quil est possible de confirmer ce rsultat en utilisant une table de Karnaugh :
81
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
La rduction du tableau consiste liminer les lignes et les colonnes selon les critres suivants : Une colonne peut tre limine : si elle est identique une autre colonne si elle domine une autre colonne.
Une ligne peut tre limine : si elle est identique une autre ligne dont le cot nest pas plus lev si elle est domine par une autre ligne dont le cot nest pas plus lev.
Pour mieux comprendre le fonctionnement de la mthode, reprenons le tableau de notre exemple. On saperoit que la colonne du minterm 0010 est identique celle du minterm 1010. Nous pouvons liminer lune des deux : 0000 0001 0010 0101 0110 0111 1000 1001 1110 0x01 01x1 011x x00x x0x0 xx10
* * * * * *
* * * *
* * * * * *
De la mme faon, la colonne de 0000 est identique celle de 1000. On limine une des deux : 0000 0001 0010 0101 0110 0111 1001 1110 0x01 01x1 011x x00x x0x0 xx10
* * * * * *
* * * *
* * * *
La colonne de 0000 domine celle de 1001. On limine celle de 0000 : 0001 0010 0101 0110 0111 1001 1110 0x01 01x1 011x x00x x0x0 xx10
* * * *
* * * *
* * * *
82
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
De la mme faon, les colonnes 0001 domine celle de 1001, on peut donc lliminer : 0010 0101 0110 0111 1001 1110 0x01 01x1 011x x00x x0x0 xx10
* * * * * *
* * * *
Les colonnes 0010 et 0110 dominent celle de 1110. Elles doivent tre limines : 0101 0x01 01x1 011x x00x x0x0 xx10 0111 1001 1110
* *
* * * *
On peut maintenant procder llimination des lignes. On sait quune ligne est limine si elle est domine par une autre. Comme on peut le voir, la ligne de limpliquant premier 01x1 domine celle de 0x01 et de 011x (son cot est galement infrieur la somme des leur). On limine les deux lignes : 0101 01x1 x00x x0x0 xx10 0111 1001 1110
* * *
Finalement, la ligne de x0x0 est domine par toutes les autres. Elle doit tre limine : 0101 01x1 x00x xx10 0111 1001 1110
* * *
83
4 - O P T I M I S A T I O N
D E S
C I R C U I T S
C O M B I N A T O I R E S
Le tableau est maintenant compltement rduit. Nous pouvons dduire lexpression de la fonction : f (A,B,C,D) = x00x + xx10 + 01x1 = B C + C D + A BD
Remarque
Si nous prenons le temps danalyser correctement la mthode de rduction du tableau, on se rend vite compte quelle nest quune traduction graphique de la mthode de Petrick. En effet, la mthode de rduction de tableau permet dliminer une colonne si elle est domine par une autre, ce qui nest autre chose que la traduction graphique du thorme dabsorption utilis par la mthode de Petrick. Rappelons que dans ce cas, la thorie stipule : X(X+Y)=X : (X) correspond la colonne domine, (X+Y) la colonne dominante et limine. Llimination de la ligne est galement une traduction graphique (quoi quun peu plus subtile) de la mthode de Petrick dans lutilisation du thorme dabsorption et qui stipule : X+XY=X : X est la ligne dominante, Y la ligne domine et limine,
84