Null 1
Null 1
Tous les circuits numériques fonctionnent en mode binaire, c'est-à-dire un mode dans lequel les
signaux ne peuvent prendre que deux valeurs, soit ’0’ ou soit ’1’. Les valeurs ’0’ et ’1’ correspondent
à des plages de tensions définies à l'avance. Cette caractéristique des circuits logiques nous permet
de recourir à l'algèbre de Boole pour l'analyse et la conception de systèmes numériques. Dans ce
chapitre, nous étudierons les portes logiques, qui constituent les blocs élémentaires des circuits
logiques et nous verrons comment il est possible de décrire leur fonctionnement grâce à l'algèbre
booléenne. Aussi, nous vous apprendrons comment on réussit à construire des circuits logiques en
combinant les portes et comment l'algèbre de Boole parvient à décrire et à analyser ces derniers.
4-1 Définitions
Nous allons commencer par donner quelques définitions.
35
4-1.1 Les états logiques
L'algèbre booléenne se distingue principalement de l'algèbre ordinaire par des
constantes et des variables qui ne peuvent prendre que les deux valeurs possibles 0 et 1. Une
variable booléenne est une grandeur qui peut, à des moments différents, avoir la valeur 1
ou 0. Les variables booléennes servent souvent à représenter un état d’un système. Nous
pouvons dire qu’une lampe est soit allumée, soit éteinte. Nous traduirons cela en indiquant
que la lampe est soit à ’1’ (pour allumer) ou soit à ’0’ (pour éteinte). Nous pouvons faire de
même avec un interrupteur qui est soit ouvert (’0’) ou soit fermé (’1’).
Ainsi, les valeurs booléennes 0 et 1 ne représentent pas des nombres réels mais plutôt
l'état logique d'une variable. Dans le domaine de la logi- que numérique, on utilise d'autres
expressions qui sont synonymes de 0 et
1. Certaines de ces expressions sont représentées dans le Tableau 4-1 ci-
dessous.
B A X C B A X D C B A X
0 0 ? 0 0 0 ? 0 0 0 0 ?
0 1 ? 0 0 1 ? 0 0 0 1 ?
1 0 ? 0 1 0 ? 0 0 1 0 ?
1 1 ? 0 1 1 ? 0 0 1 1 ?
a) 1 0 0 ? 0 1 0 0 ?
1 0 1 ? 0 1 0 1 ?
1 1 0 ? 0 1 1 0 ?
1 1 1 ? 0 1 1 1 ?
b) 1 0 0 0 ?
1 0 0 1 ?
1 0 1 0 ?
1 0 1 1 ?
1 1 0 0 ?
1 1 0 1 ?
1 1 1 0 ?
1 1 1 1 ?
c)
Figure 4- 3 : Tables de vérité: a) table à deux entrées; b) table à trois entrées; c) table à
quatre entrées.
Dans chacune de ces tables, toutes les combinaisons possibles de 0 et de 1 pour les entrées (D, C,
B, A) apparaissent à gauche, tandis que le niveau logique résultant de la sortie, X, est donné à droite.
Pour le moment, il n'y a que des "?" dans ces colonnes, car les valeurs de sortie sont différentes pour
chaque type de circuit.
Notez que dans la table de vérité à deux entrées il y a quatre lignes, que dans celle à trois entrées
il y a huit lignes et que dans la table à quatre entrées, il y en a seize. Pour une table de N entrées, il
y a 2N lignes. De plus, vous remarquez sans doute que la succession des combinaisons correspond à
la suite du comptage binaire, de sorte que la détermination de toutes les combinaisons est directe et
qu'on ne peut pas en oublier.
4-3 L'opération OU (OR)
Soit deux variables logiques indépendantes, A et B. Quand on combine A et B au
moyen de la fonction logique OU, le résultat X satisfait l’expression suivante :
X=A#B
Dans cette équation, le signe # indique un OU logique. La fonction de sortie est active
si A OU B est actif. Le fonctionnement de cet opérateur est défini par la table de vérité
de la figure 4- 4.
B A X= A # B
0 0 0 A
0 1 1 X=A # B
1 0 1 B
1 1 1
a) b) porte OU (OR)
B A X = A·B
0 0 0 A
0 1 0 X=A·B
1 0 0 B
1 1 1
a) b) porte ET (AND)
D'après cette table, vous pouvez facilement déduire que la fonction logique ET correspond à la
multiplication en binaire. Quand A ou B est 0, le produit est nul; quand A et B sont 1, leur produit
est 1. Il nous est donc possible d'affirmer que dans l'opération ET la réponse est 1 si et seulement
si toutes les entrées sont à 1, et qu'elle est 0 dans tous les autres cas.
!A = A
A X= A
A XA
0 1
1 0
B A X = A#B
A
0 0 1
0 1 0 XAB
B
1 0 0
1 1 0
De manière générale, la fonction de sortie d’une porte NON-OU à n entrées est active (niveau 1)
uniquement lorsque toutes les entrées sont inactives (niveau 0). La sortie d’une porte NON-OU
est inactive (niveau 0) si une seule des entrées est active (niveau 1).
Par De Morgan (voir paragraphe 4-12.4) nous pouvons montrer que la porte NOR est équivalent
à:
X = A#B = A B
A
X=A .B
B
La table de vérité montrée à la figure 4- 8 nous apprend que la sortie d'une porte NON-ET est
exactement l'inverse de celle d'une porte ET pour toutes les combinaisons des entrées.
B A X=AB
0 0 1 A
X=A B
0 1 1
B
1 0 1
1 1 0
a)table de vérité b) porte NON-ET (NAND)
De manière générale, la fonction de sortie d’une porte NON-ET à n entrées est active
(niveau 1) si une seule des entrées est inactive (niveau 0). La sortie d’une porte NON-ET
est inactive (niveau 0) uniquement lorsque toutes les entrées sont actives (niveau 1).
Par De Morgan (paragraphe 4-12.4) nous pouvons montrer que la porte NAND est
équivalent à :
X=AB = A#B
A
X=A #B
B
0 0 0
A
0 1 1
XAB
1 0 1 B
1 1 0
a) b) porte OU-exclusif (XOR)
De manière générale, la fonction de sortie d’une porte OU-exclusif indique la différence entre
les deux signaux d’entrées. La sortie est active (niveau 1) si l’état logique des entrées est différent.
A B X=AB
0 0 1 A
0 1 0
X A B
1 0 0 B
1 1 1
De manière générale, la fonction de sortie d’une porte NON-OU-exclusif indique l’égalité entre
les deux signaux d’entrées. La sortie est active (niveau 1) si l’état logique des entrées est identique.
Le fonctionnement de cette porte correspond à un comparateur un bit.
L’opérateur NON-OU-exclusif a une propriété particulière. L’inversion de la sortie
peut être reportée sur l’une ou l’autre des entrées, soit :
A B= A B= A B
NON ou NOT
1.c
A F=AB B
F= A B
B
ET ou AND
A
F=A # B #B F=A#B
F=A B
OU ou OR
A A
& F=A.B F = A . BB F=A.B
B
1.c
A A
F = A .B 1.e
B F=A.B
F=A.B B
NON-ET ou NAND
A A A
B F = A #B F = A# B F=A#B
³1 B
A 1.c 1.e
A
&
F = A #B F = A #B F=A#B
B
NON-OU ou NOR
A F = A B A A
B F = A B F=AB
=1 B B
OU EXCLUSIF ou XOR
A
B X A B C
C
A
B X (A B) C
C
A A
X A B X AB
B B
a) b)
Dans la figure 4- 15(b), la sortie de la porte OU égale A # B, sortie qui vient alimenter un
INVERSEUR. La sortie de ce dernier est donc A # B, puisque toute l'expression est inversée.
Voici la description en VHDL synthétisable des deux circuits de la figure 4- 15 :
a) X <= not A or B ;
b) X <= not (A or B) ;
4-10 MATÉRIALISATION DE CIRCUITS À PARTIR
D'EXPRESSIONS BOOLÉENNES
Si l'opération d'un circuit est définie par une expression booléenne, il est possible de tracer
directement un diagramme logique à partir de cette ex- pression. Par exemple, si on a besoin d'un
circuit tel que X = ABC, on sait immédiatement qu'il nous faut une porte ET à trois entrées. Le
raisonne- ment qui nous a servi pour ces cas simples peut être étendu à des circuits plus complexes.
Supposons que l'on veuille construire un circuit dont la sortie est Y = AC # BC # ABC. Cette
expression booléenne est constituée de trois termes (AC,BC,ABC ) qui sont additionnés logiquement.
On déduit qu'il nous faut une porte OU à trois entrées auxquelles sont appliqués respectivement les
signaux AC , BC , ABC . Chaque entrée de la porte OU est un produit logique, ce qui signifie qu'il a
fallu trois portes ET alimentées par les entrées appropriées pour produire ces termes. C'est ce qu'on
peut voir à la figure 4- 16 où est tracé le schéma final du circuit.
A AC
B BC Y AC BC ABC
C
ABC
4-12.1 Postulats
Nous avons deux postulats :
A#A=1
AA= 0
Ces deux postulats traduisent le fait que l'inverse d'une variable ne peut jamais prendre la même
valeur que la variable. Nous apprendrons ultérieurement qu'un manquement à ces postulats est
possible lors de régimes transitoires dans les circuits. Ce manquement peut entraîner un
comportement aléatoire sur les fonctions dépendantes de ces variables.
4-12.2 Théorèmes
Poursuivons maintenant notre étude de l'algèbre booléenne en examinant les théorèmes de Boole
qui sont des règles qu'on utilise pour simplifier les expressions logiques et, par le fait même, les
circuits logiques. La figure 4- 17 présente le premier groupe de théorèmes dans lesquels X est une
variable logique prenant soit la valeur 0, soit la valeur 1.
X0= 0 (1)
X1= X (2)
XX= X (3)
XX= 0 (4)
X#0=X (5)
X#1=1 (6)
X#X=X (7)
X#X=1 (8)
Figure 4- 17 : Théorèmes de Boole pour une variable.
Avant de vous présenter les autres théorèmes de Boole, nous tenons à mentionner que dans les
théorèmes (1) à (8), la variable X peut correspondre à une expression renfermant plus d'une variable.
Par exemple, si nous
avons ABAB, nous pouvons affirmer, en posant X = AB et d'après le
W # X Y # Z = WY # XY # WZ # XZ (14)
X # XY = X (15)
X # XY = X # Y (16)
Les théorèmes (9) et (10) montrent que ET et OU sont des lois de composition
commutatives, donc que l'ordre de la multiplication ou de l'addition logique de deux
variables n'a pas d'importance, que le résultat reste le même.
Les théorèmes (11) et (12) montrent que ET et OU sont des lois de composition
associatives, qui indiquent que l'on peut grouper, comme l'on veut, les variables dans une
expression de multiplication ou d'addition logique.
Les théorèmes (13) et (14) font voir que la multiplication logique est distributive par
rapport à l'addition logique, c'est-à-dire que l'on peut développer une expression en la
multipliant terme à terme, tout comme dans l'algèbre ordinaire. Ces théorèmes démontrent
également que l'on peut mettre en facteur une expression. On veut dire par là que si nous
avons une somme de termes, chacun renfermant une variable commune, il est possible de
mettre cette variable en facteur, comme on le fait en algèbre ordinaire.
Il est facile de se rappeler des théorèmes (9) à (14) puisqu'ils sont identiques à ceux de
l'algèbre ordinaire. Par contre, les théorèmes (15) et (16) ne se retrouvent pas en algèbre
ordinaire. On peut les démontrer en passant en revue toutes les possibilités de X et de Y.
Tous ces théorèmes sont d'une grande utilité pour simplifier une expression logique,
c'est-à-dire pour obtenir une expression comptant moins de termes. L'expression simplifiée
permet de réaliser un circuit moins complexe que celui correspondant à l'expression
originale.
Le théorème (17) affirme que la somme logique complémentée de deux variables est égale au
produit logique des compléments de ces deux variables. De même, le théorème (18) stipule que le
produit logique complémenté de deux variables est égal à la somme logique des compléments de
ces deux variables. La démonstration de ces deux théorèmes se fait simple- ment en considérant
toutes les possibilités de X et de Y.
Bien que ces théorèmes aient été formulés pour les variables simples X et Y, ils demeurent aussi
vrais pour les cas où X et Y sont des expressions comprenant plusieurs variables. A titre
d'illustration, appliquons ces théorèmes à l'expression suivante :
AB # C = AB C
Le résultat trouvé peut être simplifié une autre fois, car on y retrouve encore un produit logique
complémenté. En vertu du théorème (18), il vient:
···
AB C = A # B C
···
Comme B = B, le résultat définitif est alors:
A # B C = AC # BC