Tengo un MCU basado en Cortex-M4 vinculado a un FPGA a través de una interfaz de bus de memoria paralela de 16 bits. En esencia, el FPGA se comporta como una memoria externa asignada al espacio de memoria de la MCU: la MCU presenta una dirección seguida de una palabra de datos (escritura) o leyendo la palabra presentada por la FPGA (lectura).
Quiero proteger tanto la lectura como la escritura contra los errores de transmisión durante el direccionamiento y la lectura / escritura de datos. Sin embargo, no espero muchos errores de bits, ya que la distancia entre ambas partes es corta.
Puedo implementar fácilmente la verificación y la generación de paridad, códigos Hamming o CRC dentro del FPGA. Sin embargo, hacer lo mismo (comprobar y generar) en la unidad de usuario parece comparativamente más difícil ya que no quiero paralizar el rendimiento. Sin detección de errores, la lectura y escritura de palabras de 16 bits toma alrededor de 4-6 ciclos de procesador y, por lo tanto, es bastante rápida. Por consiguiente, no quiero gastar cientos de ciclos en medidas de protección.
Al final, busco un método de detección de errores moderadamente eficiente para datos de 16 bits que se implementa en una unidad de control en la menor cantidad de ciclos posible.
He publicado lo mismo en Stackoverflow . Si sabe cómo vincular correctamente las dos preguntas, hágamelo saber.