18.01.2015 Views

CHAPITRE 3 LES CIRCUITS LOGIQUES. - UQAC

CHAPITRE 3 LES CIRCUITS LOGIQUES. - UQAC

CHAPITRE 3 LES CIRCUITS LOGIQUES. - UQAC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

<strong>CHAPITRE</strong> 3<br />

<strong>LES</strong> <strong>CIRCUITS</strong> <strong>LOGIQUES</strong>.<br />

1. Les circuits logiques<br />

L'ordinateur est un dispositif électronique sophistiqué qui traite l'information mise sous forme<br />

d'impulsions électriques traduisant les chaînes binaires utilisées pour représenter les symboles<br />

qu’on y introduit codés sous forme d’une suite bits. Rappelons qu’un ordinateur ne comprend que<br />

les impulsions électriques.<br />

Les traitements, pour leur part, sont essentiellement réalisés à l'aide d'opérations telles l'addition,<br />

la soustraction, la multiplication, la division, la comparaison. Plus fondamentalement, les<br />

opérations sont composées d'opérations logiques qui sont effectuées par des circuits logiques de<br />

base appelés portes. Une porte est en fait un circuit combinatoire à une ou plusieurs entrées et à<br />

au moins une sortie. Les conditions aux entrées d'une porte déterminent l'état des sorties. Il existe<br />

trois portes de base correspondant aux trois opérations logiques: OU, ET, NON.<br />

1.1. Algèbre de Boole .<br />

On dit que les portes OU, ET, NON sont des opérateurs booléens, parce qu'ils impliquent ou<br />

traitent des variables booléennes, c'est à dire des variables logiques qui ne peuvent prendre que<br />

deux valeurs: 0 et 1. Le terme booléen vient du nom du mathématicien anglais George Boole<br />

(1815-1864), qui fit une analyse mathématique de la logique.<br />

L'ensemble des règles relatives au traitement des variables booléennes est appelé algèbre de<br />

Boole ou treillis booléen.<br />

Nous reviendrons plus loin aux règles du treillis booléen. Mais d'abord, regardons de plus près les<br />

trois portes fondamentales: OU, ET, NON.<br />

La porte OU .<br />

L'opération OU appliquée à une ou plusieurs variables conduit à l'addition logique de ces<br />

variables (résumée dans la table de vérité qui suit). Elle est aussi appelée réunion et elle est notée<br />

par le signe ∪, ou plus simplement par +.<br />

1


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Figure 1 : Porte OU. Table de vérité<br />

TABLE DE VÉRITÉ<br />

a U b<br />

+ 0 1<br />

0 0 1<br />

1 1 1<br />

entrées<br />

sortie<br />

a b a+b<br />

0 0 0<br />

0 1 1<br />

1 0 1<br />

1 1 1<br />

L'addition logique peut s'étendre aux chaînes binaires où les bits de même rang sont additionnés<br />

selon la table de vérité de l'addition simple:<br />

Figure 2 : Porte Ou, Table binaire<br />

0 0 1 1<br />

0 1 0 1<br />

OU<br />

0 1 1 1<br />

Pour représenter la porte OU dans les circuits, on utilise le symbole suivant:<br />

Figure 3 : Porte OU, Symbole<br />

a<br />

b<br />

a + b ( a U b )<br />

Bien sûr, la boîte noire qui porte le nom OU dans le schéma ne décrit pas le circuit électronique<br />

approprié pour réaliser la fonction OU. Voici un circuit électrique simple qui pourrait réaliser la<br />

fonction OU:<br />

2


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Figure 4 : Porte OU, Schéma<br />

aimant<br />

sortie<br />

entrée<br />

entrée<br />

OU<br />

courant<br />

Un signal électrique à l'entrée actionne un aimant provoquant la fermeture de la porte et<br />

permettant le passage du courant. Disons tout de suite, qu'un tel circuit est tout à fait démodé. Sa<br />

grande simplicité nous permet cependant de bien comprendre ce que fait le circuit. Nous<br />

aborderons plus loin les technologies de maintenant.<br />

1.1.1 La porte ET .<br />

Un circuit ET possède, tout comme le OU, deux ou plusieurs entrées et une sortie. Le ET<br />

correspond au produit logique ( ⋅ ) ou X ou encore a l’intersection ∩<br />

Figure 5 : Porte ET, Table de vérité<br />

0 1<br />

0 0 0<br />

1 0 1<br />

TABLE DE VÉRITÉ<br />

a<br />

entrées<br />

b<br />

sortie<br />

.<br />

a b a b<br />

0 0 0<br />

0 1 0<br />

1 0 0<br />

1 1 1<br />

L'opération de multiplication peut comme les précédentes s'étendre aux chaînes binaires.<br />

3


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Figure 6 : Porte ET, Table binaire<br />

0 0 1 1<br />

0 1 0 1<br />

ET<br />

0 0 0 1<br />

On représente la porte ET par le symbole suivant:<br />

Figure 7 : Porte ET, Symbole<br />

a<br />

