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)AB + f(0,1)AB+ f(1,0)AB + 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+AB (AB) – Par tableau de Karnaugh 6 Méthode de Karnaugh (1950, Yale University) • Simplification des monômes adjacents – mx +mx = 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 bc + ab c + abc + ab c bc 00 01 11 10 0 0 1 0 0 1 1 1 0 1 a • f(a,b,c) = ac +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)=acd + abcd +a bcd + acd 8