Este Trabajo Fin de Grado relata el proceso de aprendizaje y experimentación del
desarrollo de un coprocesador para el espacio y su posterior integración en una FPGA. En
una misión espacial puede haber una gran cantidad de fallos. En este TFG nos hemos
centrado en el fallo que puede provocar la radiación sobre un elemento electrónico del
sistema, que podría corresponder a una función crítica del sistema, como, por ejemplo, el
cálculo de la trayectoria del satélite, los datos que recibe el satélite, los datos que emite el
satélite, etc. Esta radiación sobre un elemento electrónico puede hacer variar un bit de una
memoria, de la entrada o salida de un procesador, lo que supone pasar del valor 0 al valor
1, o viceversa, variando por completo los cálculos realizados, pudiendo producirse un error
fatal. Para resolver este tipo de fallos, generalmente se redundan los elementos críticos, y
se implementa un sistema de votación que se encarga de determinar el resultado correcto al
comparar la salida de los elementos redundantes. En este TFG se han implementado un
coprocesador de cifrado redundante, formado por tres cores de cifrados equivalentes, y un
mecanismo de votación. Dado que no es posible generar un fallo provocado por la
radiación, para inducir este tipo de fallos, se ha añadido a uno de los cores de cifrado (el
tercero) una opción para alterar un bit del campo de datos a cifrar, que puede afectar al
proceso de cifrado o descifrado. Este cambio en los datos de entrada provocará un cambio
significativo en la salida debido al efecto avalancha. El sistema de votación implementado
garantiza siempre el resultado correcto, a pesar de que se haya producido el fallo. Para la
correcta validación del coprocesador, se ha integrado el coprocesador como periférico de
un sistema basado en el procesador ARM, dentro de una FPGA, de modo que a partir de un
programa ejecutado en el procesador ARM se pueden mandar los datos a cifrar al
coprocesador, elegir el modo de funcionamiento (cifrar o descifrar), provocar el fallo en el
tercer core, y obtener el resultado, tanto del coprocesador tras la votación, como de los
diferentes cores de cifrado que lo conforman. Los resultados obtenidos han permitido
comprobar el correcto funcionamiento del coprocesador en un sistema hardware real
basado en FPGA