Está en la página 1de 4

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 Bits de Palabra de código
información paridad
0000 000 0000000 0
0001 011 0000111 7
0010 101 0011001 25
0011 110 0011110 30
0100 110 0101010 42
0101 101 0101101 45
0110 011 0110011 51
0111 000 0110100 52
1000 111 1001011 75
1001 100 1001100 76
1010 010 1010010 82
1011 001 1010101 85
1100 001 1100001 97
1101 010 1100110 102
1110 100 1111000 120
1111 111 1111111 127

Prof.. S. Saucedo 1 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, 2] -> X ; " Cinco casos con error en un bit de paridad


[1, 1] -> X ;
[2, 4] -> X ;
[9, 6] -> X ;
[12, 5] -> 97 ;

[2, 6] -> X ; " Cinco casos con error en un bit de informacion


[6, 6] -> X ;
[6, 0] -> 52 ;
[15, 4] -> 120 ;
[11, 7] -> X ;

END
Figura 3 Listado del file con la definición de los vectores de prueba.
Asignación de Terminales en la GAL

D7en 1 24 es Vcc
D6en 2 23 es DC6
D4en 3 22 es DC4
D3en 4 21 es DC2
D2en 5 20 es DC1
D1en 6 19 es N_18
D5en 7 18 es N_19
en 8 17 es N_17
en 9 16 es DC7
en 10 15 es DC3
en 11 14 es DC5
GND en 12 13 es No Con.

Prof.. S. Saucedo 3 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. Prentice-


Hall, 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

También podría gustarte