CHAPITRE 3 LES CIRCUITS LOGIQUES. - UQAC
CHAPITRE 3 LES CIRCUITS LOGIQUES. - UQAC
CHAPITRE 3 LES CIRCUITS LOGIQUES. - UQAC
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