Professional Documents
Culture Documents
Electronique et Instrumentation
Universit de Savoie
CHAPITRE 7
ELEMENTS DE LOGIQUE COMBINATOIRE
CODAGE
1.
2.
page 55
Universit de Savoie
b
0
1
0
1
f (0,0) = 0
f (0,1) = 1
f (1,0) = 1
f (1,1) = 1
a+b
0
1
1
1
page 56
Universit de Savoie
Exemple : f (a, b ) = a + b
b\a
00
01
11
10
00
01
11
10
Symbole :
0
a
f (a, b ) = S = ab .
= ab
0
0
0
1
page 57
Universit de Savoie
Tableau de Karnaugh :
Symbole :
a
b
b\a
a.b
S = a +b
0
1
1
1
b
0
1
0
1
Symbole :
a
b
b\a
a+b
1.4.2 Commutativit
OR :
a+b =b+a
AND :
a.b = b.a
page 58
Universit de Savoie
1.4.3 Associativit
(a + b ) + c = a + (b + c ) = a + b + c
OR :
(a.b ).c = a.(b.c ) = a.b.c
AND :
1.4.4 Distributivit double
a.(b + c ) = a.b + a.c
1.4.5 Idempotence
OR : a + a = a
AND : a.a=a
1.4.6 Complment
a = a ; a + a = 1 ; a.a = 0
1.5 Thormes fondamentaux
1.5.1 Thorme de De Morgan
)(
)(
Exemple : f = ab + cd + ad f = a + b c + d a + d .
On suppose que la priorit des oprateurs est la mme quen algbre classique, ce qui permet
domettre certaines parenthses.
1.5.2 Dualit
Une galit demeure vraie si lon permute les OR et AND et les 0 et 1.
Exemple :
a + ab = a + b
a +1 = 1
a. a + b = ab
a.0 = 0
page 59
Universit de Savoie
ne reste donc que les termes pondrs par des 1, do lexpression : "dveloppement de la
fonction suivant les 1".
Exemple 1 : soit f(a,b,c) dfinie par le tableau de Karnaugh suivant, dterminer sa FND.
ab
00 01 11 10
c
0
0
0
0
1
1
1
1
0
1
do f (a, b, c) = a b c .0 + a bc .0 + abc .0 + ab c .1 + a b c.1 + a bc.1 + abc.0 + ab c.1
soit : f (a, b, c) = ab c + a b c + a bc + ab c
On note que ce rsultat est obtenu directement partir du tableau de Karnaugh (ou de la table
de vrit) en crivant que f est lunion (+) des combinaisons de a, b, c pour lesquelles f vaut 1.
Exemple 2 :
f ( a, b, c ) = a b c + a b c + a bc + ab c
avec
f (0,0,0) = 1
f (1,0,0) = 0
do le tableau de Karnaugh :
ab
c
0
1
00
1
1
01
0
1
11
0
0
10
0
1
On note que cela revient mettre des 1 dans les cases dfinies par les combinaisons de
variables prsentes dans lexpression de f.
1.6.2 Forme normale conjonctive (FNC)
Thorme n 2 de Shannon :
Toute fonction logique peut se dcomposer en un ET de deux OU logiques :
f ( a, b, c,...) = (a + f (0, b, c,...)).(a + f (1, b, c,...))
Cette forme est la duale de la FND. Comme prcdemment l'utilisation successive de ce thorme
permet d'arriver la forme normale conjonctive :
Exemple 1 :
ab
c
0
1
00
0
1
01
0
1
11
0
0
10
1
1
page 60
Universit de Savoie
[
][
]
[(a + b + c) + 1][. (a + b + c ) + 1].[(a + b + c) + 0][. (a + b + c ) + 0]
f ( a, b, c ) = [(a + b + c) + 0][
. (a + b + c ) + 1]. ( a + b + c) + 0 . (a + b + c ) + 1 .
En pratique, on cherche les cases 0, puis on fait le ET des combinaisons de variables qui leur
"correspondent" en prenant garde que la "correspondance" n'est pas la mme que pour la FND.
Dveloppement suivant les "0".
Exemple 2 :
ab
c
0
1
00
1
0
01
0
1
11
1
0
10
0
0
Ne pas confondre les rgles de dveloppement suivant les "1" et les "0".
Exemple 3 : Passage de la FNC au tableau de Karnaugh
f ( a, b, c) = ( a + b + c).(a + b + c).(a + b + c ).(a + b + c ) s'crit aussi :
[
][
]
[(a + b + c) + f (1,0,0)][. (a + b + c ) + f (1,0,1)].[(a + b + c) + f (1,1,0)][. (a + b + c ) + f (1,1,1)]
f ( a, b, c ) = [( a + b + c) + f (0,0,0)][
. (a + b + c ) + f (0,0,1)]. (a + b + c) + f (0,1,0) . ( a + b + c ) + f (0,1,1) .
avec ici :
f (0,0,0) = 0
f (1,0,0) = 1
f (0,0,1) = 1
f (1,0,1) = 1
f (0,1,0) = 0
f (1,1,0) = 0
f (0,1,1) = 1
f (1,1,1) = 0
0
1
00
0
1
01
0
1
11
0
0
10
1
1
page 61
Universit de Savoie
On remarque que les regroupements ci-dessus correspondent aux cas o lon a 2, 4, 8, (2n en
gnral) cases adjacentes sur le tableau de Karnaugh, qui sont simultanment gales 1.
1.7.1.2 Adjacence des cases
Deux cases adjacentes sur le tableau de Karnaugh correspondent des combinaisons diffrant
dun seul bit (ceci est d lutilisation du code de Gray). Ceci est valable lintrieur du tableau
mais aussi sur ses bords : en passant du bord droit au bord gauche ou du haut au bas il y a
adjacence. Ceci revient dire que lon peut considrer le tableau comme une sphre.
v Rgle pratique
La rgle consiste donc fusionner ces 2n cases adjacentes pour trouver lexpression rsultante.
On regarde la ou les variables qui change(nt) entre les cases fusionnes ; ces variables sont alors
supprimes dans la nouvelle expression simplifie.
v Exemples
Exemple 1 :
c\ab
00
01
11
10
b change
c change
c\ab
00
01
11
10
a change
c change
page 62
Universit de Savoie
Exemple 3 :
cd\ab
00
01
11
10
00
01
11
10
a change
(3)
a + ab = a + b
ab
a a + b = ab
(6)
Exemple :
f = abc + abc + abcd
f =
page 63
Universit de Savoie
a
0
0
0
0
0
0
0
0
1
1
b
c
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
impossible
11
(ne
12
peut
13
pas
14
se
15
produire)
d
0
1
0
1
0
1
0
1
0
1
f
0
0
1
1
1
0
0
0
0
0
1 ou
0
1 ou
0
1 ou
0
1 ou
0
1 ou
0
1 ou
0
page 64
Universit de Savoie
Tableau de Karnaugh :
ab
cd
0
01
11
10
00
0
0
1
1
01
1
0
0
0
11
X
X
X
X
10
0
0
X
X
0
1
0
1
1
1
1
0
Symbole :
b\a
a
b
a.b
S = a.1 = a
( )
( ) ( )
S = a.b .1 = a.b
a
1
a
b
a.b
a
b
1
a.b
a.b
a.b
page 65
Universit de Savoie
( ) ( )( )
a+b
b
b
1.8.2 Fonction/Oprateur NOR
b\a
a
Symbole :
a+b
b
Synthse de linverseur (NON) avec des NOR
S = a +b ;
a
S =a+a =a
si a = b
si b = 1
S =a+0=a
a
0
( )
) (
) (
) (
S = a.b = a.b = a + b = a + a + b + b = a + 0 + b + 0
) (
page 66
Universit de Savoie
a
b
a.b
b
a.b
Tableau de Karnaugh :
b\a
S = ab
b
1.9.2 XOR plusieurs entres
Dfinition
XOR(a, b, c,...) = 1 si le nombre de variables 1 est impair.
Symbole :
00
01
11
10
page 67
Universit de Savoie
Associativit
Il est facile de montrer que
a b c = a (b c ) = (a b ) c .
le
XOR
) (
possde
la
proprit
dassociativit :
p
0
1
0
1
S
0
1
1
0
p
Figure 7.12. Porte logique.
S = 0 si a = 0 et p = 0
S = a si p = 0
S = 1 si a = 1 et p = 0
S = 1 si a = 0 et p = 1
S = a si p = 1
S = 0 si a = 1 et p = 1
a
b
p
S = ab si p = 0 ; S = ab si p = 1
Additionneur lmentaire sur deux bits
Les fonctions somme (S) et retenue (R)
sont dfinies ainsi :
page 68
Universit de Savoie
S = ab
R = ab
Ce circuit additionneur est donc trs facile raliser avec un XOR et un AND :
a
b
S
R
page 69
Universit de Savoie
S0
S1
S2
S3
Dcodeur
Pour raliser un dcodeur, il suffit dcrire la table de vrit des diffrentes sorties du dcodeur.
Lexpression des sortie Si se dduit alors simplement de la table de vrit (Figure 7.14).
S 0 = ab
S0
S1
S2
S3
S1 = ab
S 2 = ab
S 3 = ab
page 70
Universit de Savoie
Si Val = 0 Si = 0 a,b
Si Val = 1 fonctionnement en dcodeur a
normal
S 0 = ab.Val
b
S0
S1
Dcodeur
S2
S1 = ab.Val
S3
S 2 = ab.Val
Val
S3 = ab.Val
S0
S1
S2
S3
S4
S5
S6
S7
a1
b1
Val1
a2
b2
Val2
S0
S1
S2
S3
S4
S5
S6
S7
page 71
Universit de Savoie
2.3.3 Codeur
v Synthse complte du codeur
Chacune des variables de sortie est ralise en fonction des combinaisons des variables dentre.
Un codeur n sorties aura au maximum 2 n entres. Pour envisager toutes les combinaisons des
n
variables dentre, il faudrait donc n tableaux de Karnaugh 2 2 cases.
Par exemple, 4 variables de sortie pour un codeur binaire permettent de coder 2 4 = 16 variables
dentre. Pour synthtiser chaque sortie il faudrait un tableau de Karnaugh 16 variables, soit
216 = 65536 cases (ou une table de vrit de 65536 lignes).
v Synthse simplifie du codeur
Pour un fonctionnement classique, il ne peut y avoir quune seule entre 1 la fois. On a donc
n
2 n combinaisons possibles des variables dentre au lieu de 2 2 .
Exemple : codeur BCD. BCD signifie Binary Coded Decimal soit Dcimal Cod en
Binaire . Dans ce code, les chiffres dcimaux (0 9) sont cods en binaire sur 4 bits.
On utilise une table de vrit condense qui utilise le fait quil ne peut y avoir quune seule entre
1 la fois (ceci revient placer des dans toutes les cases pour lesquelles il ny a quune seule
entre 1). La table de vrit condense est donne sur la figure 7.18.
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
a
b
c
d
entre 1
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
page 72
Universit de Savoie
E0
- - - - - - - - - - - - - E9
d
a
Figure 7.19. Codeur BCD.
Ce codeur est trs simple mais il prsente des inconvnients :
si deux entres sont actives simultanment la sortie peut prendre une valeur mal dfinie ;
la sortie code 0 si aucune entre nest active ( E0 nest pas connect).
Pour rpondre au premier inconvnient, on peut ajouter des contraintes la synthse simplifie.
Ceci donne lieu par exemple au codeur prioritaire. Dans ce codeur on remplace un certain
nombre de par des 0 ou des 1 en fonction de critres particuliers, comme par exemple la
priorit dune entre par rapport une autre.
2.3.4 transcodeur
Le transcodeur sert passer dun code un autre. On calcule chaque sortie Sj en fonction des
combinaisons des entres Ei (voir figure 7.20).
E0
E1
E2
E3
E4
E5
S0
S1
Trancodeur
S2
S3
Figure 7.20. Exemple de transcodeur.
b
0
1
0
1
x
0
0
1
1
y
0
1
1
0
page 73
Universit de Savoie
On dduit : x = a et y = ab + ab .
Exemple 2 : dcodeur BCD 7 segments.
Souvent on affiche les nombres sur des Diodes ElectroLuminescentes (DEL) 7 segments qui
forments le chiffre afficher (voir figure 7.22). Les sorties a g sexpriment alors en fonction des
entres A D (code BCD).
a
f
e
g
d
b
c
0
page 74