Sunteți pe pagina 1din 30

4

Optimisation des circuits combinatoires

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

4.1 Table de Karnaugh


Nous commenons ce chapitre par considrer les tables de Karnaugh. Les tables de Karnaugh sont une reprsentation tabulaire des diagrammes de Venn prsents au chapitre 2. Les tables de Karnaugh reprsentent des fonctions plusieurs variables, le nombre de variables pouvant aller de deux (2) un maximum de six (6). Nous allons considrer dans un premier temps le cas des tables de Karnaugh 2, 3 et 4 variables. Les tables de Karnaugh 5 ou 6 variables seront galement prsentes mais on prfrera solutionner ce type de problmes par une approche dite de variables inscrites. Nous considrerons donc attentivement les techniques relatives linscription des variables indpendantes dans les tables de Karnaugh aprs avoir trait des considrations relatives aux problmes doptimisation cas facultatifs.

4.1.1 Table de Karnaugh deux variables


La figure suivante prsente une fonction logique reprsente sous forme dune table de vrit et la table de Karnaugh qui lui est associ.
1

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.

4.1.2 Table de Karnaugh trois variables


La figure suivante prsente un exemple de table de Karnaugh trois variables. La fonction logique dpend des trois variables A, B et C. Ces dernires sont rparties en priphrie de la table de Karnaugh. Linscription BC indique les valeurs prises par les variables B et C respectivement. Ainsi, 00 correspond B=0, C=0; 01 B=0, C=1, et ainsi de suite.

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.1.3 Table de Karnaugh quatre variables


La table de Karnaugh quatre variables est certainement le cas de figure le plus utilis. Les lignes cette fois prennent les valeurs de deux variables et non plus dune seule, et sont arrangs selon le code de Grey :

Les lignes correspondent aux variables A et B, les colonnes aux variables C et D. 57

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 :

Cas de quatre cellules adjacentes formant un carr ou un rectangle :

Cas de huit cellules adjacentes formant un rectangle :

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 :

4.1.4 valuation de la fonction logique


Jusquici, nous nous sommes contents dextraire un terme des tables de Karnaugh sans valuer la fonction logique. Avant de prsenter la mthode de simplification par table de Karnaugh de manire systmatique et rigoureuse, considrons pas pas un exemple pdagogique. Reprenons cet effet lexemple prcdent de la fonction quatre variables A, B, C et D. Les deux cellules droite de la seconde ligne contiennent des 1 et peuvent tre unis :

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.

4.1.5 Unir les maxterms


Il est galement possible dunir les maxterms dune table de Karnaugh plutt que les minterms comme nous lavons fait jusquici. Pour ce faire, il suffit de procder de maniere inverse. On cherchera runir les 0 plutt que les 1 dans la table. Les variables dans les termes ainsi obtenus sont exprims sous forme positive (non inverse) si elles ne prennent que la valeur 0, autrement, elles sont exprimes sous forme ngative (inverse). La fonction simplifie est exprime sous forme dun produit de sommes.

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.

4.1.6 Impliquant/impliqu premier et essentiel


La prsente section va nous permettre de dfinir un lexique qui nous sera utile pour mieux comprendre les algorithmes de simplification des fonctions logiques. Les termes seront introduits dans le contexte des tables de Karnaugh bien que leur applicabilit soit plus gnrale. Ltude de la mthode Quine-McCLuskey permettra de mieux apprcier la gnralisation. Nous dfinissons limpliquant (resp. limpliqu) comme un terme regroupant des cellules adjacentes dune table de Karnaugh contenant la valeur logique 1 (resp. 0) et formant un rectangle dont les cts sont une puissance de 2 (1, 2, 4). Nous dfinissons galement limpliquant premier (resp. limpliqu premier) comme un impliquant (resp. un impliqu) dfini par un rectangle qui ne peut tre circonscrit dans aucun rectangle associ un autre impliquant (resp. impliqu). Nous dfinissons finalement limpliquant premier essentiel (resp. limpliqu premier essentiel) comme un impliquant premier (resp. un impliqu premier) qui possde au moins une cellule qui nest contenue dans aucun autre impliquant premier (resp. impliqu premier).

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 commence par chercher des impliquants premiers comportant 8 cellules : Il ny en a pas.

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

Ce qui nous permet dexprimer la fonction logique : f (A, B, C, D) = A C +ACD+BC D .

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

Ce qui nous permet dexprimer la fonction logique : f (A, B, C, D) = ( A +C )( A+ C + D )( B+ C +D ). 64

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.1.7 Karnaugh avec cas facultatifs


Il arrive parfois quune fonction logique ne soit pas dfinie pour lensemble des combinaisons possibles de ses variables dentre. Ces combinaisons, pour lesquelles les sorties sont dites facultatives, rsultent souvent de la pratique o nombre de cas ne sont pas considrer. Ce quon entend par le fait de dire que la sortie est facultative, cest quelle peut prendre indiffremment la valeur 0 ou 1 sans affecter le comportement attendu du systme. Les techniques doptimisation profitent alors de cette tolrance pour optimiser davantage le rsultat. Grce leur qualit dillustration graphique, les tables de Karnaugh permettent une exploitation lgante de ces conditions favorables. Considrons lexemple donn par la table de vrit suivante. La dernire ligne englobe lensemble des combinaisons non numre (reprsents par deux tirets --) et correspondant aux minterms 10 15 de la fonction f. Les valeurs facultatives de f sont reprsents par un seul tiret (-). Minterm 0 1 2 3 4 5 6 7 8 9 10-15 a3 0 0 0 0 0 0 0 0 1 1 -a2 0 0 0 0 1 1 1 1 0 0 -a1 0 0 1 1 0 0 1 1 0 0 -a0 0 1 0 1 0 1 0 1 0 1 -f 1 0 0 1 0 0 1 0 0 1 -

