Detector Corrector de Errores de Código de Hamming en una GAL En 1950, R. W. Hamming describió un método general para construir códigos con una distancia mínima de 3, ahora llamados códigos de Hamming. Para cualquier valor de i, su método brinda un código de 2i – 1 bits, con i bits de paridad y 2i – 1 – i bits de información. Las posiciones de los bits en la palabra de código de Hamming están numeradas de 1 a 2i -1. Cualquier posición cuyo número sea una potencia de 2 es un bit de paridad, y las demás son posiciones con bits de información. Como se muestra en la figura 1, cada bit de paridad se asocia con las posiciones de información cuyos números tienen un 1 en el mismo bit cuando se expresan en binario natural (8-4-2-1). Por ejemplo el bit de paridad 4 (100) se combina con los bits de información 5 (101), 6 (110) y 7 (111). Figura 1 Matriz de verificación de paridad para códigos de Hamming de siete bits. La siguiente tabla muestra los códigos para el diseño con cuatro bits de información y tres bits de paridad, cuando no ocurre ningún error. Bits de información 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Prof.. S. Saucedo Bits de paridad 000 011 101 110 110 101 011 000 111 100 010 001 001 010 100 111 1 Palabra de código 0000000 0000111 0011001 0011110 0101010 0101101 0110011 0110100 1001011 1001100 1010010 1010101 1100001 1100110 1111000 1111111 0 7 25 30 42 45 51 52 75 76 82 85 97 102 120 127 ICE/2007 En la figura 2 se exhibe el diagrama esquemático capturado con ABEL-HDL para implementar el circuito detector/corrector de errores en un solo bit, mediante el software ispLEVER starter.. Figura 2 Circuito corrector de errores para un código de Hamming de siete bits. La señal en I19 es la paridad impar del grupo A, la señal I18 es la paridad impar del grupo B y, finalmente, I17 es la paridad impar en el grupo C. Cuando las tres señales son 0 significa que no se detectó ningún error y no se realiza corrección alguna. Cuando una o más de tales señales es 1 se supone que ha ocurrido un error individual. El patrón de grupos que tiene paridad impar es llamado síndrome, mismo que se emplea para corregir el error específico. Las compuertas AND de la parte central producen todas una salida 0 cuando no existe error, y en caso contrario sólo una de ellas produce un 1 que hace que la señal de entrada a corregir sea complementada por la correspondiente compuerta XOR en la sección de salidas. Se intentó generar una salida booleana para indicar que no existe error, pero la GAL usada no tuvo la capacidad para tal circuito. Vectores de Prueba Se definieron quince vectores de prueba para efectuar la simulación del mapa de fusibles grabado en la GAL22V10. La figura 3 muestra el file tipo .ABV con los vectores. El alumno debe resolver cada uno de los casos para comprender a cabalidad el método de detección y corrección de errores simples al transmitir datos digitales. Prof.. S. Saucedo 2 ICE/2007 MODULE VECTORES TITLE 'Vectores de prueba para corrector de Hamming' X = .x.; " entradas D7..D1 pin; " salidas DC7..DC1 pin istype 'com'; DI = [D7, D6, D5, D3]; " bits de informacion DP = [D4, D2, D1]; " bits de paridad DCo = [DC7..DC1]; " palabra corregida test_vectors ([DI,DP] -> DCo) [0, 0] -> 0 ; " Cinco casos sin error [1, 3] -> X ; [2, 5] -> 25; [9, 4] -> X ; [12, 1] -> X ; [0, [1, [2, [9, [12, 2] 1] 4] 6] 5] -> X -> X -> X -> X -> 97 ; " Cinco casos con error en un bit de paridad ; ; ; ; [2, [6, [6, [15, [11, 6] 6] 0] 4] 7] -> X ; " Cinco casos con error en un bit de informacion -> X ; -> 52 ; -> 120 ; -> X ; END Figura 3 Listado del file con la definición de los vectores de prueba. Asignación de Terminales en la GAL D7 D6 D4 D3 D2 D1 D5 en 1 en 2 en 3 en 4 en 5 en 6 en 7 en 8 en 9 en 10 en 11 GND en 12 Prof.. S. Saucedo 24 23 22 21 20 19 18 17 16 15 14 13 3 es es es es es es es es es es es es Vcc DC6 DC4 DC2 DC1 N_18 N_19 N_17 DC7 DC3 DC5 No Con. ICE/2007 Formas de Onda La figura 4 ilustra la respuesta en el tiempo al aplicar las entradas de los vectores. Los primeros cinco casos son sin error, los siguientes cinco casos son para un bit de paridad con error y los últimos cinco casos son cuando hay un error en un bit de información. Figura 4 Simulación del módulo JEDEC grabado en la GAL. La referencia usada es Diseño Digital Principios y Prácticas de J. F. Wakerly, ed. PrenticeHall, 1992, pp. 39-43 y 302-304. Problema: Construir una tabla de Hamming cuando se tienen seis bits de información dibujando la matriz de verificación correspondiente. Prof.. S. Saucedo 4 ICE/2007