b<br />

a b [ ou ( a b )]<br />

On pourrait décrire simplement le fonctionnement de la porte ET avec ce circuit primitif:<br />

Figure 8 : Porte ET, Schéma<br />

aimant<br />

sortie<br />

entrée<br />

entrée<br />

ET<br />

courant<br />

1.1.2 La porte NON .<br />

La porte NON a une entrée et une sortie. Les deux ont toujours des valeurs opposées. C'est donc<br />

dire que si la valeur 0 se présente à l'entrée, on aura la valeur 1 à la sortie et vice-versa. On peut<br />

résumer l'effet de cet opérateur unaire dans la table de vérité suivante:<br />

4


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Figure 9 : Porte NON, Table de vérité<br />

TABLE DE VÉRITÉ<br />

NON<br />

a<br />

entrée<br />

sortie<br />

a a<br />

0 1<br />

1 0<br />

Par convention on note A l’inverse de A.<br />

L'exemple suivant montre l'opération d'inversion inversion étendue à une chaîne binaire:<br />

Figure 10 : Porte NON, Table binaire<br />

1 0 1 0 1 1 0 NON 0 1 0 1 0 0 1<br />

Figure 11 : Porte NON, Symbole<br />

Dans les dessins des circuits, on représente la porte NON par le symbole suivant:<br />

a<br />

a<br />

Le fonctionnement de la porte NON pourrait s'illustrer par le circuit primitif suivant:<br />

5


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Figure 12 : Porte NON, Schéma<br />

NON<br />

aimant<br />

sortie<br />

courant<br />

entrée<br />

Remarque: La porte OU et la porte ET peuvent être inversées pour former les portes NON-OU<br />

(NOR) et NON-ET (NAND). L'inversion est représentée graphiquement par un petit cercle à la<br />

sortie.<br />

Figure 13 : Porte NON-ET, NON-OU, Symbole<br />

NON-OU<br />

NON-ET<br />

Les tables de vérité deviennent:<br />

Figure 14 : Porte NON-ET, NON-OU, Table de vérité<br />

.<br />

TABLE DE VERITÉ<br />

PORTE NON-OU<br />

a b a + b<br />

0 0 1<br />

0 1 0<br />

1 0 0<br />

1 1 0<br />

TABLE DE VERITÉ<br />

PORTE NON-ET<br />

a b a ⋅ b<br />

0 0 1<br />

0 1 1<br />

1 0 1<br />

1 1 0<br />

6


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

1.1.3 Le OU-exclusif .<br />

On peut retrouver la fonction et sa table de vérité à partir du circuit, il suffit de se rappeler la<br />

signification de chaque symbole. Voyons l'exemple suivant.<br />

Figure 15 : Porte XOU, Schéma<br />

a<br />

a<br />

b<br />

b<br />

a b<br />

a b<br />

a b + a b<br />

sortie<br />

La table de vérité recherchée du circuit est alors la suivante:<br />

Figure 16 : Porte Xou, Table de vérité<br />

Table de vérité<br />

a b S<br />

0 0 0<br />

0 1 1<br />

1 0 1<br />

1 1 0<br />

Le tableau suivant nous permet de reconstruire la table de vérité. Pour faciliter le travail, on<br />

ajoute, si on veut, quelques colonnes servant à noter certains résultats intermédiaires.<br />

Figure 17 : Porte XOU, Table de vérité équivalente<br />

A b a b a• b a• b ( a• b) + ( a•<br />

b)<br />

0 0 1 1 0 0 0<br />

0 1 1 0 1 0 1<br />

1 0 0 1 0 1 1<br />

1 1 0 0 0 0 0<br />

7


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Ce circuit, où la sortie est vraie (=1) seulement si les deux entrées sont différentes, est très utilisé<br />

en pratique. Malgré sa complexité apparente, il est plus simple à réaliser électroniquement et cela<br />

pour plusieurs technologies qu'un ET ou un OU. Il est nommé OU-EXCLUSIF ou XOR. Dans les<br />

dessins des circuits électroniques, on le représente par le symbole suivant:<br />

Figure 18<br />

a<br />

b<br />

a + b = a b + a b<br />

Ce circuit pourrait être utilisé pour faire l'addition de deux bits (sans tenir compte de la retenue).<br />

Il représente à la sortie la fonction f(a,b):<br />

f ( a, b) = ( a• b) + ( a•<br />

b)<br />

1.1.4 Circuits équivalents .<br />

On peut maintenant se demander si plusieurs circuits différents peuvent représenter la même<br />

fonction. La réponse est affirmative. Tout comme il existe une infinité d'expressions<br />

mathématiques qui donnent, par exemple, le résultat 5:<br />

7 - 2 = 5<br />

15 / 3 = 5<br />

9 - 4 = 5<br />

2 + 3 = 5<br />

Il existe une infinité de circuits qui peuvent représenter une fonction booléenne donnée, tout<br />

comme il existe une infinité de programmes C qui peuvent produire le même résultat. Ainsi, on<br />

