séance 5 29/11/2005

publicité
Correction d’erreurs
• Propriété: Pour corriger x erreurs il suffit que la distance
de Hamming h ≥ 2x + 1
• Le code erroné doit rester plus proche du code original
que de tout autre
• Exemple de code correcteur
– m = 2 ; r = 3 ; M = {00111, 01100, 10000, 11011}
– h = 3, on corrige une erreur
• Problème :
– Quelle est la valeur minimale de r permettant de corriger les
erreurs simples dans des trames de m bits de données et r de
contrôle ?
– 2r >= m+r+1 (m+r erreurs possibles sur m ou r ou pas erreur)
– Exemple : m =4, r = 3
Code correcteur de Hamming
• N = m + r bits rangés de la façon suivante:
– x1 x2 x3 x4 x5 x6 x7 x8 x9
– r1 r2 m1 r3 m2 m3 m4 r4 m5 (puissance de 2: r)
– 1=1
–
–
–
–
–
–
–
–
2= 2
3 = 1+ 2
4=
4
5 = 1+ 4
6 = 2+ 4
7 = 1+ 2 +4
8=
8
9=1
+8
x1 ⊕ x3 ⊕ x5 ⊕ x7 ⊕ x9= 0
x2 ⊕ x3 ⊕ x6 ⊕ x7 =0
x4 ⊕ x5 ⊕ x6 ⊕ x7 =0
x8 ⊕ x9 = 0
• Valable pour un nombre quelconque de bits de donnée.
• Nombre de bits de contrôle minimal pour n bits de données
• À destination on recalcule les bits de contrôle. La somme des numéros
des bits de contrôle erronés donne le numéro du bit qui porte l’erreur.
• Voir TD
• Utilisé pour les erreurs disque dur
1
Synthèse
combinatoire
But
• Apprendre à synthétiser des circuits
combinatoires a partir de tables de vérité,
fonctions booléennes, tableaux de Karnaugh
• Combinatoire: la sortie du circuit ne dépend
que de ses entrées et non de son passé
2
Représentation algébrique d’une
fonction booléenne
• f fonction booléenne:
– Bn ⇒ B
– x ⇒ f(x)
– Si f renvoie indifféremment 0 ou 1 on dit que f est
Φ-booléenne
– La fonction f* duale de f est telle que ∀x, f*(x) = f (x )
• La représentation algébrique d’une fonction
booléenne peut s’exprimer à l’aide des 3
opérateurs de base ET OU NON
Représentation d’une fonction
booléenne
• Monôme booléen: produit de p variables booléennes
apparaissant chacune une seule fois sous forme directe
ou complémentée
– Exemples: xy,xy, zxy sont des monômes booléen
alors que x +y est un monal booléen
• Forme polynomiale: somme de monômes booléens
– Exemple f(x, y, z) = xy +xy +zxy
• Forme polynale: produit de monaux booléens
– Exemple f(x, y, z) = (x +y) .(x +y ) .(z +x +y)
3
Propriétés de l’algèbre de Boole
• ∀ (x,y,z)∈ B3
– Commutativité: x + y = y + x et x.y = y.x
– Associativité: (x+y)+z= x+ (y+z) et x.(y.z)=(x.y).z
– Distributivité: x.(y+z)=(x.y)+(x.z)
et x+(y.z)= (x+y).(x+z) (moins évident)
– Élément neutre: x+0 = x et x.1 = x
– Complémentation: x+x = 1 et x.x = 0
– Idempotence: x+x = x et x.x = x
– Éléments absorbants: x+1 = 1 et x.0 = 0
Propriétés de l’algèbre de Boole
• ∀ (x,y,z)∈ B3
– Absorptions: x + xy = x et x. (x+y)=x
– Involution: x = x
– Théorèmes d’Augustus de Morgan:
• x+y = x y
• x.y = x +y
= NOR(x,y)
= NAND(x,y)
• Vérification avec les TV
4
Forme canonique d’une fonction
Booléenne
• 1ere FC ou forme systématique de Lagrange
– 1ere forme Th. de Shannon:∀i,
f(x1,…, xn) =xi f(x1,…xi-1,0,xi+1,…, xn) +
xi f(x1,…xi-1,1,xi+1,…, xn)
– Appliqué itérativement n fois :
f(x1,…, xn) =
2n
n
∑ ∏ (xi ou xi)
• Exemple: f(A,B)=A f(0,B) +A f (1,B)
– f(A,B)=A [ f(0,0)B+ f (0,1) B] + A [ f(1,0)B+ f (1,1) B]
– f(AB)= f(0,0)AB + f(0,1)AB+ f(1,0)AB + f(1,1)AB
Forme canonique d’une fonction
Booléenne
• 2eme FC ou seconde forme systématique de Lagrange
– 2eme forme Th. de Shannon:∀i,
f(x1,…, xn) = [xi + f(x1,…xi-1,1,xi+1,…, xn)] .
[xi + f(x1,…xi-1,0,xi+1,…, xn)]
– Appliqué itérativement n fois :
f(x1,…, xn) = ∏ ∑ (xi ou xi)
• Exemple: f(A,B)=[A + f(1,B)] . [ A + f (0,B)]
f(A,B)={A + [B + f(1,1) ].[ B+ f (1,0)]} . [A +…]
f(AB)=[f(1,1)+A+B].[f(1,0)+A+B].[f(0,1)+A+B].[f(0,0)+A+B]
par distributivité x+yz = (x+y)(x+z)
5
Exercice
• Soit la fonction combinatoire f à
3 variables booléennes définie
par la table de vérité suivante
– Donner f sous la 1ere et 2nde FC
– Simplifier f (expression minimale)
– Combien de portes logiques
élémentaires ?
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
F
1
1
0
1
1
1
1
0
Représentation minimisée d’une
fonction booléenne
• Mise sous forme la plus simple possible pour
diminuer le coût de la réalisation
technologique
• Méthodes
– Algébrique: on utilise les propriétés
de l’algèbre de Boole
F= ABC+AB (AB)
– Par tableau de Karnaugh
6
Méthode de Karnaugh (1950, Yale University)
• Simplification des monômes adjacents
– mx +mx = m( x +x ) = m
• Construction d’un tableau équilibré (le plus carré
possible)
• Lignes et colonnes codées en Code binaire réfléchi
(Code de Gray)
• Remplissage du tableau avec les valeurs de la fonction:
0 1 ou Φ
• Constitution de regroupements de 1 et Φ les plus
grands possibles avec 2N lignes et 2M colonnes (on peut
dépasser des bords)
• Lorsque tous les 1 sont couverts, on extrait les
monômes simplifiés
Exemple
• f(a,b,c) = a bc + ab c + abc + ab c
bc
00
01
11
10
0
0
1
0
0
1
1
1
0
1
a
• f(a,b,c) = ac +b c
7
Exercices
• Simplifier par Karnaugh la fonction booléenne Maj3:
majorité à 3 variables, retourne vrai si le nombre de
variables d’entrées à 1 est plus nombreux
• Simplifier par Karnaugh
f(a,b,c,d)=acd + abcd +a bcd + acd
8
Téléchargement