Resumen La inyección de fallos es una técnica utilizada para la validación experimental de Sistemas Tolerantes a Fallos. Se distinguen tres grandes categorías: inyección de fallos física (denominada también physical fault injection o hardware implemented fault injection), inyección de fallos implementada por software (en inglés software implemented fault injection) e inyección de fallos basada en simulación. Una de las que más auge está teniendo últimamente es la inyección de fallos basada en simulación, y en particular la inyección de fallos basada en VHDL. Las razones del uso de este lenguaje se pueden resumir en: .. Es un lenguaje estándar ampliamente utilizado en el diseño digital actual. .. Permite describir el sistema en distintos niveles de abstracción. .. Algunos elementos de su semántica pueden ser utilizados en la inyección de fallos. Para realizar la inyección de fallos basada en VHDL, diferentes autores han propuesto tres tipos de técnicas. La primera está basada en la utilización de los comandos del simulador para modificar los valores de las señales y variables del modelo. La segunda se basa en la modificación del código, insertando perturbadores en el modelo o creando mutantes de componentes ya existentes. La tercera técnica se basa en la ampliación de los tipos del lenguaje y en la modificación de las funciones del simulador VHDL. Actualmente, ha surgido otra tendencia de la inyección de fallos basada en VHDL, denominada genéricamente emulación de fallos. La emulación añade ciertos componentes al modelo (inyectores, que suelen ser perturbadores o mutantes, disparadores de la inyección, recolectores de datos, etc.). El modelo junto con los nuevos componentes son sintetizados en una FPGA, que es donde se realiza la inyección. Con la introducción cada vez mayor de sistemas tolerantes a fallos en aplicaciones críticas, su validación se está convirtiendo en uno de los puntos clave para su uso. Un ejemplo se da en el campo de la aviación y de la automoción, donde la introducción del concepto x-by-wire implica la sustitución de ciertas partes mecánicas por componentes electrónicos. Los grandes requerimientos de seguridad, fiabilidad, etc. necesarios para la introducción de componentes electrónicos en aviación y automoción implica la validación de los circuitos necesarios para la implementación del concepto x-by-wire. Así pues, la validación de sistemas tolerantes a fallos para aplicaciones críticas mediante la aplicación de la inyección de fallos basada en VHDL es una de las tareas pendientes, a pesar de que los lenguajes de descripción de hardware en general, y el VHDL en particular, se utilizan cada vez más durante la fase de diseño de los circuitos integrados. Una prueba de su importancia es la continua financiación que la Unión Europea proporciona a la validación de estos sistemas. A partir de todos estos datos, en la presente tesis se han estudiado, implementado, y en algunos casos mejorado diferentes técnicas de inyección de fallos basadas en VHDL. Una vez desarrolladas las diferentes técnicas, se ha validado el modelo de un sistema tolerante a fallos en tiempo real para aplicaciones críticas. Este modelo se está sintetizando y aplicando en la industria de aviación, así como en la industria de automoción.