peut démontrer, à titre d'exemple, que la fonction<br />

S = ( a+ b) •( a•<br />

b)<br />

possède la même table de vérité que la fonction<br />

S = ( a• b) + ( a•<br />

b)<br />

Les fonctions sont alors dites équivalentes. On peut facilement construire le circuit de cette<br />

fonction équivalente, et on obtient:<br />

8


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

a<br />

b<br />

S<br />

Comme nous le verrons plus loin, cette fonction correspond à un additionneur. Il additionne deux<br />

entrées booléennes sans tenir compte d'une retenue. On a alors le principe suivant:<br />

Deux fonctions logiques sont dites équivalentes si, et seulement s,i les valeurs de leurs sorties<br />

sont les mêmes pour chacune des configurations identiques de leurs variables d'entrée.<br />

Note: Certains circuits sont plus faciles à réaliser que d'autres car ils ont moins d'éléments de<br />

base équivalents aux transistors conventionnels. Ainsi, on considère souvent que les portes NON-<br />

ET et NON-OU sont élaborées avec deux équivalents transistors alors que les portes ET et OU en<br />

nécessitent trois. C'est un peu pour cette raison que beaucoup de circuits qu'on retrouve dans les<br />

ordinateurs d'aujourd'hui sont construits avec des portes NON-ET et NON-OU.<br />

Une autre raison pour laquelle les portes NON-OU et NON-ET sont plus largement utilisées que<br />

les autres, c'est que ces portes sont dites complètes, c'est à dire qu'on peut réaliser n'importe<br />

quelle fonction booléenne avec uniquement l'une ou l'autre de ces portes. Parmi les portes<br />

élémentaires, seules les portes NON-ET et NON-OU possèdent cette particularité.<br />

La notion de circuits équivalents sera utilisée afin de construire des circuits complexes au<br />

meilleur coût selon la technologie qu'il utilise. Le constructeur pourra décider, par exemple, de<br />

trouver une fonction équivalente qui utilise des portes NON-ET et NON-OU au lieu d'une<br />

fonction qui utilise des portes OU et ET, afin de construire un circuit moins coûteux pour<br />

certaines technologies.<br />

1.1.4.1 Exemple de circuits équivalents .<br />

Imaginons que, pour répondre à des contraintes économiques, on veut construire un additionneur<br />

qui soit équivalent au circuit précédent, mais qui soit construit uniquement à partir de portes<br />

NON-ET. Le dessin de ce circuit aurait l'allure suivante:<br />

A<br />

B<br />

C<br />

D<br />

9


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Les deux fonctions de ce circuit sont:<br />

C = AAB • ABB<br />

D = AB<br />

où la fonction C est l'additionneur proprement dit, tandis que la fonction D est celle qui produit<br />

une retenue.<br />

À partir de ces fonctions, on peut reconstituer la table de vérité en construisant le tableau<br />

suivant:<br />

A B AB AAB ABB AAB • ABB AAB • ABB<br />

0 0 1 1 1 1 0<br />

0 1 1 1 0 0 1<br />

1 0 1 0 1 0 1<br />

1 1 0 1 1 1 0<br />

La table de vérité est la même. Cela confirme bien l'équivalence de ces deux circuits.<br />

1.1.4.2. Réalisation de portes logiques de base à l’aide des portes NON-ET<br />

(voir en classe, page 57)<br />

1. Porte NON :<br />

2. Porte ET :<br />

3. Porte OU :<br />

1.2. Règles de l’algèbre de Boole .<br />

Puisque des circuits équivalents peuvent être construits avec un nombre plus ou moins grand de<br />

portes, on tentera de trouver la fonction optimale. Pour ce faire, il faut simplifier la fonction en y<br />

appliquant les règles de l'algèbre de Boole. La table ci-dessous résume l’essentiel de ces règles.<br />

Noter que la table de Boole est présentée sous deux formes : une pour l’opérateur ET et l’autre<br />

pour l’opérateur OU.<br />

10


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Principales règles de l’algèbre de Boole.<br />

Loi Multiplication Addition<br />

ET<br />

OU<br />

Nullité 1 a • 0= 0<br />

2 a + 1 = 1<br />

Identité 3 a• 1 = a<br />

4 a + 0 = a<br />

Idempotence 5 a• a= a<br />

6 a + a = a<br />

Inversion 7 a• a = 0<br />

8 a+ a=<br />

1<br />

Commutativité 9 a• b= b• a<br />

10 a + b = b + a<br />

Absorption 11 a• ( a+ b)<br />

= a<br />

12 a+ ( a• b)<br />

= a<br />

Distributivité 13 a+ ( b• c) = ( a+ b) •( a+ c)<br />

14 a• ( b+ c)<br />

= a• b+ a•<br />

c<br />

Associativité 15 a• ( b• c) = ( a• b)<br />

• c 16 a + (b + c) = (a + b) + c<br />

De Morgan 17 ab = a + b<br />

18 a+ b= a•<br />

b<br />

Les égalités suivantes sont aussi utiles:<br />

