Detector Corrector de Errores de Código de Hamming en una GAL

Anuncio
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
Descargar