Lquivalent de cette table de vrit en table de Karnaugh suit :

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.

On limine les impliquants premiers ne comportant que les cas facultatifs :

3.

On identifie les impliquants premiers essentiels, il y en a quatre.

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

4.1.8 Karnaugh variables inscrites


Nous avons vu prcdemment que les tables de Karnaugh sont utilises pour simplifier des fonctions plusieurs variables, le nombre de variables allant de 2 6. Or nous navons abord que les tables de Karnaugh 2, 3 et 4 variables. Les deux derniers modles sont en fait assez difficiles utiliser et peu usits dans la pratique. On leur prfre une criture plus lgante et plus facile manier qui est celle des tables de Karnaugh variables inscrites. Une table de Karnaugh variables inscrites est une table de Karnaugh habituelle dans laquelle on inscrit une ou plusieurs des variables indpendantes lintrieur de la table. Par exemple :

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

f est linverse de C : C f vaut toujours 1 : 1 f vaut toujours 0 : 0 f est gal C : C

On peut en fait utiliser la dcomposition de Shannon pour gnraliser la chose ainsi :


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.

4.2 Technique de Quine-McCluskey


La technique de Quine-McCluskey est proche de celle de la table de Karnaugh mais recourt un formalisme permettant de manipuler plus que 6 variables. Ainsi, la technique de Quine-McCluskey permet de rsoudre des problmes 10 voire 15 variables indpendantes. La technique de Quine-McCluskey tant principalement une mthode algorithmique destine une excution logicielle, elle ne sera pas particulirement utilise dans le reste du manuel. Nanmoins, il importe au futur ingnieur de comprendre le fonctionnement de la technique et de pouvoir lexcuter la main pour faire le parallle avec la mthode de Karnaugh.

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

4.2.1 Formulation de lalgorithme


La technique de Quine-McCluskey sapplique de la mme manire aux expressions disjonctives quaux expressions conjonctives. Nous nous concentrerons dans ce qui suit sur le cas des expressions disjonctives. Lalgorithme sexprime ainsi : 1. 2. 3. 4. 5. 6. 7. 8. 9. Exprimer la fonction sous forme canonique disjonctive ; Exprimer les minterms sous forme binaire ; Grouper les termes selon leur poids ; Unir les termes deux deux ; Rpter ltape (4) autant de fois que ncessaire ; Identifier les impliquants premiers ; Identifier les impliquants premiers essentiels ; Si la fonction est entirement exprime par ses impliquants premiers essentiels, arrter ; Sinon, choisir, les impliquants premiers non essentiels permettant une couverture complte.

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.

Exprimer la fonction sous forme canonique disjonctive

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

ABCD AB C D AB C D ABCD A BCD

1111 1000 1101 0101 0111

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.

Rpter ltape (4) autant de fois que ncessaire

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.

Identifier les impliquants premiers essentiels

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

Exprimer la fonction sous forme canonique disjonctive

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

Remarquer quil ny a pas de minterm dans le groupe de poids 1!

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

(*) (*) (*) (*)


75

* * (*)

* *

Les impliquants essentiels sont : 0000, 1x10, 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

4.2.2 Choix des impliquants premiers


Dans la section prcdente, il na jamais t utile dappliquer ltape (9) de lalgorithme. Cette tape peut parfois tre simple effectuer si la solution est vidente. Considrons par exemple le cas dune fonction pour laquelle lapplication de la technique de Quine-McCluskey mne au rsultat suivant :
0x01 01x1 011x x00x x0x0 xx10 0000 0001 0010 0101 0110 0111 1000 1001 1010 1110 * * * * * * * * * (*) * * * * * * * (*)

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

4.2.3 Mthode de Petrick


Choisir les impliquants premiers de ltape (9) de la mthode Quine-McCluskey nest pas toujours ais. Il est alors prfrable davoir recours une mthode systmatique. La mthode de Petrick est une mthode systmatique utilisant lalgbre de Boole. Reprenons pour lillustrer le tableau prcdent :
0000 0001 0010 0101 0110 0111 1000 1001 1010 1110 0x01 * * 01x1 * * 011x * * x00x * * * * x0x0 * * * * xx10 * * * *

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

4.2.4 Mthode de Quine-McCluskey et expression conjonctive


Nous allons prsenter ici un exemple de problme o lon aura recours la mthode Quine-McCluskey o lexpression simplifie recherche est sous forme conjonctive. Pour ce faire, nous considrons la table de vrit de la fonction logique F(A,B,C,D) :
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 1 1 1 0 0 0 1 1 1 1 1 -

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 :

4.2.5 Rduction du tableau


Une autre technique consiste rduire le tableau obtenu ltape (7). Afin dillustrer la mthode, reprenons lexemple prcdent : 0000 0001 0010 0101 0110 0111 1000 1001 1010 1110 0x01 * * 01x1 * * 011x * * x00x * * * * x0x0 * * * * xx10 * * * Une notion importante pour effectuer la rduction du tableau est celle de domination : Une ligne/colonne peut dominer une autre ligne/colonne Une ligne/colonne peut tre domine par une autre ligne/colonne Ainsi, on acceptera que : Une ligne/colonne domine une autre si la premire contient toutes les toiles de la seconde, et davantage. Rciproquement, on dit que la seconde ligne/colonne est domine par la premire.

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

S-ar putea să vă placă și