19. a• b+ a• b=<br />

a<br />

20. a+ b= a+ ( a•<br />

b)<br />

21. a+ b= ( a• b) + ( a• b) + ( a•<br />

b)<br />

22. ( a• b) + ( a• b)<br />

= a<br />

23. ( a• b) + ( a• b) + ( a• b) + ( a• b) = 1<br />

24. ( a+ b) + ( a+ b) = ( a• b) + ( a•<br />

b)<br />

25. ( a+ b) •( a• b) = ( a• b) + ( a•<br />

b)<br />

26. a=<br />

a<br />

Note : Ces lois peuvent être prouver de deux manières différentes : algébrique ou tabulaire.<br />

Méthode algébrique : cette méthode consiste à prouver d’une manière analytique en auyant<br />

recours à d’autres lois ou postulats. Par exemple, nous allons démontrer le théorème ( de<br />

l’idempotence- loi 6) suivant :<br />

a + a = a<br />

a + a = ( a + a)<br />

• 1 (théorème de l’élément identité; loi 3)<br />

a + a = ( a + a)<br />

• ( a + a)<br />

(théorème de l’inversion; loi 8)<br />

a + a = a + ( a • a) (théorème de distributivité; loi 13)<br />

a + a = a + 0 (théorème de l’inversion; loi 7)<br />

11


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

a + a = a (théorème de l’élément d’identité; loi 4)<br />

Exemple 2 (méthode tabulaire): Comme les variables logiques ne prennent que deux valeurs,<br />

la méthode tabulaire consiste à énumérer tous les cas possibles et à vérifier pour chaque cas, la<br />

véracité de la loi. On dit que la preuve est le résultat d’un raisonnement par induction. Par<br />

exemple, la loi de Morgan est prouvée comme suit :<br />

A B A B A • B A + B A • B A + B<br />

0 0 1 1 1 1 1 1<br />

0 1 1 0 0 1 1 0<br />

1 0 0 1 0 1 1 0<br />

1 1 0 0 0 0 0 0<br />

Comment tranformer une table de vérité en une fonction analytique<br />

Il est clair qu’il est plus commode de manipuler une fonction qu’une table de vérité. Dans cette<br />

section, nous allons voir comment passer d’une table de vérité à une fonction qui lui correspond.<br />

À partir de la table de vérité, nous pouvons avoir deux formes analytiques, dénommées formes<br />

canoniques.<br />

Pour montrer les deux formes canoniques que nous pouvons obtenir à partir de la table de vérité,<br />

nous allons considérer une table quelconque définie comme suit :<br />

A B C F(A,B,C)<br />

0 0 0 1<br />

0 0 1 0<br />

0 1 0 1<br />

0 1 1 0<br />

1 0 0 1<br />

1 0 1 1<br />

1 1 0 1<br />

1 1 1 0<br />

Pour chacune des huit combinaisons de trios variables (000, 001, … 111), on peut définir un<br />

terme produit, qu’on appelle minterme, égal au ET des variables qui composent cette<br />

combinaison (A ou A , B ou B et C ou C ). Par exemple, pour la combinaison A = 0, B = 1 et C =<br />

= 1, le minterme s’exprime par A • B • C ; la combinaison A =1, B = 0 et C =0 s’exprime par<br />

A • B • C .<br />

La fonction logique F prend la valeur 1 pour chaque fois qu’un minterme prend lui aussi la valeur<br />

1. Par conséquent, on pourra exprimer une fonction logique F quelconque en effectuant la somme<br />

logique de tous les mintermes pour lesquelles F = 1. Ainsi, pour notre exemple, on aura :<br />

12


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

F ( A,<br />

B,<br />

C)<br />

=<br />

A • B • C + A • B • C + A • B • C + A • B • C + A • B • C<br />

Cette forme d’écriture s’appelle forme canonique P.<br />

Il existe une autre forme, qu’on appelle forme canonique S pour exprimer la fonction logique en<br />

question. En effet, au lieu d’utiliser le produit, on utilise la somme. Ainsi, Pour chacune des huit<br />

combinaisons de trios variables (000, 001, … 111), on peut définir un terme somme, qu’on<br />

appelle minterme, égal au ou des variables qui composent cette combinaison (A ou A , B ou B et<br />

C ou C ). Par exemple, pour la combinaison A = 0, B = 1 et C = 1, le minterme s’exprime par<br />

A + B + C ; la combinaison A =1, B = 0 et C = 0 s’exprime par A + B + C .<br />

La fonction logique F prend la valeur 0 pour chaque fois qu’un minterme prend lui aussi la valeur<br />

0. Par conséquent on pourra exprimer une fonction logique F quelconque en effectuant le produit<br />

logique de la somme tous les mintermes pour lesquelles F = 0. Ainsi, pour notre exemple, on<br />

aura :<br />

F ( A,<br />

B,<br />

C)<br />

= ( A + B + C)<br />

• ( A + B + C)<br />

