En un circuito lógico, tengo un vector de datos de 8 bits que se alimenta a un ECC IC para el cual se supone que debo desarrollar la lógica y que contiene un vector de 5 bits de paridad. Mi primer paso para desarrollar la lógica (con puertas lógicas, XOR), es averiguar qué bit de paridad se va a verificar para qué bits de datos (ya que están entrelazados). Estoy usando paridad uniforme, y siguiendo las reglas generales del código Hamming (un bit de paridad en cada 2 ^ n), obtengo la siguiente secuencia de salida:
P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8 P5
Siguiendo el algoritmo general de Hamming:
Para cada bit de paridad, Posición 1,2,4,8,16 y así sucesivamente ... (Potencias de 2), saltamos para la primera posición n (n-1) y comprobamos 1 bit, luego omitir otro, verificar otro, etc. Repetimos el mismo proceso para los otros bits, pero esta vez comprobamos / saltamos cada 2 ^ n, donde n es la posición que ocupan en la matriz de salida ( P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8 P5
)
Siguiendo esa convención, obtengo:
P1 Checks data bits -> XOR(3 5 7 9 10 12)
P2 Checks data bits -> XOR(3 6 7 10 11)
P3 Checks data bits -> XOR(5 6 10 11 12)
P4 Checks data bits -> XOR(9 10 11)
Estoy en lo cierto? Lo que me confunde es que si debería comenzar a verificar el bit de paridad como uno de los 2 ^ n bits que se supone que deben verificarse, o 1 bit después de ese bit de paridad específico. Resume bastante si es inclusivo o no.
¡Gracias por su ayuda por adelantado!
¡Salud!