Vous êtes sur la page 1sur 39

Chapitre 1: La logique combinatoire

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.

Deux catégories de circuits peuvent être différenciées :

• 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.

2. Les circuits combinatoires

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

Les circuits combinatoires peuvent servir par exemple :

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. Les circuits combinatoires arithmétiques

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

2) Etape 2: Mise en équation et simplification.


= + = ⊕ et =

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
= + = ⊕ =

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.


i) à l'aide de portes OU exclusif et ET.
s0 = a0 ⊕b0 et c 0 = a 0 b0

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.

ii) à l'aide d'inverseurs et de portes ET et OU.

iii) à l'aide d'inverseurs et de portes NON-ET.

s0 = a0 b0 + a0 b0 = a0 b0 + a0 b0 = a0 b0 . a0 b0 et c 0 = a 0 b0

L'implantation dépend des circuits intégrés disponibles.

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.

3.2. L'Additionneur complet

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

2) Etape 2: Mise en équation et simplification.


i) Table de Karnaugh de si

bi ci-1
ai 00 01 11 10
0 0 1 0 1
1 1 0 1 0

si = ai bi ci−1 + ai bi ci−1 + ai bi ci−1 + ai bi ci−1


= a b +a b c + a b +a b c
= ai ⊕ bi ci−1 + ai ⊕ bi ci−1
=a ⊕b⊕c

ii) Table de Karnaugh de ci

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

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.

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.

Un additionneur n bits peut être aussi en chaînant n additionneur complets où le premier


additionneur possède une retenue égale à 0.

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.

3.2.2. L'indicateur d'Overflow

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 dépassement de capacité ne peut se produire que lors de l’addition de deux nombres de


même signe, c’est-à-dire soit deux nombres positifs, soit deux nombres négatifs. Examinons ci-dessous
les différents cas lors de la réalisation l’opération A + B = S avec A=( an-1an-2 . . . a1a0), B=( bn-1bn-2 . . .
b1b0) et S=( sn-1sn-2 . . . s1s0):
9
• Cas 1: les deux nombres A et B sont positifs, alors on a an-1=bn-1=0
Il se produit un overflow si le résultat de l'addition est négatif, c'est-à-dire si on a sn-1=1.
on a an-1=bn-1=0 ⇒ cn-1=0
on a sn-1= an-1+bn-1+ cn-2=1 ⇒ cn-2=1; on peut noter que cn-2≠ cn-1.
• Cas 2: les deux nombres A et B sont négatifs, alors on a an-1=bn-1=1
Il se produit un overflow si le résultat de l'addition est positif, c'est-à-dire si on a sn-1=0.
on a an-1=bn-1=1, ⇒ cn-1=1
on a sn-1= an-1+bn-1+ cn-2=0 ⇒ cn-2=0; on peut noter que cn-2≠ cn-1.
• Cas 3: les deux nombres A et B sont de signes différents, alors on a an-1≠bn-1
an-1≠bn-1 ⇒ an-1+bn-1=1
1) Si cn-2=0 ⇒ sn-1= an-1+bn-1+ cn-2=1+0= 1 et cn-1=0
2) Si cn-2=1 ⇒ sn-1= an-1+bn-1+ cn-2= 1+1=0 et cn-1=1
Dans les deux cas, on peut noter que cn-2= cn-1.

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:

cn-2 cn-1 O cn-1


cn-2 0 1
0 0 0 0 0 1
0 1 1 1 1 0
1 0 1 = + =
! " ! # ! " ! # ! "⊕ ! #
1 1 0

10

3.2.3. L'indicateur zéro

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:

Z = s0 . s1. s2 … . sn−1 = s0 + s1 + s2 + … + sn−1

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.

1) Etape 1: Table de vérité.

a0 b0 d0 c0
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0

2) Etape 2: Mise en équation et simplification.