• (( A + B + C)<br />

Cette forme d’écriture s’appelle forme canonique P.<br />

Il y a lieu de noter que ces deux formes d’écriture de la fonction F sont équivalentes, puisqu’elles<br />

expriment la même fonction F. Pour prouver cette affirmation, nous allons reconsidérer sa table<br />

de vérité. Si, pour une ligne, la fonction F vaut 0, son minterme correspondant vaut lui aussi 0.<br />

Par conséquent, la fonction 0 vaut 0 pour la somme des minterme qui valent 0. Autrement dit,<br />

une autre manière d’écrire la fonction canonique P de la fonction logique F est :<br />

F ( A,<br />

B,<br />

C)<br />

= ( A • B • C)<br />

+ ( A • B • C)<br />

+ ( A • C • C)<br />

En effet, en considérant le complément de cette dernière expression, nous pouvons effectuer la<br />

succession suivante d’opérations logiques<br />

F ( A,<br />

B,<br />

C)<br />

= F(<br />

A,<br />

B,<br />

C)<br />

= A • B • C + A • B • C + A • B • C<br />

= ( C • A • B)<br />

• ( C • A • B)<br />

• ( A • B • C)<br />

= ( A + B + C) • ( A + B + C) • ( A + B + C)<br />

= ( A + B + C) • ( A + B + C) • ( A + B + C)<br />

ce qui vérifie l’équivalence des formes canoniques.<br />

13


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Simplification des fonctions logiques<br />

Les deux formes canoniques d’une fonction logique sont équivalentes, mais habituellement<br />

aucune d’entre-elles n’en constitue l’expression la plus simple. En pratique, on souhaite<br />

simplifier une fonction logique définie par sa table de vérité. Par simplification, on cherche à<br />

obtenir une écriture plus succincte, qui contienne moins de variables et moins de termes produits<br />

(ou sommes), donc qui conduise à une réalisation matérielle plus simple et aussi moins coûteuse.<br />

Les méthodes de simplification utilisent les loi de l’algèbre de Boole.<br />

Il existe deux manières de procéder : manipulation algébrique et tables de Karnaugh.<br />

1. Manipulation algébrique : en utilisant d’une manière adéquate les règles de l’algèbre de<br />

Boole, on arrive souvent à simplifier la formule de départ.<br />

Exemple : soit la forme suivante :<br />

F ( A,<br />

B,<br />

C)<br />

= A • B • C + A • B • C + A • B • C + A • B • C + A • B • C<br />

Conformément au théorème de distributivité précédent, nous pouvons grouper les termes produits<br />

qui contient deux variables identiques. De la même manière, conformément au théorème de<br />

d’idempotence, le processus de groupement nous permet d’utiliser un terme produit plusieurs<br />

fois. Par conséquent,<br />

F ( A,<br />

B,<br />

C)<br />

= A • C • ( B + B)<br />

+ B • C • ( A + A)<br />

+ A • B • ( C + C)<br />

+ A • C • ( B + B)<br />

En considérant le théorème de l’inversion et celui de l’élément d’identité, nous pouvons éliminer<br />

les parenthèses de la relation ci-dessus, ce qui conduit à la relation suivante :<br />

F ( A,<br />

B,<br />

C)<br />

=<br />

A • C + B • C + A • B + A • C<br />

D’où, après un autre regroupement, on obtient :<br />

F ( A,<br />

B,<br />

C)<br />

= C • ( A + A)<br />

+ B • C)<br />

+ A • B)<br />

Finalement, après l’élimination de la dernière parenthèse et à l’aide du théorème d’absorptio,<br />

nous arrivions à l’expression simplifiée suivante de la fonction F(A,B,C) :<br />

F ( A,<br />

B,<br />

C)<br />

= C + A • B<br />

Le schéma de cette fonction est comme ci-dessous (voir en classe) :<br />

14


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

2. Diagramme de Karnaugh<br />

Parce que la simplification par la manipulation algébrique est difficile, l’informaticien préfère des<br />

méthode graphiques de simplification, et depuis peu, des méthodes implantées par programme.<br />

La méthode graphique de simplification la plus connue est celle du diagramme de Karnaugh,<br />

facile à utiliser pour la simplification des fonctions booléennes ayant jusqu’à six variables. Le<br />

diagramme de Karnaugh d’une fonction logique est une transformation graphique de la table de<br />

vérité qui permet la visualisation de tous les mintermes. Si une fonction logique dépend de n<br />

variables alors elle peut avoir 2 n mintermes. Chacun de ces mintermes est représenté par une<br />

case dans le diagramme de Karnaugh. Les cases sont placées d’une façon telle que les mintermes<br />

qui ne différent que par l’etat d’une seule variable, appelée minterme adjacents, ont une frontière<br />

commune sur une ligne ou sur une colonne, ou bien se trouvent aux extrémités d’une ligne ou<br />

d’une colonne (fonctions ayant jusqu’à 4 variables). Les figures ci-dessous représentent les<br />

diagrammes de Karnaugh pour deux, trois et quatre variables et ce dans la forme canonique P.<br />

