Chapitre 01
Chapitre 01
Chapitre 01
1. Introduction
Un circuit logique est un circuit intégré spécialisé destiné à réaliser une opération booléenne.
Pour un tel circuit, on fait correspondre aux signaux électriques existants en entrée et en sortie, un état
logique valant 0 ou 1. L’état 0 correspond à la présence d’une tension inférieure ou égale environ au
tiers de la tension d’alimentation tandis que l’état 1 correspond à la présence d’une tension supérieure
ou égale environ aux deux tiers de la tension d’alimentation.
• les circuits combinatoires : les valeurs en sortie ne dépendent que des valeurs en entrée. Ces
circuits ne mémorisent pas l’information.
• les circuits séquentiels : Ce sont des circuits dont lesquels les valeurs en sortie dépendent des
valeurs en entrée ainsi que du temps et des états antérieurs. C'est des circuits qui mémorisent de
l’information.
Un circuit combinatoire est un circuit logique pour lequel les sorties ne dépendent que des
entrées, et non du temps et des états antérieurs. Un circuit combinatoire est un circuit constitué de
portes logiques fonctionnant simultanément et réalisant une ou plusieurs fonctions logiques. C'est un
circuit pour lequel on peut identifier des entrées et des sorties, l'information transitant toujours des
entrées vers les sorties sans aucun cycle. Le circuit combinatoire est défini lorsque les informations
suivantes ont été précisées:
• son nombre d’entrées auxquelles sont assignés des lettres appelées variables d'entrée
• son nombre de sorties auxquelles sont assignés des lettres appelées variables de sortie
• une spécification fonctionnelle qui décrit l’état de chaque sortie en fonction des entrées. Dans
tout problème de logique combinatoire, les variables de sortie dépendent uniquement des
variables d'entrée.
1
Ces informations sont généralement fournies grâce à une table de vérité, une table de Karnaugh
ou une équation logique dans laquelle les entrées et les sorties sont exprimées par des variables
booléennes.
Un circuit combinatoire avec n sorties peut toujours être construit sous la forme de n circuits
différents possédant chacun une seule sortie. Toutefois, on peut souvent utiliser une même porte
calculant un signal intermédiaire dans plusieurs circuits pour optimiser le circuit combinatoire. Lors de
la construction d'un circuit à partir d’une spécification quelconque, on essaye toujours d’obtenir le
meilleur résultat possible "un circuit optimal" à savoir minimiser le nombre de portes logiques (ou
plutôt le nombre de transistors) intervenant dans la conception de ce circuit.
La conception d'un circuit logique combinatoire consiste à:
1) représenter le circuit combinatoire en énumérant ses variables d'entrée et de sortie par le biais
d'une table de vérité ou d'un tableau de Karnaugh
2) simplifier le circuit combinatoire en utilisant soit la simplification algébrique ou la
simplification par tableau de Karnaugh
3) réaliser le schéma logique du circuit combinatoire
1. à effectuer des opérations arithmétiques sur des nombres. Par exemple, un additionneur, un
soustracteur ou un multiplieur.
2. à traduire des bits en chiffres représentant un nombre (ou des lettres ou un code particulier). On
appelle ces circuits des codeurs (ou bien des décodeurs pour l’opération inverse). Par exemple,
un codeur Gray ou bien BCD.
3. à transmettre ou recevoir des informations sur une ligne unique de transmission (une ligne
série), ce qui nécessite de transformer un nombre écrit sous forme parallèle en une suite de bits
mis en série et vice-versa. C’est le rôle des circuits multiplexeur/démultiplexeur.
3.1. Le demi-additionneur
Un demi-additionneur est un circuit capable d'additionner deux bits a0 et b0. L’addition de ces
bits génère leur somme s0 et la retenue propagée vers le rang supérieur c0.
2
1) Etape 1: Table de vérité.
On définit donc la valeur binaire des sorties, pour toutes les combinaisons possibles des
variables d'entrée. Pour n variables d'entrée, la table de vérité aura 2n lignes qui correspondent
aux nombres binaires variant de 0 à 2n-1.
a0 b0 s0 c0
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
En général, on utilise les tables de Karnaugh pour réaliser la simplification des fonctions
correspondant aux circuits combinatoires.
b0 b0
a0 0 1 a0 0 1
0 0 1 0 0 0
1 1 0 1 0 1
= + = ⊕ =
a0 b0
a0 c0
c0
Demi-
b0 Additionneur s0
s0
3
Le circuit logique associé est donc formé d’une porte XOR et d’une porte ET. Comme ce circuit ne
tient pas compte d’une retenue propagée depuis le rang inférieur, il est qualifié de demi-additionneur.
s0 = a0 b0 + a0 b0 = a0 b0 + a0 b0 = a0 b0 . a0 b0 et c 0 = a 0 b0
Remarque:
a0 b0 = a0 a0 + a0 b0 = a0 a0 + b0 = a0 a0 b0
a b =b b +a b =b a +b =b a b
s =a b +a b = a a b +b a b =a a b +b a b = a a b . b a b et c 0 = a 0 b0
4
Les deux implantations ci-dessus sont de même complexité parce que les variables a et b sont
généralement disponibles.
Un additionneur est un circuit capable d'additionner deux nombre binaires. L’addition des deux
nombres doit tenir compte du report du rang précédent ou inférieur.
Exemple:
1 1 1 0 1 1 1
0 1 1 1 0 1 0 1
0 1 1 1 0 0 1 1
1 1 1 0 1 0 0 0 Somme
è è è è è è è er
8 7 6 5 4 3 2 1 Etages
L'addition des bits ai et bi (i>0) doit être faite en tenant compte de la retenue ci-1 propagée
depuis le rang inférieur i-1. Cette addition génère le résultat de la somme si des deux bits ai et bi et la
retenue propagée vers le rang supérieur ci. Le circuit combinatoire à concevoir est un circuit à trois
entrées: ai, bi et ci-1 , et deux sorties si et ci.
ci ci-1
ai
ai+1 ai ai-1 ci
bi Additionneur
bi+1 bi bi-1
complet si
si ci-1
5
1) Etape 1: Table de vérité.
ai bi ci-1 si ci
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
bi ci-1
ai 00 01 11 10
0 0 1 0 1
1 1 0 1 0
a)
bi ci-1
ai 00 01 11 10
0 0 0 1 0
1 0 1 1 1
ci = ai bi + ai ci−1 + bi ci−1
=a b + a +b c
6
3) Etape 3: Réalisation du schéma logique du circuit combinatoire.
b)
bi ci-1
ai 00 01 11 10
0 0 0 1 0
1 0 1 1 1
ci = ai bi + ai bi ci−1 + ai bi ci−1
=a b + a b +a b c
= ai bi + ai ⊕ bi ci−1
7
ai bi ci-1
ci
si
Ce schéma logique est constitué de deux demi-additionneurs montés selon la configuration suivante est
appelé un additionneur complet.
La conception d'un additionneur n bits est obtenu en chaînant entre eux un demi-additionneur et
n–1 additionneurs 1 bit complets. Le chaînage s’effectue par le biais des retenues propagées comme le
montre la figure suivante pour un additionneur 4 bits.
8
3.2.1. L'indicateur de Carry
Lors d’une opération arithmétique effectuée sur des nombres représentés sur n bits, un (n+1)ème
bit, appelé bit de carry, peut être généré. Ce bit de carry est mémorisé par l’indicateur C du registre
d’état du processeur (PSW). Il correspond tout simplement à la retenue cn-1 au niveau d’un additionneur
à n bits; la retenue de l’additionneur complet 1 bit de plus haut niveau.
Lors d’une opération arithmétique mettant en jeu des nombres représentés sur n bits et de même
signe, le résultat peut être en dehors de l’intervalle des nombres représentables sur n bits par la
convention de codage choisie pour la représentation de ces nombres signés. Ce dépassement de
capacité est mémorisé dans le registre d’état du processeur, le PSW, par l’intermédiaire d’un indicateur
d'un bit noté O.
Un overflow peut être détecté en effectuant un test de comparaison entre cn-2 et cn-1. Il y a
overflow si et seulement si cn-2≠ cn-1. La table de vérité associée à l'overflow O est:
10
où
Lors d’une opération arithmétique mettant en jeu des nombres représentés sur n bits, il existe un
bit indicateur qui permet de tester rapidement si le résultat de l’opération est égale à 0. C’est le rôle du
bit de condition Z qui vaut 1si et seulement si le résultat S=( sn-1sn-2 . . . s1s0). Il est donc défini par:
b3 a3 b2 a2 b1 a1 b0 a0
c-1=0
C
Additionneur Additionneur Additionneur Additionneur
s3 s2 s1 s0
c3 c2 c1 c0
11
3.3. Le demi-soustracteur
Un demi-soustracteur est un circuit capable de soustraire un bit b0 d'un autre bit a0. La
soustraction génère la différence entre les deux bits d0= a0- b0 et la retenue propagée vers le rang
supérieur c0.
a0 b0 d0 c0
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
b0 b0
a0 0 1 a0 0 1
0 0 1 0 0 1
1 1 0 1 0 0
( = + = ⊕ =
a0 b0
a0 c0
c0
Demi-
b0 soustracteur d0
d0
12
3.4. Le Soustracteur complet
Exemple:
0 0 0 0 0 1 0
0 1 1 1 0 1 0 1
0 1 1 1 0 0 1 1
0 0 0 0 0 0 1 0 Différence
è è è è è è è er
8 7 6 5 4 3 2 1 Etages
La soustraction des bits ai et bi (i>0) doit être faite en tenant compte de la retenue ci-1 propagée
depuis le rang inférieur i-1. Cette soustraction génère le résultat de la différence di des deux bits ai et bi
et la retenue propagée vers le rang supérieur ci. Le circuit combinatoire à concevoir est un circuit à trois
entrées: ai, bi et ci-1 , et deux sorties di et ci.
ci ci-1
ai
ai+1 ai ai-1 ci
bi Soustracteur
bi+1 bi bi-1 di
complet
si ci-1
ai bi ci-1 di ci
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
13
2) Etape 2: Mise en équation et simplification.
i) Table de Karnaugh de i
bi ci-1
ai 00 01 11 10
0 0 1 0 1
1 1 0 1 0
bi ci-1
ai 00 01 11 10
0 0 1 1 1
1 0 0 1 0
ci = ai bi + ai bi ci−1 + ai bi ci−1
=a b + a b +a b c
=a b + a ⊕b c
14
ai bi ci-1
ci partiel
Demi- ci
soustracteur
di partiel ci partiel
Demi-
soustracteur
di
3.5. Le complémenteur à 1
Dans une machine travaillant en complément restreint, la soustraction sera obtenue par
l’addition du complément restreint du nombre à soustraire avec le nombre dont il doit être soustrait, et
report de la retenue. Dans le cas d'absence de report (pas de retenue ou de débordement), issu du
dernier rang, cela signifie que le résultat est négatif. Il se présente alors sous une forme complémentée
(complément restreint). La complémentation n'est effectuée que lors d'une soustraction. Il faut donc
disposer d'un circuit qui ne réalise le complément que lorsque un signal de commande B est égal à 1 et
laisse le nombre tel quel si B est égal à 0.
B ai x =a
0 0 0
0 1 1
1 0 1
1 1 0
15
2) Etape 2: Mise en équation et simplification.
./ = /0 + /0 = / ⊕0
an-1 a1 a0
B
xn-1 x1 x0
3.6. Le complémenteur à 2
a3 a2 a1 a0 x3 x2 x1 x0
0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1
0 0 1 0 1 1 1 0
0 0 1 1 1 1 0 1
0 1 0 0 1 1 0 0
0 1 0 1 1 0 1 1
0 1 1 0 1 0 1 0
0 1 1 1 1 0 0 1
1 0 0 0 1 0 0 0
1 0 0 1 0 1 1 1
1 0 1 0 0 1 0 0
1 0 1 1 0 1 0 1
1 1 0 0 0 1 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 0 1 0
1 1 1 1 0 0 0 1
16
2) Etape 2: Mise en équation et simplification.
a1 a0 a1 a0
a3 a2 00 01 11 10 a3 a2 00 01 11 10
00 0 1 1 0 00 0 1 0 1
01 0 1 1 0 01 0 1 0 1
11 0 1 1 0 11 0 1 0 1
10 0 1 1 0 10 0 1 0 1
x =a x = a a + a a = a ⊕a
a1 a0 a1 a0
a3 a2 00 01 11 10 a3 a2 00 01 11 10
00 0 1 1 1 00 0 1 1 1
01 1 0 0 0 01 1 1 1 1
11 1 0 0 0 11 0 0 0 0
10 0 1 1 1 10 1 0 0 0
x - = a a a - + a a- + a a - x 2 = a a a- a 2 + a a 2 + a a2 + a - a 2
= a a a- + a - a + a = a2 a + a + a- + a2 a + a + a-
= a- a + a + a- a + a = a2 ⊕ a + a + a-
= a- ⊕ a + a
a3 a1 a0
x3 x2 x1 x0
17
Remarque: Ce type de circuit se généralise et de la même manière on peut construire le circuit logique
complémenteur à 2 de n'importe quel nombre binaire.
Les nombres négatifs peuvent être représentés par leur complément à 1 ou leur complément à 2.
Dans les deux cas l'opération de soustraction sera ramené à une addition.
Réaliser les opérations suivantes sur les nombres 67 et 59 représentés sur 8 bits en tenant
compte des différentes combinaisons de signe possibles:
a) +6710 → 01000011
+5910 → + 00111011
12610 0 1 1 1 1 1 1 0 = 12610
b) +6710 → 01000011
- 5910 → + 11000100
810 1 00000111
+ 1
0 0 0 0 1 0 0 0 = 810
c) - 6710 → 10111100
+5910 → + 00111011
- 810 1 1 1 1 0 1 1 1 dont le complément à 1 est 00001000, soit 8
d) - 6710 → 10111100
- 5910 → + 11000100
-12610 1 10000000
+ 1
1 0 0 0 0 0 0 1 dont le complément à 1 est 01111110, soit 126
18
Les règles générales suivantes peuvent être tirer de ces quatre cas:
i. l'addition des deux nombres est effectuée en incluant leur bit de signe.
ii. la soustraction sera obtenue par l’addition du complément restreint du nombre à soustraire avec
le nombre dont il doit être soustrait en incluant leur bit de signe. L'opération d'addition peut
donner lieu à un débordement, la retenue est ajoutée au résultat. Dans le cas d'absence de report
(pas de débordement), issu du dernier rang, cela signifie que le résultat est négatif. Il se présente
alors sous une forme complémentée (complément restreint).
Les deux opérations se ramènent donc à une addition. Le schéma de l'additionneur soustracteur
ci-dessous convient à des nombres de quatre bits, incluant le bit du signe. Ce schéma peut être
généralisé à n'importe quel nombre de bits. Le dernier report (débordement) est ramené à l'entrée report
du premier étage pour son addition si nécessaire.
Réaliser les opérations suivantes sur les nombres 67 et 59 représentés sur 8 bits:
a) +6710 → 01000011
+5910 → + 00111011
12610 0 1 1 1 1 1 1 0 = 12610
b) +6710 → 01000011
- 5910 → + 11000101
810 1 0 0 0 0 1 0 0 0 = 810
19
c) - 6710 → 10111101
+5910 → + 00111011
- 810 1 1 1 1 1 0 0 0 dont le complément à 2 est 00001000, soit 8
d) - 6710 → 10111101
- 5910 → + 11000101
-12610 1 1 0 0 0 0 0 1 0 dont le complément à 2 est 01111110, soit 126
Les règles générales suivantes peuvent être tirer de ces quatre cas:
i. l'addition des deux nombres est effectuée en incluant leur bit de signe.
ii. la soustraction sera obtenue par l’addition du complément vrai (à deux ) du nombre à soustraire
avec le nombre dont il doit être soustrait en incluant leur bit de signe. La dernière retenue est
toujours ignorée.
Les deux opérations se ramènent donc à une addition. Le schéma de l'additionneur soustracteur
ci-dessous convient à des nombres de quatre bits, incluant le bit du signe. Ce schéma peut être
généralisé à n'importe quel nombre de bits.
20
4. Les décodeurs
Le décodeur est un circuit logique qui établit la correspondance entre un code d'entrée binaire
de n bits et m lignes de sortie (m ≤ 2n). Pour chacune des combinaisons possibles des entrées une seule
ligne de sortie est validée. Toutes les sorties sont à 0 sauf celle dont l'indice est codé par les bits de
sélection qui est à 1.
Un décodeur à 2 entrées vers 4 sorties: les entrées sont notées a0, a1 et les sorties s0, s1, s2, s3.
1) Table de vérité.
N a1 a0 s =a a s =a a s- = a a s2 = a a
0 0 0 1 0 0 0
1 0 1 0 1 0 0
2 1 0 0 0 1 0
3 1 1 0 0 0 1
21
2) Etape 2: Mise en équation et simplification.
a1 a0 sorties
a0
0 0 s =a a
a1 0 1
0 1 s =a a 0 s =a a s =a a
1 0 s- =a a 1 s- = a a s2 = a a
1 1 s2 =a a
Un décodeur à 3 entrées vers 8 sorties: les entrées sont notées a0, a1, a2 et les sorties s0, s1, s2, s3
,s4, s5, s6, s7.
a2 a1 a0 Sorties
0 0 0 s =a a a-
0 0 1 s =a a a-
0 1 0 s- =a a a-
0 1 1 s2 =a a a-
1 0 0 s3 =a a a-
1 0 1 s4 =a a a-
1 1 0 s5 =a a a-
1 1 1 s6 =a a a-
22
a1 a0
a2 00 01 11 10
0 s = a a a- s = a a a- s2 = a a a - s- = a a a-
1 s3 = a a a - s4 = a a a - s6 = a a a - s5 = a a a-
Remarque: Certains décodeurs n'utilisent pas toute la gamme de 2n codes des sorties possibles mais
seulement un sous-ensemble de ceux-ci. Ils sont alors souvent conçus de façon à ce que les codes
inutilisés n’activent aucune sortie lorsqu'ils se présentent à l'entrée du décodeur (décodeur DCB-
décimal possède 4 bits d’entrées et 10 sorties).
Un décodeur DCB vers décimal est un décodeur à 4 entrées et 10 sorties seulement. La sortie si
est activée si la valeur i en binaire est présente en entrée et elle est valide, dans le cas contraire si est
non valide et aucune sortie n'est activée.
23
1) Etape 1: Table de vérité et mise en équation.
a1 a0
00 01 11 10
a3 a2
00 s = a a a- a 2 s = a a a- a2 s2 = a a a - a 2 s- = a a a - a 2
01 s3 = a a a - a 2 s4 = a a a - a 2 s6 = a a a- a2 s5 = a a a - a 2
11 X X X X
10 s7 = a a a - a 2 s8 = a a a- a2 X X
Remarque: Si un code à l'entrée du décodeur est incorrect tels que les nombres binaires 1010..1111,
aucune des sorties n'est à 1 (toutes les sorties sont à 0). C'est un cas de rejection des données
incorrectes.
24
Remarque: Comme le tableau de Karnaugh est une table incomplète, les cases avec des X peuvent être
combinées pour obtenir les circuit le plus simple possible mais on n'aura plus de rejection de données
incorrectes. Dans le cas de données incorrectes plusieurs sorties peuvent être à 1, par exemple pour
1100 les sorties s4 et s8 sont à 1 en même temps:
a1 a0
00 01 11 10
a3 a2
00 0 0 0 0
01 0 0 0 0
11 0 1 1 0
10 0 1 1 0
s8 = a a 2
s = a a a- a2 s = a a a- a 2 s- = a a a - s2 = a a a- s3 = a a a-
s4 = a a a - s5 = a a a - s6 = a a a - s7 = a a 2 s8 = a a2
25
5. Les codeurs
C'est un dispositif qui effectue l'opération inverse du décodeur: Une seule entrée parmi m est
activée à la fois, ce qui correspond à un nombre binaire en sortie. On l'appelle aussi encodeur.
C’est un codeur qui possède 4 entrées et deux sorties. Pour chaque entrée activée, son code
a3 a2 a1 a0 S1 S0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1
a1 a0 a1 a0
00 01 11 10 00 01 11 10
a3 a2 a3 a2
00 X 0 X 1 00 X 0 X 0
01 0 X X X 01 1 X X X
11 X X X X 11 X X X X
10 1 X X X 10 1 X X X
S = a + a2 S = a- + a 2
26
5.2. Le codeur de priorité
L’activation en simultanée des entrées a1 et a2 du codeur 4 vers 2 précédent, fera passer les
sorties S1S0 au nombre 11 qui ne correspond pas au code de l'une ou de l'autre des entrées activés. C'est
plutôt le code qui représente l'activation de a3. Pour résoudre ce problème on utilise un codeur de
priorité qui choisit le plus grand rang lorsque plusieurs entrées sont activées à la fois. Exemple lorsque
a1 et a2 sont activées simultanément S1S0 sera égale à 10 ce qui représente l'activation de a2.
L’encodeur de priorité ne sert que quand plusieurs entrées sont à 1 en même temps. C'est un
circuit qui détecte la position du premier bit à 1 d’un mot en commençant par le bit le plus significatif
(le plus à gauche) et donne en sortie son adresse binaire.
Exemple: On considérant les entrées a3 a2 a1 a0; on cherche à connaître l’index i du premier bit ai=1 en
partant de la gauche. Si on reprend les nombres suivants, nous aurons :
a3 a2 a1 a0 S1 S0
0 0 0 1 0 0
0 0 1 X 0 1
0 1 X X 1 0
1 X X X 1 1
a1 a0 a1 a0
00 01 11 10 00 01 11 10
a3 a2 a3 a2
00 X 0 1 1 00 X 0 X 0
01 0 0 0 0 01 1 X X X
11 1 1 1 1 11 X X X X
10 1 1 1 1 10 1 X X X
S = a a- + a2 S = a- + a 2
27
3) Etape 3: Réalisation du schéma logique du circuit combinatoire.
a3 a2 a1 a0
S0
S1
a7 a6 a5 a4 a3 a2 a1 a0 S2 S1 S0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 - 0 0 1
0 0 0 0 0 1 - - 0 1 0
0 0 0 0 1 - - - 0 1 1
0 0 0 1 - - - - 1 0 0
0 0 1 - - - - - 1 0 1
0 1 - - - - - - 1 1 0
1 - - - - - - - 1 1 1
6. Les transcodeurs
C’est un circuit combinatoire qui se diffère du décodeur par le fait que plusieurs de ses sorties
peuvent être actives simultanément. Alors que pour un décodeur une seule des sorties peut être activée
à la fois. Le transcodeur est appelé aussi convertisseur de codes. En effet, il permet de passer d'un code
en entrée E exprimé sur n bits vers un code en sortie S exprimé sur m bits.
Le convertisseur Gray binaire est un décodeur qui permet de convertir un code Gray de n bits en
code binaire. La conception d'un transcodeur Gray binaire naturel de 4 bits nécessite:
28
1) Etape 1: Table de vérité.
Code décimal g3 g2 g1 g0 a3 a2 a1 a0
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 1 0 0 1 0
3 0 0 1 0 0 0 1 1
4 0 1 1 0 0 1 0 0
5 0 1 1 1 0 1 0 1
6 0 1 0 1 0 1 1 0
7 0 1 0 0 0 1 1 1
8 1 1 0 0 1 0 0 0
9 1 1 0 1 1 0 0 1
10 1 1 1 1 1 0 1 0
11 1 1 1 0 1 0 1 1
12 1 0 1 0 1 1 0 0
13 1 0 1 1 1 1 0 1
14 1 0 0 1 1 1 1 0
15 1 0 0 0 1 1 1 1
g1 g0 g1 g0
00 01 11 10 00 01 11 10
g3 g2 g3 g2
00 0 0 0 0 00 0 0 0 0
01 0 0 0 0 01 1 1 1 1
11 1 1 1 1 11 0 0 0 0
10 1 1 1 1 10 1 1 1 1
a2 = g 2 a- = g - g 2 + g 2 g - = g - ⊕g 2
g1 g0 g1 g0
00 01 11 10 00 01 11 10
g3 g2 g3 g2
00 0 0 1 1 00 0 1 0 1
01 1 1 0 0 01 1 0 1 0
11 0 0 1 1 11 0 1 0 1
10 1 1 0 0 10 1 0 1 0
a = g g - g 2 + g g - g 2 + g g - g 2 + g g - g2 a = g- g2 g g + g g + g- g 2 g g + g g
= g g - g2 + g- g 2 + g g -g2 + g - g2 +g - g 2 g g + g g + g - g2 g g + g g
= g g - ⊕g 2 + g g - ⊕g 2 a = g - g 2 + g - g2 g g + g g
= g ⊕ g- ⊕g 2 + g -g 2 + g- g 2 g g + g g
29
a = g - ⊕g 2 g ⊕g + g - ⊕g 2 g ⊕g
a = g ⊕g ⊕g - ⊕g 2
Remarques:
i. Ce circuit peut être généralisé pour réaliser le circuit combinatoire de la conversion d'un
nombre en code Gray de n bit en binaire.
ii. La manipulation des portes OU-exclusif permet d'obtenir parfois des schémas logiques plus
simples.
Le convertisseur binaire naturel vers le code Gray peut être en se servant de la solution
précédente.
g 2 = a2 (1)
a- = g - ⊕g 2 ⇒ a- ⊕a2 = g - ⊕g 2 ⊕g 2 = g - car g 2 ⊕g 2 = g 2 g 2 + g 2 g 2 = 0
⇒ g - = a- ⊕a2 (2)
30
Code binaire naturel a3 a2 a1 a0
Code Gray g3 g2 g1 g0
Décoder un nombre DCB pour commander un segment d'un indicateur à sept segments lumineux
notés a, b, c, d, e, f, g permettant l'écriture de tous les chiffres décimaux disposés de la façon suivante:
Considérons chaque segment et dressons la table de vérité des différentes sorties en fonction des
entrées. Les entrées de cette table sont a0, a1, a2 , a3 qui permettent de représenter les dix chiffres
DCB et les sorties sont décrites comme suit pour chaque segment: un 1 est attribué au segment
allumé et 0 au segment éteint.
Code DCB a3 a2 a1 a0 a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 0 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 0 0 1 1
31
2) Etape 2: Mise en équation et simplification. L'équation de chaque segment est:
a1 a0 a1 a0
00 01 11 10 00 01 11 10
a3 a2 a3 a2
00 1 0 1 1 00 1 1 1 1
01 0 1 1 0 01 1 0 1 0
11 X X X X 11 X X X X
10 1 1 X X 10 1 1 X X
a = a2 + a a- + a a- + a a- b = a a a- + a a a-
ou a = a a- + a a a- a2
a1 a0 a1 a0
00 01 11 10 00 01 11 10
a3 a2 a3 a2
00 1 1 1 0 00 1 0 1 1
01 1 1 1 1 01 0 1 0 1
11 X X X X 11 X X X X
10 1 1 X X 10 1 0 X X
c = a a a- d = a a a - + a a a- + a a a -
a1 a0 a1 a0
00 01 11 10 00 01 11 10
a3 a2 a3 a2
00 1 0 0 1 00 1 0 0 0
01 0 0 0 1 01 1 1 0 1
11 X X X X 11 X X X X
10 1 0 X X 10 1 1 X X
e = a + a a- f ̅ = a a + a a - a2 + a a -
a1 a0
00 01 11 10
a3 a2
00 0 0 1 1
01 1 1 0 1
11 X X X X
10 1 1 X X
g = a a- a2 + a a a-
32
Remarque:
• L'équation de chaque segment est obtenue par l'établissement du tableau de Karnaugh. On aura donc 7
tableaux de Karnaugh. Les 0 étant moins nombreux, l'écriture des équations d'extinction des segments
sera plus simple.
• Il n'y a pas de rejection des données incorrectes (DCB supérieur à 1001) puisque les X des tables de
Karnaugh ont été pris en compte.
a = a a- + a a a- a2 ⇒ a = a a - . a a a - a2 ⇒ a = a a - . a a a - a2
b = a a a- + a a a- ⇒ > = ? ? ?- . ? ? ?- ⇒ b = a a a - . a a a-
c = a a a- ⇒ c = a a a- ⇒ c= a a a-
d = a a a- + a a a- + a a a - ⇒ d = a a a- . a a a - . a a a - ⇒ d = a a a - . a a a - . a a a -
e = a + a a- ⇒ e = a . a a- ⇒ e = a . a a-
f̅ = a a + a a- a2 + a a- ⇒ f ̅ = a a . a a - a 2 . a a- ⇒ f = a a . a a- a2 . a a-
g = a a- a2 + a a a- ⇒ g = a a - a 2 . a a a- ⇒ g = a a- a 2 . a a a -
a3
a2
a2
a1
a1
a0
a0
g f e d c b a
33
8. Le multiplexeur
Le multiplexeur (souvent désigné par Mux) est sans conteste le circuit usuel le plus utilisé. Le
rôle du multiplexeur est d’acheminer au choix une entrée parmi plusieurs. Le multiplexeur possède
donc plusieurs entrées et des signaux de contrôle permettant d’acheminer un de ces signaux vers sa
sortie. Un multiplexeur est un circuit qui permet de sélectionner une ligne d'entrée par une adresse
provenant des entrées de commandes et de faire apparaître à la sortie l'état de cette ligne (0 ou 1).
D’une façon générale, un multiplexeur à n signaux de contrôle (d’adresses ou de sélection) dispose d'au
plus 2n entrées et une sortie. Ce circuit permet de rediriger en sortie l'entrée dont l'index est codé par les
signaux de contrôle (c'est un aiguillage).
Exemple: Un multiplexeur de 4 lignes vers une sortie dispose d'une adresse de sélection (signaux de
contrôle) à 2 lignes.
s1 s0 Y
0 0 X0
0 1 X1
1 0 X2
1 1 X3
34
2) Etape 2: Mise en équation et simplification.
Y = s s X + s s X + s s X- + s s X2
Remarque:
1. Ce circuit est appelé multiplexeur car il permet de transmettre sur la ligne Y les données
apparaissant sur les quatre lignes d'entrées X0 à X3 en faisant varier l'adresse.
2. Le multiplexeur peut être réalisé à l'aide d'un décodeur qui permet de sélectionner le signal à
transmettre en sortie.
35
3. Le multiplexeur peut être généralisé à un composant possédant un nombre d’entrées puissance
de 2 (2n avec n: taille de l'adresse). On a donc le Mux de 8 à 1 (avec 3 signaux de contrôle), un
Mux de 16 à 1(avec 4 signaux de contrôle), etc.
4. Le schéma du multiplexeur est généralisable à des entrées de plusieurs bits, par exemple en
répétant le multiplexeur à k entrées d'un bit n fois pour former un multiplexeur à k entrées de n
bits.
9. Le démultiplexeur
Exemple1: Un démultiplexeur de 1 vers 4 lignes de sortie dispose d'une adresse de sélection (signaux
de contrôle) à 2 lignes.
36
Y0
X Y1
DEMUX Y2
Y3
s1 s0
s1 s0 Y3 Y2 Y1 Y0
0 0 0 0 0 X
0 1 0 0 X 0
1 0 0 X 0 0
1 1 X 0 0 0
37
Exemple 2: Un démultiplexeur de 1 vers 8 lignes de sortie dispose d'une adresse de sélection à 3 lignes.
s2 s1 s0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 X 0 0 0 0 0 0 0
0 0 1 0 X 0 0 0 0 0 0
0 1 0 0 0 X 0 0 0 0 0
0 1 1 0 0 0 X 0 0 0 0
1 0 0 0 0 0 0 X 0 0 0
1 0 1 0 0 0 0 0 X 0 0
1 1 0 0 0 0 0 0 0 X 0
1 1 1 0 0 0 0 0 0 0 X
s0
111
110
s1 101
100
011
s2 010
001
000
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
Remarque: Il est important de noter ici que l’entrée X a été inscrite dans la table de vérité, indiquant le
report de l’entrée à la sortie. On relèvera que l’index i de la sortie Yi par laquelle est acheminé X
correspond à la valeur binaire formé par les signaux de commande : S= s2s1s0.
38
10. La transmission de données binaires
Exemple:
Emetteur Récepteur
X0 S0
X1 S1
X2 S2
X3 Y E S3
X4 MUX DEMUX X4
X5 S5
X6 S6
X7 S7
adresse a2 a1 a0 a2 a1 a0
synchronisation
Si on synchronise les deux adresses, c'est-à-dire si ces deux adresses sont les mêmes en même
temps pour l'émetteur et le récepteur; par exemple 5, alors:
Y = X4 et E = Y = X4
si X 4 = 1 alors E=1 et S4 = 1
si X 4 = 0 alors E=0 et S4 = 0
On peut donc lire la valeur de huit lignes en un temps donné (temps de balayage de toutes les adresses
000 à 111) et la transmettre sur une autre ligne. En synchronisant le lecture du démultiplexeur, on peut
reconstituer la valeur binaire de la ligne par l'adresse et la transmettre sur huit lignes.
39