( = + = ⊕ et =

b0 b0
a0 0 1 a0 0 1
0 0 1 0 0 1
1 1 0 1 0 0
( = + = ⊕ =

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.


d0 = a0 ⊕b0 et c 0 = a 0 b0

a0 b0

a0 c0
c0
Demi-
b0 soustracteur d0

d0

12
3.4. Le Soustracteur complet

Un soustracteur est un circuit capable de soustraire un nombre binaire d'un autre. La


soustraction des deux nombres doit tenir compte du report du rang précédent.

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

1) Etape 1: Table de vérité.

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

si = ai bi ci−1 + ai bi ci−1 + ai bi ci−1 + ai bi ci−1


= a b +a b c + a b +a b c
= ai ⊕ bi ci−1 + ai ⊕ bi ci−1
=a ⊕b⊕c

ii) Table de Karnaugh de ci

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

Etape 3: Réalisation du schéma logique du circuit combinatoire

14
ai bi ci-1

ci partiel
Demi- ci
soustracteur
di partiel ci partiel
Demi-
soustracteur
di

3.5. Le complémenteur à 1

Le complément restreint (ou complément à 1) d’un nombre binaire N = an – 1 … a0 s’obtient


par la simple inversion la valeur de chacun de ses bits. Il suffit donc de coupler un inverseur à chaque
bit de ce nombre binaire, le résultat obtenu est N = x, … x - x x = a, … a- a a .

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.

1) Etape 1: Table de vérité.

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

3) Etape 3: Réalisation du schéma logique du circuit combinatoire. xi = ai ⊕B

an-1 a1 a0
B

xn-1 x1 x0

3.6. Le complémenteur à 2

Le complément vrai (ou complément à 2) d’un nombre binaire N = an – 1 … a0 s’obtient en


ajoutant la valeur 1 au complément à 1 de ce nombre N + 1 = x, … x- x x . Pour concevoir le
complémenteur à 2 d'un nombre de quatre bits:

1) Etape 1: Table de vérité.

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.

Remarque: Le circuit logique du complémenteur à 2 d'un nombre binaire N = an – 1 … a0 peut être


obtenue par la combinaison du circuit du complémenteur à 1avec un additionneur à n bits.

3.7. L'additionneur - soustracteur

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.

3.7.1. Cas complément à 1

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.

3.7.2. Cas complément à 2

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.

4.1. Le décodeur de deux lignes vers quatre lignes

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

On obtient donc l'équation suivante: s N = 1 si i = N et s N = 0 si i≠N

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

1) Etape 3: Réalisation du schéma logique du circuit combinatoire.

4.2. Le décodeur de trois lignes vers huit lignes

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.

1) Etape 1: Table de vérité et mise en équation.

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-

2) Etape 3: Réalisation du schéma logique du circuit combinatoire.

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).

4.3. Le décodeur DCB vers dix lignes ou décimal

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.

Code DCB a3 a2 a1 a0 Sorties


0 0 0 0 0 s =a a a- a 2
1 0 0 0 1 s =a a a- a 2
2 0 0 1 0 s- = a a a- a 2
3 0 0 1 1 s2 = a a a- a 2
4 0 1 0 0 s3 = a a a - a2
5 0 1 0 1 s4 = a a a - a2
6 0 1 1 0 s5 = a a a - a2
7 0 1 1 1 s6 = a a a - a2
8 1 0 0 0 s7 = a a a- a 2
9 1 0 0 1 s8 = a a a- a 2
1 0 1 0 X
1 0 1 1 X
1 1 0 0 X
1 1 0 1 X
1 1 1 0 X
1 1 1 1 X

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.

2) Etape 2: Réalisation du schéma logique du circuit combinatoire.

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:

Exemple: pour la sortie s9 correspondant au chiffre DCB 9, on aura.

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

De la même manière on obtient alors:

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

Exercice: Déterminer le schéma logique du décodeur Excess3 vers décimal.

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.

5.1. Le codeur 4 lignes vers 2 lignes

C’est un codeur qui possède 4 entrées et deux sorties. Pour chaque entrée activée, son code

binaire est affichée sur les sorties.

1) Etape 1: Table de vérité.

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

2) Etape 2: Mise en équation et simplification.