Les figures de tables de tables de Karnaugh<br />

Les inclure ici en classe (page 43).<br />

Méthode de Karnaugh<br />

• transposition du tableau de vérité dans un tableau de Karnaugh ;<br />

• réalisation des groupements de 1, 2, 4, 8 termes ;<br />

• minimisation des groupements (maximisation des termes dans un groupement) ;<br />

• si groupement d'un terme, alors on ne fait rien ;<br />

• si 2 termes, on élimine la variable qui change d'état et on conserve le produit des variables<br />

directes ou inverses qui n'ont pas changé d'état dans le groupement ( ) ;<br />

• pour 4 termes, on élimine les 2 variables qui changent d'état ;<br />

• pour 8 termes, on élimine les 3 variables qui changent d'état ;<br />

• l'expression logique finale est la réunion des groupements après élimination des variables.<br />

Un groupement se fait comme suit :<br />

1- Toutes les cellules adjacentes contenant un 1 sont regroupées ensemble<br />

2- Le groupe doit avoir une forme rectangulaire<br />

3- Le nombre de cellules contenant un 1 de chaque groupe doit être une puissance de 2<br />

15


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Étude de quelques exemples<br />

1 1 1 1<br />

1 1 1 1<br />

0 1 1 0<br />

0 1 1 0<br />

1 0 0 1<br />

0 1 1 0<br />

0 1 1 0<br />

1 0 0 1<br />

1 0 0 1<br />

1 1 1 1<br />

1 1 0 0<br />

0 0 0 0<br />

M = N = P =<br />

0 0 1 0<br />

1 0 1 1<br />

1 1 1 1<br />

0 0 1 0<br />

0 1 1 0<br />

1 0 0 1<br />

1 0 0 1<br />

0 1 1 0<br />

0 1 0 1<br />

1 0 1 1<br />

0 1 0 1<br />

1 1 1 1<br />

R =<br />

S = T =<br />

Voir aussi en classe pages 46, 47.<br />

Les valeurs indifférentes (X)<br />

Certaines fonctions logiques sont dites incomplètement définies: certaines combinaisons de leurs<br />

variables d'entrées ne sont supposées jamais se produire ou ne pas avoir d'effet sur le résultat. On<br />

