ELE1300
Circuits
logiques
5. Tables de
Karnaugh complexes
Sommaire du cours
• Être capable de:
• Utiliser la table de Karnaugh pour trouver
l’implémentation optimale en SdP ou PdS pour des
fonctions avec cas facultatifs (ou « don’t cares »),
• Se servir de tables de Karnaugh en trois dimensions,
• Se servir de tables de Karnaugh à variables inscrites.
ELE1300 - Circuits logiques 2
Un travail à vérifier … (suite)
/A
/B
C • Vous êtes chef de la section
“conception numérique” d’une
petite entreprise. Un jeune
B
/C F1
technicien vous revient avec ce
D
A
/B
schéma. Discutez :
C
• L’implémentation de F1
A
• L’implémentation de F2
F
• Sachant qu’on a seulement
B
/C
besoin du résultat final F,
/B
C
/D
• Que pensez-vous de ce circuit ?
F2 • Qu’auriez-vous fait ?
/A
/B
• Pouvez-vous quantifier vos propos ?
/C
• Finalement, que dites-vous à
/A votre technicien ?
/B
/D
ELE1300 - Circuits logiques 3
Culture générale: le code BCD
N A B C D P
BCD = « Binary-coded decimal »
0 0 0 0 0 0
Le format BCD ne comprend que les codes de
1 0 0 0 1 1
0 à 9, les codes 10 à 15 ne surviennent jamais.
2 0 0 1 0 1
La sortie du circuit pour ces codes est donc
3 0 0 1 1 0 facultative.
4 0 1 0 0 1
5 0 1 0 1 0
6 0 1 1 0 0 Exemples
7 0 1 1 1 1
Valeur BCD Binaire
8 1 0 0 0 1
9 1 0 0 1 0 125 0001 0010 0101 111 1101
1 0 1 0
inutilisés
255 0010 0101 0101 1111 1111
à
1 1 1 1
ELE1300 - Circuits logiques 4
Simplification avec cas facultatifs
Exemple : Contrôle d’un affichage 7 segments
A B C D P
0 0 0 0 0
0 0 0 1 1 CD
0 0 1 0 1 00 01 11 10
0 0 1 1 0
00
0 1 0 0 1
0 1 0 1 0 01
0 1 1 0 0 AB
0 1 1 1 1 11 - - - -
1 0 0 0 1
10 - -
1 0 0 1 0
1 0 1 0
à (sans objet)
1 1 1 1
ELE1300 - Circuits logiques 5
Karnaugh avec cas facultatifs
• Pour une forme disjonctive:
1. Traiter les cas facultatifs comme des ‘1’.
2. Identifier les rectangles comme d’habitude.
3. S’assurer de couvrir tous les mintermes non-facultatifs
(les ‘-’ n’ont pas à être couverts).
• Pour une forme conjonctive:
1. Traiter les cas facultatifs comme des ‘0’.
2. Identifier les rectangles comme d’habitude.
3. S’assurer de couvrir tous les maxtermes non-facultatifs.
ELE1300 - Circuits logiques 6
Karnaugh
Fonction S à 5 variables (A, B, C, D, E) S AB BDE
CD
00 01 11 10
00 0 0 0 0
01 1 1 1 1
AB
11 0 0 0 0 0 0 0 0
10 0 0 0 0 1 1 1 1
E=0 0 1 1 0
0 0 0 0
E=1
ELE1300 - Circuits logiques 7
Karnaugh
Fonction S à 6 variables (A, B, C, D, E, F) S BDF B D E AC
CD
00 01 11 10
00 1 0 0 1
01 0 0 0 0 1 0 0 1
11 0 0 1 1 0 1 1 0 0 0 0 0
10 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 0
1 0 1 1 0 1 1 1 0 0 0 0
EF = 00
0 0 1 1 0 0 1 1
EF = 01
0 0 1 1
EF = 11
EF = 10
ELE1300 - Circuits logiques 8
Tables à variables inscrites
Table originale:
A B C S
BC
0 0 0 s0
00 01 11 10
0 0 1 s1
0 s0 s1 s3 s2
0 1 0 s2 A
0 1 1 s3 1 s4 s5 s7 s6
1 0 0 s4
1 0 1 s5
1 1 0 s6
1 1 1 s7
ELE1300 - Circuits logiques 9
Tables à variables inscrites
« Inscription » d’une variable :
s0 si C 0
A B C S S Cs0 Cs1
s1 si C 1
0 0 0 s0
0 0 1 s1
0 1 0 s2
0 1 1 s3
1 0 0 s4
1 0 1 s5
1 1 0 s6
1 1 1 s7
ELE1300 - Circuits logiques 10
Tables à variables inscrites
« Inscription » d’une variable :
s0 si C 0
A B C S S Cs0 Cs1
s1 si C 1
0 0 0 s0
0 0 1 s1
0 1 0 s2 A B S
0 1 1 s3
1 0 0 s4 0 0 Cs0 Cs1
1 0 1 s5
0 1 Cs2 Cs3
1 1 0 s6
1 1 1 s7 1 0 Cs4 Cs5
1 1 Cs6 Cs7
ELE1300 - Circuits logiques 10
Tables à variables inscrites
« Inscription » d’une variable :
s0 si C 0
A B C S S Cs0 Cs1
s1 si C 1
0 0 0 s0
0 0 1 s1
0 1 0 s2 A B S B
0 1 1 s3 0 1
1 0 0 s4 0 0 Cs0 Cs1 0 Cs0 Cs1 Cs2 Cs3
1 0 1 s5 A
0 1 Cs2 Cs3
1 1 0 s6 1 Cs4 Cs5 Cs6 Cs7
1 1 1 s7 1 0 Cs4 Cs5
1 1 Cs6 Cs7
ELE1300 - Circuits logiques 10
Exemple
Sans variable inscrite:
A B C S
BC
0 0 0 1 00 01 11 10
0 0 1 1 0 1 1 0 1
0 1 0 1 A
1 0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
ELE1300 - Circuits logiques 11
Exemple
Sans variable inscrite:
A B C S
BC
0 0 0 1 00 01 11 10
0 0 1 1 0 1 1 0 1
0 1 0 1 A
1 0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
ELE1300 - Circuits logiques 11
Exemple
Sans variable inscrite:
A B C S
BC
0 0 0 1 00 01 11 10
0 0 1 1 0 1 1 0 1
0 1 0 1 A
1 0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1 S AC BC
1 1 0 0
1 1 1 0
ELE1300 - Circuits logiques 11
Exemple (suite)
Avec variable inscrite:
A B C S B
0 1
0 0 0 1 1 si C 0 0 1 C
S 1
0 0 1 1 1 si C 1 A
1 C 0
0 1 0 1 1 si C 0
S C
0 1 1 0 0 si C 1
1 0 0 0 0 si C 0 S ????
S C
1 0 1 1 1 si C 1
1 1 0 0 0 si C 0
S 0
1 1 1 0 0 si C 1
ELE1300 - Circuits logiques 12
Exemple de regroupements
Pour une formulation disjonctive (somme de produits)
B B
B
0 1 0 1
0 1
0 0 0 0 C C
0 0 C A
A A
1 C C 1 C C
1 0 C
S BC S AC S BC BC
ELE1300 - Circuits logiques 13
Expansion des valeurs constantes ‘1’
B B
0 1 0 1
0 1 C 0 C C C
A A S BC AC
1 C 0 1 C 0
Un autre exemple:
B B
0 1 0 1
0 1 1 0 1
A A S BC A
1 C 0 1 C 0
ELE1300 - Circuits logiques 14
Expansion des valeurs constantes ‘1’
B B
0 1 0 1
0 1 C 0 C C C
A A S BC AC
1 C 0 1 C 0
Un autre exemple:
B B
0 1 0 1
0 1 1 0 1
A A S BC A
1 C 0 1 C 0
ELE1300 - Circuits logiques 14
Expansion des valeurs constantes ‘1’
B B
0 1 0 1
0 1 C 0 C C C
A A S BC AC
1 C 0 1 C 0
Un autre exemple:
B B
0 1 0 1
0 1 1 0 C C 1
A A S BC A
1 C 0 1 C 0
ELE1300 - Circuits logiques 14
Encore des exemples
B B
0 1 0 1
0 1 0 0 C C 0
A A S BC A B
1 C 0 1 C 0
B
0 1
0 1 1
A S C A B
1 C 1
ELE1300 - Circuits logiques 15
Encore des exemples
B B
0 1 0 1
0 1 0 0 C C 0
A A S BC A B
1 C 0 1 C 0
B
0 1
0 1 1
A S C A B
1 C 1
ELE1300 - Circuits logiques 15
Encore des exemples
B B
0 1 0 1
0 1 0 0 C C 0
A A S BC A B
1 C 0 1 C 0
B
0 1
0 1 1
A S C A B
1 C 1
ELE1300 - Circuits logiques 15
Encore des exemples
B B
0 1 0 1
0 1 0 0 C C 0
A A S BC A B
1 C 0 1 C 0
B
0 1
0 1 1
A S C A B
1 C 1
ELE1300 - Circuits logiques 15
Expansion des valeurs constantes ‘0’
Regroupements pour une formulation conjonctive (produit de sommes)
B B
0 1 0 1
A
0 1 C
A
0 1 C
S AC BC
1 C 0 1 C C C
B B
0 1 0 1
A
0 1 0
A
0 1 0
S AC B
1 C 0 1 C C C
ELE1300 - Circuits logiques 16
Expansion des valeurs constantes ‘0’
Regroupements pour une formulation conjonctive (produit de sommes)
B B
0 1 0 1
A
0 1 C
A
0 1 C
S AC BC
1 C 0 1 C C C
B B
0 1 0 1
A
0 1 0
A
0 1 0
S AC B
1 C 0 1 C C C
ELE1300 - Circuits logiques 16
Expansion des valeurs constantes ‘0’
Regroupements pour une formulation conjonctive (produit de sommes)
B B
0 1 0 1
A
0 1 C
A
0 1 C
S AC BC
1 C 0 1 C C C
B B
0 1 0 1
A
0 1 0
A
0 1 0
S AC B
1 C 0 1 C C C
ELE1300 - Circuits logiques 16
Exemples
B B
0 1 0 1
A
0 1 1
A
0 1 1
S AC A B
1 C 0 1 C C C
B B B
0 1 0 1 0 1
0 C C 0 1 1 0 1 C
A A A
1 C C 1 C C 1 1 C
S B C B C S AC S BC
ELE1300 - Circuits logiques 17
Variables inscrites + cas facultatifs
A B C S s0 s1 Cs0 Cs1
0 0 0 s0 0 0 0
S Cs0 Cs1 0 1 C
0 0 1 s1
0 1 0 s2 où s0 et s1 peuvent être 0, 1 ou 0 0 ou C
0 1 1 s3 non spécifiés (cas facultatifs). 1 0 C
1 0 0 s4 Il y a 9 situations possibles : 1 1 1
(un cas facultatif est représenté par un tiret)
1 0 1 s5 1 C ou 1
1 1 0 s6 0 C ou 0
1 1 1 s7 1 C ou 1
ELE1300 - Circuits logiques 18
Exemple
A B C D S
BC
00 01 11 10
0 0 0 0 0
0 0 0 1 1
SD
0 D 1 D ou 0 0
0 0 1 0 1
S 1 A
0 0 1 1 1
1 D 1
0 1 0 0 0
0 1 0 1 0
S 0
0 1 1 0
0 1 1 1 0
S D ou 0
1 0 0 0 S C D A BD AB
1 0 0 1
S
1 0 1 0 1
1 0 1 1 0 SD
1 1 0 0
1 1 0 1
S
1 1 1 0 1
1 1 1 1 1
S 1
ELE1300 - Circuits logiques 19
Exemple
A B C D S
BC
00 01 11 10
0 0 0 0 0
0 0 0 1 1
SD
0 D 1 D ou 0 0
0 0 1 0 1
S 1 A
0 0 1 1 1
1 D 1
0 1 0 0 0
0 1 0 1 0
S 0
0 1 1 0
0 1 1 1 0
S D ou 0
1 0 0 0 S C D A BD AB
1 0 0 1
S
1 0 1 0 1
1 0 1 1 0 SD
1 1 0 0
1 1 0 1
S
1 1 1 0 1
1 1 1 1 1
S 1
ELE1300 - Circuits logiques 19
Exemple
A B C D S
BC
00 01 11 10
0 0 0 0 0
0 0 0 1 1
SD
0 D 1 D ou 0 0
0 0 1 0 1
S 1 A
0 0 1 1 1
1 D 1
0 1 0 0 0
0 1 0 1 0
S 0
0 1 1 0
0 1 1 1 0
S D ou 0
1 0 0 0 S C D A BD AB
1 0 0 1
S
1 0 1 0 1
1 0 1 1 0 SD
1 1 0 0
1 1 0 1
S
1 1 1 0 1
1 1 1 1 1
S 1
ELE1300 - Circuits logiques 19
Plusieurs variables inscrites
B B
0 1 0 1
0 C CD 0 C CD
A A S AC B D AB
1 0 1 1 0 DD
ELE1300 - Circuits logiques 20
Plusieurs variables inscrites
B B
0 1 0 1
0 C CD 0 C CD
A A S AC B D AB
1 0 1 1 0 DD
ELE1300 - Circuits logiques 20
Plusieurs variables inscrites
B B
0 1 0 1
0 C CD 0 C CD
A A S AC B D AB
1 0 1 1 0 DD
ELE1300 - Circuits logiques 20
Plusieurs variables inscrites
B B
0 1 0 1
0 C CD 0 C CD
A A S AC B D AB
1 0 1 1 0 DD
ELE1300 - Circuits logiques 20
Exemples
B
B
0 1
0 1
C C
0 C
0 1 C DD
A A S AB B D AC
1 D 0 1 D 0
B B
0 1 0 1
0 0 CD 0 0 CD
A A S BCD AC
1 C CD 1 C C CD
C D C C C D C CD CD C 1 D CD C CD
ELE1300 - Circuits logiques 21
Exemples
B
B
0 1
0 1
C C
0 C
0 1 C DD
A A S AB B D AC
1 D 0 1 D 0
B B
0 1 0 1
0 0 CD 0 0 CD
A A S BCD AC
1 C CD 1 C C CD
C D C C C D C CD CD C 1 D CD C CD
ELE1300 - Circuits logiques 21
Exemples
B
B
0 1
0 1
C C
0 C
0 1 C DD
A A S AB B D AC
1 D 0 1 D 0
B B
0 1 0 1
0 0 CD 0 0 CD
A A S BCD AC
1 C CD 1 C C CD
C D C C C D C CD CD C 1 D CD C CD
ELE1300 - Circuits logiques 21
Exemples
B
B
0 1
0 1
C C
0 C
0 1 C DD
A A S AB B D AC
1 D 0 1 D 0
B B
0 1 0 1
0 0 CD 0 0 CD
A A S BCD AC
1 C CD 1 C C CD
C D C C C D C CD CD C 1 D CD C CD
ELE1300 - Circuits logiques 21
Exemples
B
B
0 1
0 1
C C
0 C
0 1 C DD
A A S AB B D AC
1 D 0 1 D 0
B B
0 1 0 1
0 0 CD 0 0 CD
A A S BCD AC
1 C CD 1 C C CD
C D C C C D C CD CD C 1 D CD C CD
ELE1300 - Circuits logiques 21
Exemples
A B C D E S A B C D E S
0 0 0 0 0 0 1 0 0 0 0 0
SE 1 0 0 0 1 1 SE
0 0 0 0 1 1
0 0 0 1 0 1 1 0 0 1 0 0
S 1 1 0 0 1 1 1
SE
0 0 0 1 1 1
0 0 1 0 0 0 1 0 1 0 0 0
S 0 1 0 1 0 1 0
S 0
0 0 1 0 1 0
0 0 1 1 0 0 1 0 1 1 0 0
S 0 1 0 1 1 1 0
S 0
0 0 1 1 1 0
0 1 0 0 0 0 1 1 0 0 0 0
S 0 1 1 0 0 1 0
S 0
0 1 0 0 1 0
0 1 0 1 0 1 1 1 0 1 0 1
S 1 SE
0 1 0 1 1 1 1 1 0 1 1 0
0 1 1 0 0 1 1 1 1 0 0 0
S 1 1 1 1 0 1 0
S 0
0 1 1 0 1 1
0 1 1 1 0 1 1 1 1 1 0 1
S 1 1 1 1 1 1 1
S 1
0 1 1 1 1 1
ELE1300 - Circuits logiques 22
Exemples (suite)
CD
00 01 11 10
00 E 1 0 0
01 0 1 1 1
AB
11 0 E 1 0
10 E E 0 0
S BD E BCE ACD BCD ABC
ELE1300 - Circuits logiques 23
Exemples (suite)
CD
00 01 11 10
00 E 1 0 0
01 0 1 1 1
AB
11 0 E 1 0
10 E E 0 0
S BD E BCE ACD BCD ABC
ELE1300 - Circuits logiques 23
Exemples (suite)
A B C D E S A B C D E S
0 0 0 0 0 0 1 0 0 0 0 0
SE SE
0 0 0 0 1 1 S D 1 D E 1 0 0 0 1 1
SE
0 0 0 1 0 1 S DE 1 0 0 1 0 0
0 0 0 1 1 1
S 1 1 0 0 1 1 1
SE
0 0 1 0 0 0 1 0 1 0 0 0
0 0 1 0 1 0
S 0 1 0 1 0 1 0
S 0
S 0 S 0
0 0 1 1 0 0 1 0 1 1 0 0
0 0 1 1 1 0
S 0 1 0 1 1 1 0
S 0
0 1 0 0 0 0 1 1 0 0 0 0
0 1 0 0 1 0
S 0 1 1 0 0 1 0
S 0
S D 1 D S DE
0 1 0 1 0 1 1 1 0 1 0 1
S 1 SE
0 1 0 1 1 1 1 1 0 1 1 0
0 1 1 0 0 1 1 1 1 0 0 0
0 1 1 0 1 1
S 1 1 1 1 0 1 0
S 0
S 1 SD
0 1 1 1 0 1 1 1 1 1 0 1
0 1 1 1 1 1
S 1 1 1 1 1 1 1
S 1
ELE1300 - Circuits logiques 24
Exemples (suite)
CD
00 01 11 10
BC
00 E 1 0 0 00 01 11 10
01 0 1 1 1 0 DE 0 1 D
AB A
11 0 E 1 0
1 E 0 D DE
10 E E 0 0
S BD E BCE ACD BCD ABC
ELE1300 - Circuits logiques 25
Exemples (suite)
CD
00 01 11 10
BC
00 E 1 0 0 00 01 11 10
01 0 1 1 1 0 DE 0 1 D
AB A
11 0 E 1 0
1 E 0 D DE
10 E E 0 0
S BD E BCE ACD BCD ABC
ELE1300 - Circuits logiques 25
Exemples (suite)
CD
00 01 11 10
BC
00 E 1 0 0 00 01 11 10
01 0 1 1 1 0 DE 0 1 D
AB A
11 0 E 1 0
1 E 0 D DE
10 E E 0 0
S BD E BCE ACD BCD ABC
ELE1300 - Circuits logiques 25
Le comparateur
an-1 a2 a1 a0 bn-1 b2 b1 b0
sE
COMPARATEUR sG
sP
100 si an 1 an 2 a2 a1 a0 bn 1 bn 2 b2 b1 b0
sE sG sP 010 si an 1 an 2 a2 a1 a0 bn 1 bn 2 b2 b1 b0
001 si a a a a a b b b b b
n1 n2 2 1 0 n1 n2 2 1 0
E (Égal) : A = B G (Grand) : A > B P (Petit), A < B
UN seul des trois bits peut être actif à la fois
ELE1300 - Circuits logiques 26
Le comparateur (suite)
Comparateur : réalisation avec des comparateurs à un bit
a0 b0 ai bi an-1 bn-1
E0 E1 Ei Ei+1 En-1 En
sE
G0 G1 Gi Gi+1 Gn-1 Gn
COMPARATEUR
(UN BIT)
COMPARATEUR
(UN BIT)
COMPARATEUR
(UN BIT)
sG
P0 P1 Pi Pi+1 Pn-1 Pn
sP
Note : E0 = 1 et G0 = P0 = 0
ELE1300 - Circuits logiques 27
Le comparateur (suite)
ai bi Ei Gi Pi Ei 1 Gi 1 Pi 1
0 0 1 0 0 1 0 0
ai bi
0 0 0 1 0 0 1 0
0 0 0 0 1 0 0 1
0 1 1 0 0 0 0 1
Ei Ei+1
0 1 0 1 0 0 0 1
Gi COMPARATEUR Gi+1
(UN BIT) 0 1 0 0 1 0 0 1
Pi Pi+1 1 0 1 0 0 0 1 0
1 0 0 1 0 0 1 0
1 0 0 0 1 0 1 0
1 1 1 0 0 1 0 0
1 1 0 1 0 0 1 0
1 1 0 0 1 0 0 1
( Tous les autres cas sont facultatifs )
ELE1300 - Circuits logiques 28
Le comparateur (suite)
EiGi
00 01 11 10 Ei 1 ai bi Ei ai bi Ei
00 - 0 - 1
01 - 0 - 0
aibi
11 - 0 - 1 0 - - -
10 - 0 - 0 0 - - -
Pi = 0 0 - - -
0 - - -
Pi = 1
ELE1300 - Circuits logiques 29
Le comparateur (suite)
EiGi
00 01 11 10 Gi 1 ai bi Gi ai Gi ai bi
00 - 1 - 0
01 - 0 - 0
aibi
11 - 1 - 0 0 - - -
10 - 1 - 1 0 - - -
Pi = 0 0 - - -
1 - - -
Pi = 1
ELE1300 - Circuits logiques 30
Le comparateur (suite)
EiGi
00 01 11 10 Pi 1 bi Pi ai Pi ai bi
00 - 0 - 0
01 - 1 - 1
aibi
11 - 0 - 0 1 - - -
10 - 0 - 0 1 - - -
Pi = 0 1 - - -
0 - - -
Pi = 1
ELE1300 - Circuits logiques 31
Le comparateur (suite)
Ei 1 ai bi Ei ai bi Ei ai bi ai bi Ei ai bi Ei ai bi Ei
Gi 1 ai bi Gi ai Gi ai bi ou encore : ai bi Gi ai bi Gi ai bi
ai bi ai bi Gi ai bi ai bi Gi ai bi
Pi 1 bi Pi ai Pi ai bi ou encore : ai bi Pi ai bi Pi ai bi
ai bi ai bi Pi ai bi ai bi Pi ai bi
ELE1300 - Circuits logiques 32
Le comparateur (suite)
ai bi
Ei+1
Ei
Gi+1
Gi
Pi
Pi+1
ELE1300 - Circuits logiques 33