S = a + a2 S = a- + a2

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

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.

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.

5.2.1. Le codeur de priorité 4 lignes vers 2 lignes

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 :

• 0010 ⇒ 1 où a1=1; • 0110 ⇒ 2 où a2=1;


• 0001 ⇒ 0 où a0=1; • 0100 ⇒ 2 où a2=1;
• 0110 ⇒ 2 où a2=1; • 1000 ⇒3 où a3=1.

1) Etape 1: Table de vérité.

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

2) Etape 2: Mise en équation et simplification.

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

5.2.2. Le codeur de priorité 8 lignes vers 3 lignes

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

Exercice: Concevez le logigramme du décodeur de priorité 8 lignes vers 3 sorties.

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.

6.1. Le convertisseur Gray binaire naturel

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

2) Etape 2: Mise en équation et simplification.

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

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.

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.

6.2. Le convertisseur binaire naturel en code Gray

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)

a = g ⊕g - ⊕g 2 ⇒ a ⊕a- = g ⊕g - ⊕g 2 ⊕g - ⊕g 2 = g ⇒ g = a ⊕a- (3)

a = g0 ⊕g1 ⊕g2 ⊕g3 ⇒ a ⊕a = g0 ⊕g1 ⊕g2 ⊕g3 ⊕g ⊕g - ⊕g 2 = g ⇒ g = a ⊕a (4)

30
Code binaire naturel a3 a2 a1 a0

Code Gray g3 g2 g1 g0

7. Le décodeur DCB vers sept lignes

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:

1) Etape 1: Table de vérité.

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.

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.

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.

• Les lignes (bits) d'entrées sont notées X0; X1; X2; X3


• La ligne de sortie est notée Y reproduira le niveau logique (l'état) de la ligne de données
sélectionnée (X0; X1; X2; X3) par l'adresse s1s0
• Les signaux de contrôle (sélection) sont notés s0; s1. Ils représentent l'adresse de la ligne
d'entrée à sélectionner

1) Etape 1: Table de vérité.

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

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.

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

Le démultiplexeur (Démux) fonctionne de façon inverse à celle du multiplexeur. Le démultiplexeur


reçoit n signaux de contrôle et une entrée à acheminer ou à aiguiller vers l’une des 2n sorties
sélectionnée par les signaux de contrôle. Les autres sorties donnent alors la constante 0.

Exemple1: Un démultiplexeur de 1 vers 4 lignes de sortie dispose d'une adresse de sélection (signaux
de contrôle) à 2 lignes.

• La ligne (bit) d'entrée est notée X


• Les lignes de sortie sont notées Y0; Y1; Y2; Y3
• Les signaux de contrôle (sélection) sont notés s0; s1. Ils représentent l'adresse de la ligne de
sortie à sélectionner

36
Y0
X Y1
DEMUX Y2
Y3

s1 s0

1) Etape 1: Table de vérité.

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

2) Etape 2: Mise en équation et simplification.


Y =s s X
Y =s s X
Y- = s s X
Y2 = s s X

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.

37
Exemple 2: Un démultiplexeur de 1 vers 8 lignes de sortie dispose d'une adresse de sélection à 3 lignes.

1) Etape 1: Table de vérité.

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

2) Etape 2: Mise en équation et simplification.


Y = s s s- X Y = s s s- X
Y- = s s s- X Y2 = s s s- X
Y3 = s s s- X Y4 = s s s- X
Y5 = s s s- X Y6 = s s s- X

3) Etape 3: Réalisation du schéma logique du circuit combinatoire.


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

Un exemple d'utilisation d'un multiplexeur et d'un démultiplexeur est transmission de données


binaires. La transmission des données binaires sur une ligne unique de transmission (une ligne en série)
nécessite la transformation d'un nombre écrit sous forme parallèle en une suite de bits mise en série. La
réception des données émises sur une ligne unique nécessite une transformation inverse à savoir de
série vers parallèle. C'est le rôle des circuits multiplexeur et démultiplexeur.

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

Vous aimerez peut-être aussi