Logique Combinatoire
Introduction
● famille de circuits logiques pour lesquels la sortie dépend uniquement des états des entrées
➢ par opposition à la logique séquentielle où le temps va intervenir)
● aspect logique et fonctionnel uniquement
➢ pas d'aspect matériel
Plan du cours
● les circuits arithmétiques
➢ addition
➢ soustraction
➢ comparaison
➢ contrôle de parité
● encodeurs/décodeurs
● multiplexeur/démultiplexeurs
Addition
● demi-additionneur
➢ addition de 2 bits en base 2
0 + 0 = 00 0 + 1 = 01 1 + 0 = 01 1 + 1 = 10
➢ il faut éventuellement tenir compte de la retenue (carry)
➢ addition d'un nombre codé sur 4 bits :
a 3 a 2 a 1 a 0 nombre A + b 3 b 2 b 1 b 0 nombre B s 3 s 2 s 1 s 0 résultat S r 3 r 2 r 1 r 0 retenue C
deux bits pour coder le résultat de l'addition
Addition
➢ circuit demi-additionneur (half-adder)
HA A B
C S S = A B+ A B
S = A ⊕ B
C = A . B A
B S
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Addition
● additionneur
➢ 3 entrées :
●
les 2 bits des nombres à ajouter A et B
●
la retenue de l'étage précédent R
➢ 2 sorties :
●
le résultat de l'addition S
●
la retenue C
FA
A B R
S C
Addition
➢ table de vérité
S = A BR + A BR + A BR + A BR C A BR A BR A BR ABR
A B R S C
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
Addition
➢ tableau de Karnaugh pour simplifier C
C = A B + A R + B R ensuite, pour simplifier S : C = A B + A R + B R
A C = A BR BC = A BR RC = A BR
S = A BR + A BR + A BR + ABR
= ( A + B + R ) C + ABR
AB
R 00 01 11 10
0 1
1 1 1 1
Addition
➢ exemple d'implémentation d'un additionneur 1 bit
S = ( A + B+ R ) C+ ABR
C = AB + AR + BR
→ TD
→ TD
Addition
● addition en parallèle
➢ l'addition de nombres comportant plusieurs bits peut se faire en série (bit après bit)
➢ ou (presque) en parallèle (tous les bits simultanément)
→ TD
→ TD
Addition
➢ implémentation possible d'un additionneur parallèle
(Philips 74F283)
Soustraction
● demi-soustracteur
➢ table de vérité
S = A −B C : retenue
S = A . B + A . B = A ⊕ B C = A .B
A B C S
0 0 0 0
0 1 1 1
1 0 0 1
1 1 0 0
A
B S
C
Soustraction rappel : codage en complément à 2
● additionneur-soustracteur
➢ un nombre codé sur n bits peut prendre toutes les valeurs comprises entre 0 et 2 n
➢ le complémentaire d'un mot de n bits est obtenu en prenant le complément de chacun des n bits
●
●
●
2 n ≡ 0 (pour une variable codée sur n bits)
●
➢ (pour des variables codées sur n bits) A + A = 2 n −1
−A = A + 1−2 n
− A = A + 1 A − B = A + B + 1 + 2 n
= A + B + 1
Soustraction
➢ un seul dispositif pour l'addition et la soustraction :
code opération O :
0 : addition
1 : soustraction
Comparaison
● A=B, A>B, A<B
● table de vérité
A B C=(A>B) D=(A<B) E=(A=B)
0 0
0 1
1 0
1 1
Comparaison
● A=B, A>B, A<B
● table de vérité
A B C=(A>B) D=(A<B) E=(A=B)
0 0 0 0 1
0 1
1 0
1 1
Comparaison
● A=B, A>B, A<B
● table de vérité
A B C=(A>B) D=(A<B) E=(A=B)
0 0 0 0 1
0 1 0 1 0
1 0
1 1
Comparaison
● A=B, A>B, A<B
● table de vérité
● on en déduit
C = A . B D = A . B
E = A . B + A . B
A B C=(A>B) D=(A<B) E=(A=B)
0 0 0 0 1
0 1 0 1 0
1 0 1 0 0
1 1 0 0 1
= A ⊕B = A ⊕ B = A ⊕ B
= C + D
Contrôle de parité
● la parité d'un mot binaire est définie comme la parité de la somme des n bits qui le composent
● le OU EXCLUSIF donne la parité d'un sous-ensemble de 2 bits
A B parité
0 0 0
0 1 1
1 0 1
1 1 0
Contrôle de parité
● principe du contrôle de parité :
➢ partant d'un mot de n bits
➢ le mot de n+1 bits formé en adjoignant au mot de n bits son bit de parité est toujours de parité nulle
●
si P' est maintenue à 0, P donne la parité du mot de 4 bits
Contrôle de parité
● utilisation du contrôle de parité pour valider la transmission de données
➢ P 2 doit être nul pour valider la transmission
Décodage
● l'opération de décodage permet d'identifier un objet parmi N à partir d'un code l'identifiant de façon unique
● exemple :
➢ N=2 n leds numérotées de 0 à N-1
➢ il faut n bits pour représenter le numéro de chaque led
➢ un décodeur va prendre en entrée les n bits permettant
d'identifier une instruction et en sortie va allumer (mettre à
un niveau 1) la ligne correspondant à la led sélectionnée
Décodage
● exemple : 8 leds codées sur 3 bits
0 1 2 3 4 5 6 7
A
2A
1A
0L
0L
1L
2L
3L
4L
5L
6L
7Décodage
● exemple : 8 leds codées sur 3 bits
0 0 0
0 1 2 3 4 5 6 7
1
0
0
0
0
0
0
0
Décodage
● exemple : 8 leds codées sur 3 bits
0 0 1
0 1 2 3 4 5 6 7
0 1
0
0
0
0
0
0
Décodage
● exemple : 8 leds codées sur 3 bits
0 1 0
0 1 2 3 4 5 6 7
0 0
1
0
0
0
0
0
Décodage
● exemple : 8 leds codées sur 3 bits
1 1 0
0 1 2 3 4 5 6 7
0 0
0
0
0
0
1
0
Décodage
● exemple : 8 leds codées sur 3 bits
➢ utilisé dans les unités de contrôle des CPU
1 1 1
0 1 2 3 4 5 6 7
0
0
0
0
0
0
1
0
Décodage
● table de vérité
E A
2A
1A
0L
0L
1L
2L
3L
4L
5L
6L
7Produit
0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 0 0 0 0
0 0 1 0 0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0 1 0 0 0
0 1 0 1 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 0 0 0 1 0
0 1 1 1 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0
A
2A
1A
0E
A 2 A 1 A 0 E
A 2 A 1 A 0 E
A 2 A 1 A 0 E
A 2 A 1 A 0 E
A 2 A 1 A 0 E
A 2 A 1 A 0 E
A 2 A 1 A 0 E
Décodage
● Représentation BCD
➢ la représentation Binary Coded Decimal (décimale
codée binaire) remplace chacun des chiffres décimaux par 4 chiffres binaires
Cette représentation conserve la structure décimale (unités, dizaines, centaines, etc...)
➢ chaque chiffre est codé sur 4 bits selon la table suivante
●
le chiffre 294 sera codé : 0010 1001 0100
décimal BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
Décodage
● implémentation correspondante
L
0L
1L
2E A
2A
1A
0Multiplexage
● pour transmettre sur une seule ligne des informations en provenance de plusieurs sources possibles à destination de plusieurs cibles
➢ analogie mécanique
Démultiplexeur
● Démultiplexeur
➢ circuit avec une entrée et N sorties, mettant en relation l'entrée avec une seule des sorties
➢ sélection de la sortie à l'aide de lignes d'adressage
●
très proche d'un décodeur
➢ exemple
●
1 ligne d'entrée portant les données D
●
4 lignes de sortie Y 0 , Y 1 , Y 2 , Y 3
●
2 lignes d'adressage A et B
●
validation de l'adressage par un strobe E (Enable) à 0
Démultiplexeur
●
table de correspondance
E E A A
11A A
00Y Y
00Y Y
11Y Y
22Y Y
33Produit Produit
0 0 0 D 0 0 0
0 0 1 0 D 0 0
0 1 0 0 0 D 0
0 1 1 0 0 0 D
1 0 0 0 0 0 0
1 0 1 0 0 0 0
1 1 0 0 0 0 0
1 1 1 0 0 0 0
A BED
A BED
A BED
A BED
Démultiplexeur
➢ implémentation correspondante
Y
0Y
1Y
2Y
3A A
D
E
Multiplexeur
● multiplexeur
➢ réalise l'opération inverse : sélectionne une entrée parmi N et transmet l'information à une sortie unique
➢ exemple :
●
4 entrées (2 lignes d'adressage et 1 strobe)
Y A A E X A A E X A A E X A A E X
E E A A
11A A
00Y Y
0 0 0 X
00 0 1 X
10 1 0 X
20 1 1 X
31 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
X
0X
1X
2X
3E A
1A
0Y
Multiplexeur
➢ mise en cascade de plusieurs multiplexeurs
A
3A
4Multiplexeur
● Réalisation d'une fonction logique
➢ exemple d'une fonction F de 4 variables définie par sa table de vérité :
x y z t F Multiplexeur
0 0 0 0
1
X00 0 0 1 0 X1
0 0 1 0 1 X2
0 0 1 1 0 X3
0 1 0 0 0 X4
0 1 0 1 1 X5
0 1 1 0 0 X6
0 1 1 1 0 X7
1 0 0 0 1 X8
1 0 0 1 1 X9
1 0 1 0 1 X10
1 0 1 1 1 X11
1 1 0 0 0 X12
1 1 0 1 1 X13
X
Multiplexeur
● Réalisation d'une fonction logique
➢ exemple d'une fonction F de 4 variables définie par sa table de vérité :
x y z t F Multiplexeur
0 0 0 0
1
X00 0 0 1 0 X1
0 0 1 0 1 X2
0 0 1 1 0 X3
0 1 0 0 0 X4
0 1 0 1 1 X5
0 1 1 0 0 X6
0 1 1 1 0 X7
1 0 0 0 1 X8
1 0 0 1 1 X9
1 0 1 0 1 X10
1 0 1 1 1 X11
F
X
0X
15
1 X
1Encodage
● opération inverse du décodage
➢ N = 2 n lignes en entrée
➢ n lignes en sortie
➢ lorsque une des lignes est activée en entrée, l'encodeur fournit en sortie un mot de n bits correspondant au
codage de l'information identifiée par la ligne d'entrée
➢ exemple d'une conversion décimal-BCD
●
10 entrées (de 0 à 9)
●