appelle ces combinaisons valeurs indifférentes (don't care values) et on les note par ‘X’ dans les<br />

tables de vérités.<br />

Dans les diagrammes de Karnaugh, on les considère comme des 1 seulement pour faire des<br />

groupements plus grands, et donc des simplifications plus grandes.<br />

16


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Exemples<br />

X 1 1 1<br />

0 X 1 0<br />

0 0 1 0<br />

0 0 1 0<br />

0 1 X 0<br />

0 1 X 1<br />

0 1 X X<br />

1 0 X X<br />

1 0 X 1<br />

0 1 X 1<br />

1 1 X X<br />

0 1 X X<br />

M = N = P =<br />

R =<br />

0 0 1 0<br />

1 1 X 1<br />

1 0 1 1<br />

0 0 X 0<br />

1 1 1 1<br />

0 0 X X<br />

0 0 1 0<br />

1 1 X X<br />

1 1 X 1<br />

0 1 X 1<br />

0 0 X X<br />

0 1 X X<br />

S = T =<br />

0 1 X 1<br />

0 1 X 1<br />

1 0 X X<br />

1 1 X X<br />

2.1. Conception d’un circuit logique<br />

L’ordinateur utilise l’information binaire, forme imposée par la nature électronique des circuits<br />

qui composent ses blocs fonctionnels. Dans ce genre de circuits, les points significatifs, ceux où<br />

l’information est saisie, se comportent comme des interrupteurs. Un tel point significatif, à<br />

l’entrée ou à la sortie, se trouve soit à la tension haute soit à la tension basse.<br />

En connaissant le rôle fonctionnel du circuit que l’on désire construire, on peut définir la fonction<br />

de chaque sortie en utilisant les tables de tensions dont l’élaboration est semblables à celle des<br />

tables de vérité qu’on a vues précédemment. Par conséquent, les relations et méthode de l’algèbre<br />

de Boole peuvent être utilisées pour faire l’analyse et la synthèse des circuits d’un ordinateur, si<br />

17


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

on introduit une convention selon laquelle les deux valeurs de tensions sont remplacées par les<br />

valeur logique 1 et 0.<br />

Par ailleurs, les circuits logiques d’un ordinateurs sont divisées en deux catégories suivant leur<br />

structure fonctionnelles : les circuits combinatoires et circuits logiques..<br />

Définition : Un circuit est dit combinatoire si les sorties ne dépendent que des valeurs assignées<br />

aux valeurs d’entrée au moment considéré.<br />

Autrement dit, dans un tel circuit, le comportement des sorties peut toujours être exprimé pas<br />

des fonctions logiques.<br />

Variables d’entrée<br />

E 1<br />

S<br />

partie 1<br />

E n<br />

combinatoire<br />

S m<br />

fonctions d’entrée<br />

Définition : Un circuit est dit séquentiel si les sorties le comportement des sorties dépend des<br />

valeurs assignées aux variables ‘entrée et selon son histoire.<br />

De tels circuits contiennent une mémoire à côté d’une partie combinatoire. Cette mémoire a pour<br />

rôle de conserver l’histoire du circuit, histoire qui peut influencer les sorties pour une nouvelles<br />

combinaison de valeurs assignées aux entrées. L’information qui se trouve en mémoire à un<br />

moment donné définit l’état du circuit séquentiel. L’état suivant et le comportement des sorties<br />

sont déterminés par l’état actuel et la combinaison des valeurs données aux entrées. Par<br />

conséquent, un circuit séquentiel se caractérise par une séquence de signaux aux entrées et une<br />

séquence d’états pour chaque séquence de signaux appliquées aux entrées.<br />

Variables d’entrée<br />

E1<br />

En<br />

partie<br />

Combinatoire<br />

S 1<br />

S m<br />

Fonctions de sortie<br />

États<br />

mémoire<br />

Dans ce qui suit, on ne va parler que de circuits combinatoires.<br />

18


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Circuits combinatoires<br />

Habituellement, on ne reconstruit pas une fonction à partir de la représentation du circuit, mais on<br />

fait plutôt l'inverse: à partir d'un problème donné, on construit la table de vérité afin de dégager la<br />

fonction. Ensuite, on construit le circuit en utilisant les portes requises pour représenter cette<br />

fonction. D'une façon générale, la démarche est la suivante:<br />

1. Identifier les entrées et les sorties (IN / OUT) de la fonction.<br />

2. Construire la table de vérité.<br />

3. Identifier la fonction à partir de la table de vérité.<br />

4. Simplifier la fonction.<br />

5. Dessiner le schéma du circuit.<br />

2.2. Quelques exemples de circuits simples .<br />

2.2.1 Le semi-additionneur<br />

Il s'agit de réaliser un circuit permettant d'additionner 2 bits d'entrée, et d'obtenir comme sortie le<br />

résultat de l'addition et la retenue:<br />

x<br />

y<br />

SEMI-ADDITIONNEUR<br />

S<br />

R<br />

Table de vérité du semi-additionneur<br />

X y S R<br />

0 0 0 0<br />

0 1 1 0<br />

1 0 1 0<br />

1 1 0 1<br />

19


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

On a deux fonctions la fonction S et la fonction R.<br />

S( x, y)<br />

= xy+<br />

xy<br />

Rxy ( , ) = xy<br />

Noter que ces deux fonctions ne peuvent plus être simplifiées.<br />

Dessin du circuit:<br />

x<br />

y<br />

R (retenue)<br />

S (somme)<br />

20


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

2.2.2 L'additionneur<br />

Le semi-additionneur permet d'additionner deux bits, et de donner la somme et la retenue.<br />

L'additionneur complet tient compte non seulement des deux entrées, mais aussi de la retenue<br />

obtenue lors de l'addition des deux valeurs de la position précédente.<br />

On a alors, pour l'addition des deux valeurs de position n, les entrées suivantes: x n , y n et R n-1 ( la<br />

retenue de l'addition des deux valeurs de la position n-1).<br />

entrées<br />

A<br />

n<br />

B<br />

R<br />

n<br />

n-1<br />

ADDITIONNEUR<br />

sorties<br />

S<br />

R<br />

n<br />

n<br />

Table de vérité de l'additionneur<br />

A n B n R n-1 S n R n<br />

0 0 0 0 0<br />

0 1 0 1 0<br />

1 0 0 1 0<br />

1 1 0 0 1<br />

0 0 1 1 0<br />

0 1 1 0 1<br />

1 0 1 0 1<br />

1 1 1 1 1<br />

Les deux fonctions réunies nous donnent le circuit suivant:<br />

21


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

A<br />

n<br />

B<br />

n<br />

R<br />

n-1<br />

S<br />

n<br />

R<br />

n<br />

2.2.3 L'additionneur à n bits<br />

L'additionneur que nous venons de dessiner additionne deux bits de même position. On pourrait<br />

concevoir un additionneur qui additionnerait des nombres de plusieurs bits de longueur, tout<br />

simplement en jumelant plusieurs additionneurs. Notez que la retenue de départ est nulle.<br />

A<br />

A<br />

A<br />

A<br />

B<br />

B<br />

B<br />

B<br />

0<br />

1<br />

2<br />

0<br />

1<br />

2<br />

... ...<br />

n-1<br />

n-1<br />

...<br />

...<br />

...<br />

...<br />

...<br />

...<br />

...<br />

...<br />

...<br />

R R R<br />

0 1 2<br />

S S S S<br />

0 1 2 n-1<br />

R<br />

n-1<br />

22


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

2.2.4 Le comparateur.<br />

Imaginons maintenant, à titre d'exercice, un circuit qui ferait le traitement suivant:<br />

Si A > B<br />

alors S = 1<br />

sinon S = 0<br />

où A et B sont des nombres binaires sur deux bits, i.e. A = A 1 A 0 et B = B 1 B 0 . Il s'agit d'un<br />

comparateur (ou structure de choix).<br />

Table de vérité du comparateur<br />

A 1 A 0 B 1 B 0 S<br />

0 0 0 0 0<br />

0 0 0 1 0<br />

0 0 1 0 0<br />

0 0 1 1 0<br />

0 1 0 0 1<br />

0 1 0 1 0<br />

0 1 1 0 0<br />

0 1 1 1 0<br />

1 0 0 0 1<br />

1 0 0 1 1<br />

1 0 1 0 0<br />

1 0 1 1 0<br />

1 1 0 0 1<br />

1 1 0 1 1<br />

1 1 1 0 1<br />

1 1 1 1 0<br />

Avec la fonction simplifiée, on obtient le circuit suivant:<br />

S = A B ( A B + AB ) + A B<br />

0 0 1 1 1 1 1 1<br />

23


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

A 1<br />

A 0<br />

B 1<br />

B 0<br />

S<br />

On pourrait aussi simplifier la fonction de façon à utiliser une porte XOR On obtiendrait alors le<br />

circuit suivant pour le comparateur:<br />

S( A, B) = (( A ⊕ B )•( A • B )) + ( A • B )<br />

1 1 0 0 1 1<br />

A<br />

1<br />

A<br />

0<br />

B<br />

1<br />

B<br />

0<br />

S<br />

24


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

Autre façon de concevoir le comparateur. Pour savoir si A > B, nous pouvons procéder<br />

autrement. Au lieu de comparer les deux chaînes binaires entrées, on pourrait comparer les bits de<br />

même rang de chacune des deux chaînes binaires:<br />

si A 1 > B 1<br />

alors S 1<br />

sinon<br />

si ( A 1 = B 1 et A 0 > B 0 )<br />

alors S 1<br />

sinon<br />

S 0<br />

Nous devons d'abord dessiner deux circuits: un circuit qui compare deux bits (qu'on utiliserait<br />

avec les deux paires d'entrées A 1 B 1 et A 0 B 0 ) et un autre circuit qui vérifie si deux bits sont<br />

égaux.<br />

Comparaison de deux bits de même rang<br />

Si A > B alors C C<br />

sinon C


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

2.3. Décodeur 3 à 8 .<br />

Ce circuit permet la sortie en F d'une seule des huit entrées laquelle est déterminée par le nombre<br />

exprimé en binaire A B C fourni à l'entrée.<br />

Table de vérité du DÉCODEUR 3 à 8<br />

A B C A B C D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7<br />

0 0 0 1 1 1 1 0 0 0 0 0 0 0<br />

0 0 1 1 1 0 0 1 0 0 0 0 0 0<br />

0 1 0 1 0 1 0 0 1 0 0 0 0 0<br />

0 1 1 1 0 0 0 0 0 1 0 0 0 0<br />

1 0 0 0 1 1 0 0 0 0 1 0 0 0<br />

1 0 1 0 1 0 0 0 0 0 0 1 0 0<br />

1 1 0 0 0 1 0 0 0 0 0 0 1 0<br />

1 1 1 0 0 0 0 0 0 0 0 0 0 0<br />

26


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

2.4. Unité arithmétique et logique à 1 bit.<br />

Ce circuit permet d'effectuer les opérations logiques, l'addition binaire, la multiplication sur deux<br />

bits élémentaires, l'opération étant déterminée par un décodeur.<br />

27


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

ret enue d' e n t r é e<br />

A<br />

B<br />

U N I T É LO G I Q U E<br />

A B<br />

A + B<br />

B<br />

S<br />

o<br />

r<br />

t<br />

i<br />

e<br />

F<br />

0<br />

A D D I T I O N N EUR<br />

F<br />

1<br />

D É C O D E U R<br />

Ret enue sort ie<br />

28


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

2.5. Multiplexeur à 8 entrées .<br />

Table de vérité du MULTIPLEXEUR à 8 fonctions<br />

A B C A B C F<br />

0 0 0 1 1 1 D 0<br />

0 0 1 1 1 0 D 1<br />

0 1 0 1 0 1 D 2<br />

0 1 1 1 0 0 D 3<br />

1 0 0 0 1 1 D 4<br />

1 0 1 0 1 0 D 5<br />

1 1 0 0 0 1 D 6<br />

1 1 1 0 0 0 D 7<br />

Ce circuit permet de fournir en binaire sur trois bits un numéro à l'entrée et d'activer la sortie<br />

correspondante.<br />

29


Richard Tremblay et Djamal Rebaïne<br />

chapitre 3 : algèbre de Boole et circuit logiques<br />

M U L T I PLEXEUR 8 ENT RÉES<br />

D<br />

0<br />

D 1<br />

D 2<br />

D 3<br />

D 4<br />

F<br />

D 5<br />

D<br />

6<br />

D 7<br />

A B C<br />

30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!