Professional Documents
Culture Documents
page 55
Universit de Savoie
Figure 7.1. Table de vrit. 1.2.2 Tableau de Karnaugh Le tableau de karnaugh est une reprsentation de la table de vrit en deux dimensions. Il comprend 2n cases.
page 56
Universit de Savoie
Exemple : f (a, b ) = a + b
b\a 0 1
0 0 1
1 1 1
Au-del de deux variables, le tableau devrait tre un volume. Pratiquement on conserve videmment une reprsentation deux dimensions mais il faut alors respecter une rgle qui est ladjacence de deux lignes ou colonnes. Les combinaisons des variables respectent donc un code de Gray. code de Gray Exemple 4 variables : cd\ab 00 code de Gray 01 11 10 00 0 1 0 1 01 1 1 1 1 11 0 1 0 1 10 1 1 1 1
Figure 7.2. Code de Gray. 1.3 Fonctions lmentaires 1.3.1 Fonction/Oprateur Inverseur (NON) Expression : Si a est vrai, f (a ) est faux : f (a ) = a . Table de vrit : a f (a ) 0 1 Symbole : a a f (a, b ) = S = ab . = ab 0 0 0 1 1 0
1.3.2 Fonction/Oprateur AND (ET) Expression : f (a, b ) est vraie si a est vrai et b est vrai : Table de vrit : S a b 0 0 0 1 1 0 1 1
page 57
Universit de Savoie
Tableau de Karnaugh :
b\a 0 1
0 0 0 a.b
1 0 1
Symbole :
a b
Utilisation en porte logique S = a si b = 1 S = 0 si b = 0 Le AND ralise donc une porte (ouverte si b = 1 , ferme si b = 0 ). 1.3.3 Fonction/Oprateur OR (OU) Expression : f (a, b ) est vraie si a est vrai ou b est vrai : f (a, b ) = S = a + b . Table de vrit : a 0 0 1 1 b 0 1 0 1 S = a +b 0 1 1 1
Figure 7.4. Table de vrit du OR. Tableau de Karnaugh : b\a 0 1 Symbole : a b a+b 0 0 1 1 1 1
Utilisation en porte logique S = a si b = 0 S = 1 si b = 1 Le OR ralise donc une porte (ouverte si b = 0 , ferme si b = 1 ). 1.4 Proprits des fonctions lmentaires 1.4.1 Elment neutre OR : a+0= a AND : a .1 = a 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 Ce thorme scrit : f (a, b,...,+,.) = f a, b,...,.,+ Le complment dune fonction f de variables a, b, sobtient en remplaant les variables par leur complment, et les oprateurs AND (.) par des OR (+) (et rciproquement). 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
)(
)(
1.6 Formes normales Les formes normales sont des expressions particulires de fonctions logiques, sous formes de ET de OU ("produits de sommes") ou de OU de ET ("sommes de produits"). Dans chaque terme apparaissent toutes les variables. 1.6.1 Forme normale disjonctive (FND) Thorme n 1 de Shannon : Toute fonction logique peut se dcomposer en un OU de deux ET logiques :
f ( a, b, c,...) = a. f (1, b, c,...) + a . f (0, b, c,...)
La fonction scrit donc comme un OU de toutes les combinaisons possibles de n variables pondres par des 0 et 1 (il y a donc 2n termes). Les termes pondrs par des 0 disparaissent et il
Chp-7 Elments de logique combinatoire - Codage 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
Trouver le tableau de Karnaugh (ou la table de vrit) de f. sous sa forme normale, f scrit :
f ( a, b, c ) = a b c . f (0,0,0) + a b c. f (0,0,1) + a bc . f (0,1,0) + a bc. f (0,1,1) + ab c . f (1,0,0) + ab c. f (1,0,1) + abc . f (1,1,0) + abc. f (1,1,1)
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
00 0 1
01 0 1
11 0 0
10 1 1
page 60
Universit de Savoie
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
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 :
avec ici :
0 1
00 0 1
01 0 1
11 0 0
10 1 1
1.7 Simplification de fonctions La simplification dune fonction consiste obtenir son expression la plus compacte possible afin de minimiser le nombre doprateurs logiques ncessaires sa ralisation. On distingue deux mthodes de simplification : mthode algbrique ; mthode graphique. 1.7.1 Simplification graphique 1.7.1.1 Principe Cette mthode repose sur lutilisation des tableaux de Karnaugh. Elle consiste mettre en vidence des associations du type : ab + ab = a b + b = a
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 0 1
00 1 1
01 0 0
11 1 0
10 1 0
c change a ne change pas (0) a.b b ne change pas (0) Figure 7.5. Principe de regroupement (exemple 1). Donc : f = abc + abc + abc + abc = ab + ac Exemple 2 : c\ab 0 1 00 0 0 01 1 1 11 1 1 10 0 0
a change b ne change pas (1) b c change Figure 7.6. Principe de regroupement (exemple 2). Donc : f = abc + abc + abc + abc = b
page 62
Universit de Savoie
Exemple 3 :
cd\ab 00 01 11 10
00 1 0 0 1
01 0 0 0 0
11 0 0 0 0
10 1 0 0 1
Figure 7.7. Principe de regroupement (exemple 3). Donc : f = abc d + abc d + abc d + abc d = bd v Rcapitulation des rgles : 1. On ne regroupe que 2n cases (2,4,8,16,). 2. les regroupements sont forcment des rectangles ou carrs (compte tenu des permutations pour les bords). Pas de L , pas de croix, 3. lexpression sera dautant plus compacte que ltendue des regroupements est grande. Pour un regroupement occupant la moiti du tableau il ny a plus quune variable, pour le quart il reste deux variables, pour un regroupement de deux cases, il reste n-1 variables. A la limite un regroupement de tout le tableau fait disparatre toute variable ( f = 1 ). Dune manire gnrale, un regroupement de 2i cases conduit supprimer i variables. 4. Il est inutile de regrouper des 1 qui ont tous dj t regroups par ailleurs. On parle alors de terme inclus. 1.7.2 Simplification algbrique Cette technique de simplification repose sur lutilisation des proprits de lalgbre de Boole et des thormes fondamentaux. Elle est moins systmatique que la simplification graphique mais peut parfois donner des rsultats rapidement. v Utilisation des identits particulires (a + b ) a + b = a (1) ab + ab = a (4) a(a + b ) = a (2) ab + a = a (5)
(3)
a + ab = a + b
(6)
a a + b = ab
v Ajout de terme existant (utilisation de lidempotence) Exemple : f = abc + abc + abc + abc f = abc + abc + abc + abc + abc + abc f = bc + ac + ab
page 63
Universit de Savoie
1.7.3 Combinaisons impossibles Parfois des combinaisons particulires des valeurs des variables ne peuvent pas se produire, pour des raisons physiques ou technologiques. On utilise alors ces combinaisons pour simplifier la fonction. Le principe consiste dire que puisque la combinaison napparat pas, on considre que si elle apparaissait, elle donnerait un 1 ou un 0, selon ce qui nous arrange pour la simplification (un ascenseur ne peut tre 2 tages au mme instant). Exemple 1 : on cre la fonction f(a,b,c,d) telle que f = 1 ssi 1 < N < 5 avec N cod en BCD. On dispose de 4 bits pour coder les nombres de 0 9 ; or 4 bits permettent de coder jusqu 24 = 16 valeurs : N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 (ne peut pas se 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
Si on ne tient pas compte des tats 10 15, f scrit : f = a b c + a bc d En considrant que les combinaisons impossibles sont affectes arbitrairement des valeurs 0 ou 1 on peut obtenir : f = b c + bc d Rgle pratique : on remplit le cases avec le symbole qui montre que lon peut choisir la valeur que lon veut (0 ou 1) pour cette case. 1.8 Fonctions/Oprateurs complets 1.8.1 Fonction/Oprateur NAND Expression : f (a, b ) est vraie si a et b est faux : f (a, b ) = S = a.b . Table de vrit : a b S = ab 0 0 1 1 0 1 0 1 1 1 1 0
Figure 7.8. Table de vrit du NAND. Tableau de Karnaugh : b\a 0 1 Symbole : a b 0 1 1 a.b 1 1 0
Synthse de linverseur (NON) avec des NAND S = a.b ; a S = a.a = a si a = b si b = 1 S = a.1 = a a 1 a.b a.b
a a
( )
a b a b 1
a.b
S = a.b .1 = a.b
( ) ( )
a.b
page 65
Universit de Savoie
( ) ( )( )
a a+b
Expression : f (a, b ) est vraie si a ou b est faux : f (a, b ) = S = a + b . Table de vrit : a b S = a +b 0 0 1 0 1 0 1 0 0 1 1 0 Figure 7.9. Table de vrit du NOR. Tableau de Karnaugh : b\a 0 1 a 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 Synthse du AND avec des NOR S = a.b = a.b = a + b = a + a + b + b = a + 0 + b + 0 Synthse du OR avec des NOR Symbole : 0 1 0 1 0 0
a a
( )
) (
) (
) (
S = a+b = a+b = a+b = a+b +0 1.8.3 Utilisation des NOR et NAND pour la synthse dune fonction quelconque Les deux oprateurs NOR et NAND tant universels, ils peuvent tre utiliss indiffremment pour synthtiser une mme fonction. Pour les faire apparatre on peut procder comme prcdemment, mais galement utiliser une rgle simple. Remarque : en pratique, le NAND est plus rapide que le NOR ; il est donc plus utilis. Rgle de De Morgan graphique
) (
page 66
Universit de Savoie
On peut exprimer le thorme de De Morgan directement sur lexpression graphique de la fonction : a a a+b a+b b a + b = a.b se dessine : b a.b = a + b se dessine : a b a a.b b a.b
On peut dduire une rgle simple de synthse graphique : On peut remplacer directement un NOR (NAND) par un AND (OR) dont les entres sont complmentes . 1.9 Fonction/Oprateur XOR (OU Exclusif) 1.9.1 XOR deux entres Expression : f (a, b ) est vraie si a est vrai ou b est vrai, mais pas les deux: f (a, b ) = S = a b . Table de vrit : S = ab a b 0 0 0 0 1 1 1 0 1 1 1 0 Figure 7.10. Table de vrit du XOR. Daprs la table de vrit, on obtient : S = a b = ab + ab b\a 0 1 a Symbole : 0 0 1 1 1 0
Tableau de Karnaugh :
S = ab b 1.9.2 XOR plusieurs entres Dfinition XOR(a, b, c,...) = 1 si le nombre de variables 1 est impair. Exemple trois variables : S = a b c c\ab 0 1 00 0 1 01 1 0 11 0 1 10 1 0
Figure 7.11. XOR plusieurs entres. La reprsentation dun XOR en tableau de Karnaugh est un damier avec un 0 en haut gauche (car toutes les variables sont 0).
Chp-7 Elments de logique combinatoire - Codage page 67
Universit de Savoie
le
XOR
possde
la
proprit
dassociativit :
) (
La symtrie permet deffectuer toutes les permutations en a, b ou c : a a b b S c c 1.9.3 Utilisation du XOR Dtection de non galit de deux variables a b = 0 si a = b ; a b = 1 si a b . Dtecteur dimparit a b c = 0 si le nombre de variables 1 est pair a b c = 1 si le nombre de variables 1 est impair
Oprateur programmable Le XOR est loprateur programmable le plus simple. Avec les AND, OR, NON, NOR et NAND, la relation entre sortie (f) et entre (a,b,c,) est fige. Avec un XOR on peut jouer sur cette relation de manire la modifier en fonction dune entre qui joue le rle de commande. Principe : a 0 0 1 1 p 0 1 0 1 S 0 1 1 0
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
p est donc lentre de contrle ; a peut tre la sortie dautres oprateurs. Exemple : 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
a 0 0 1 1
b 0 1 0 1
R 0 0 0 1
S 0 1 1 0
Ce circuit additionneur est donc trs facile raliser avec un XOR et un AND : a b S R
page 69
Universit de Savoie
Exemple : clavier de porte automatique : le dverrouillage de la porte seffectue lorsquon prsente au clavier la bonne combinaison. 2.2.3 Transcodeur Un transcodeur est un circuit qui permet de passer dun code un autre (N entres et N sorties). Exemple : lecteur de code barre : la combinaison des barres correspond une succession de nombres dcimaux. 643021 2.3 Dcodeur 2.3.1 Exemple : dcodeur binaire 1 parmi 4. Le numro de la sortie active correspond au nombre binaire de deux bits a, b prsent en entre du circuit. a b Dcodeur S0 S1 S2 S3
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 S1 = ab S 2 = ab S 3 = ab a 0 0 1 1 b 0 1 0 1 S0 1 0 0 0 S1 0 1 0 0 S2 0 0 1 0 S3 0 0 0 1
Figure 7.14. Dcodeur 1 parmi 4. 2.3.2 Association de dcodeurs, dcodeur 1 parmi 2n Lorsque le nombre dentres est grand, le dcodeur peut devenir complexe. En pratique, on utilise souvent plusieurs dcodeurs plus petits (les circuits commerciaux sont forcment limits en taille et complexit, et ils ne peuvent pas toujours rpondre exactement aux besoins spcifiques). Exemple : dcodeur binaire 1 parmi 8 (3 bits) raliser avec des dcodeurs 1 parmi 4 (2 bits). Si lon ajoute une porte la sortie dun dcodeur, on peut activer (valider) celui-ci ou bien forcer ses sorties 0 quelles que soient les niveaux sur les entres. On appelle cette entre la validation.
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 S1 = ab.Val S 2 = ab.Val S3 = ab.Val Val
S0 S1 Dcodeur S2 S3
Figure 7.15. Dcodeur avec entre de validation. Le dcodeur incluant les portes de validation est appel dcodeur complet ou dcodeur avec entr de validation. Pour raliser le dcodeur 1 parmi 8, il suffit alors dutiliser deux dcodeurs 1 parmi 4 complets. a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 S0 1 0 0 0 0 0 0 0 S1 0 1 0 0 0 0 0 0 S2 0 0 1 0 0 0 0 0 S3 0 0 0 1 0 0 0 0 S4 0 0 0 0 1 0 0 0 S5 0 0 0 0 0 1 0 0 S6 0 0 0 0 0 0 1 0 S7 0 0 0 0 0 0 0 1
Figure 7.16. Table de vrit du dcodeur 1 parmi 8. Les entres de validation sont utilises pour slectiionner un dcodeur parmi 2 laide de la variable a comme le montre la figure 7.17. a b c a1 b1 Val1 a2 b2 Val2 S0 S1 S2 S3 S4 S5 S6 S7
Figure 7.17. Dcodeur 1 parmi 8 ralis avec deux dcodeurs 1 parmi 4. Gnralisation : dcodeur 1 parmi 2n On peut gnraliser le rsultat prcdent en fabriquant le signal Vali laide dun dcodeur.
Chp-7 Elments de logique combinatoire - Codage 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. entre 1 E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 a b c d E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 a 0 0 0 0 0 0 0 0 1 1 b 0 0 0 0 1 1 1 1 0 0 c 0 0 1 1 0 0 1 1 0 0 d 0 1 0 1 0 1 0 1 0 1
Figure 7.18. Table de vrit condense du codeur BCD. On obtient aisment les expressions des variables de sortie a,b,c,d : a = E8 + E9 ; b = E 4 + E5 + E6 + E7 ; c = E2 + E3 + E6 + E7 ; d = E1 + E3 + E5 + E7 + E9 . La ralisation du codeur est donne sur la figure 7.19.
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 Trancodeur S1 S2 S3 Figure 7.20. Exemple de transcodeur. Exemple 1 : transcodeur deux bits : binaire naturel code de Gray. La table de vrit est donne sur la figure 7.21. a 0 0 1 1 b 0 1 0 1 x 0 0 1 1 y 0 1 1 0
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 1 2 3 4 5 6 7
page 74