Proyecto de Sistemas Informáticos Curso 2009-2010 Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
LOS ORDENADORES GUILLERMO CASTILLO.
Los Ordenadores Javier Yebra. ¿Qué es un ordenador? El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar.
Los Ordenadores Javier Yebra. ¿Qué es un ordenador? El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar.
INFORMÁTICA BÁSICA.
ARQUITECTURA DE COMPUTADORAS
ORDENADOR DE CAMPO GUIADOS EN LA AGRICULTURA. Cada paso del producto ha sido comprobado y refinado in situ desarrollado por gente del campo y para gente.
B.I.O.S..
Computación PROGRAMACIÓN.
Trabajo de programas de simulación de redes
RESUMEN: Softmicro de 8 bits Xilinx
MICROCONTROLADORES AVANZADOS
ESCUELA POLITÉCNICA DEL EJÉRCITO
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Teoría de lenguajes y compiladores
Registros de Desplazamiento
FUNCIONES Y PROCEDIMIENTOS
HERRAMIENTAS DEL SISTEMA
VHDL.
Ingeniero Anyelo Quintero
2da. Parte Capítulos 5-12: Transmisión de Paquetes
Microsoft PowerPoint. Presentaciones Tema 3: PowerPoint Integrantes:
DISEÑO DE LA INTERFAZ DE USUARIO
ENLACE RADIO BIDIRECCIONAL
III. Protocolo RIP Versión 1.
ACIDE A C onfigurable I ntegrated D evelopment E nvironment (Un entorno integrado de desarrollo configurable)
Administración de Memoria Memoria Virtual
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Procesadores de Lenguajes
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
I2C (Inter-Integrated Circuit) (Modo Maestro-Esclavo )
Componentes de las interfaces
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
Integración de entidades en VHDL
1 © UPM-ETSISI Tema 7.-Tecnología de las Estructuras y Subsistemas Lógicos Combinacionales © UPM-ETSISI Tema 7 Tecnología de las Estructuras y Subsistemas.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
Estructura de los Sistemas Operativos
Universidad Metropolitana Introducción a la Computación
DIPLOMADO EN SISTEMAS DIGITALES USO DE LOS PERIFERICOS DEL SISTEMA DE DESARROLLO SPARTAN 3E Instructor: MC. Rodrigo Lucio Maya Ramírez.
SANTIAGO MORA BERMÚDEZ
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Vamos a tratar algunos temas que es necesario conocer a la hora de administrar un sistema informático y que nos van a ser útiles sin importar el sistema.
NOCIONES BÁSICAS COMPUTO II
PRINCIPIOS DE PROGRAMACIÓN
Tipos de computadores Personales.
Tecnologías WAN (MODULO ESPECIALIDAD) Instituto Tecnológico Superior de Misantla. INGENIERIA EN SISTEMAS COMPUTACIONALES Unidad II: Protocolos WAN 2.1.-
contenido 1 el computador 2 partes del computador 2.1 el mouse
RESUMEN: Softmicro de 8 bits Xilinx
INTERRUPCIONES – ABRAZO MORTAL
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Mantenimiento Ingrid Paola Gómez Flórez 10-3 Colegio técnico Vicente azuero Floridablanca.
EL ORDENADOR PERSONAL Aparato electrónico que sirve para procesar información (transformarla para que sea útil. Para hacerlo codifica la información (descompuesta.
LOS MENUS Presentación Que es informática Sistema informático Que es un computador Dispositivos de entrada Dispositivos de salida.
BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
ESTACIONES DE TRABAJO..
José Alvarado – Cristian Anzola
AA – B – C – D – E – F – G – H – I – J – K – M – N – O – P – R – S – T – V – W – X – Y – ZBCDEFGHIJKMN OPRST VWXYZ María Alejandra Ruz Toyo.
INGENIERIA EN SISTEMAS FUNDAMENTOS DE COMPUTACION B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Máquinas de estado con VHDL
INVESTIGACION DE TEMARIO JOSE LUIS VEGA MERINO.  1.2. Requerimientos de instalación.  Microsoft Windows 7 Professional y Microsoft Windows 7 Ultimate.
 Software  Humanware  Hardware Conformado por.
CONIMEIRA XVI Bootloaders para microcontroladores PIC de Microchip Presentan: Ing. Ricardo Guadrón Tec. Juan José Guevara Escuela Especializada en Ingeniería.
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
Transcripción de la presentación:

Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez

 Desarrollo de entorno para inyectar errores en una FPGA  Emular el comportamiento que una partícula cósmica pueda tener sobre una celda RAM de la memoria de configuración. Comprobar la vulnerabilidad de un circuito.  ¿Cómo hacerlo? Configurar FPGA, ejecutar (vectores test), modificar configuración (1 bit), ejecutar de nuevo y comparar salidas.

 Las FPGAs son dispositivos que contienen bloques de lógica programable  Ventajas:  Reconfigurables  Bajo costo  Explotan ejecución en paralelo frente a la ejecución en serie de microcontroladores.

Placa XUP Virtex-II Pro Development System

 Debido a las ventajas comentadas, se estudia la posibilidad del uso de FPGAs en aplicaciones aeroespaciales.  Problema real: no hay protección atmosférica en el espacio exterior.  Consecuencias: Una partícula solar podría modificar el contenido de la memoria de configuración de la FPGA

 Utiliza el protocolo RS232  Distintas velocidades de transmisión (bps)  Diseño con un receptor y un transmisor serie

 Entradas:  DatoTxIn (8 bits)  Transmite  Clk  RstN  Salidas :  Transmitiendo  DatoSerieOut

 Cuatro bloques  Divisor de frecuencia  Circuito de control  Carga desplazamiento  Selección

 Entradas:  RxDatoSerie  Clk  RstN  Salidas :  DatoRxOut (8 bits)  AvisoRx  Recibiendo

 Tres bloques:  Divisor frecuencia  Circuito control  Desplazador SIPO (Serial In Parallel Out)

 Circuito con 7 bits de entrada (no contamos clk por tratarse de una entrada especial) y 4 bits de salida.  Queremos que el circuito pueda ser introducido por el usuario.

 Mecanismo de funcionamiento:  Recibir 4 bytes (entradas del circuito)  Generar un pulso de reloj  Transmitir 4 bytes (salidas del circuito)

 Motivación:  Poder cargar cualquier circuito que queremos probar “conectándolo” automáticamente a nuestro módulo de E/S.  Necesitamos saber:  Número de bits de entrada  Número de bits de salida  Entrada de reloj  Otros ficheros de los que dependa (módulos que usa)

 Para conectarlo al módulo de E/S crearemos automáticamente otro fichero VHDL que realice las asignaciones necesarias.  Necesitamos analizar la entidad definida en un fichero VDHL para saber número de entradas y salidas.

 (1) Fichero vhd de transmisión serie  (2) Fichero vhd de recepción serie  (3) Circuito introducido por el usuario. Este es el fichero cuya entidad se procesará. La salida es el:  (4) Circuito vhd del módulo top generado automáticamente. (1) Tx_Serie.vhd (2) Rx_Serie.vhd (3) Circuito.vhd (4) Circuito_FPGA.vhd

Parte a analizar

 Utilizaremos técnicas de procesamiento de lenguajes para reconocer la entidad definida en el fichero  Necesitaremos un analizador léxico para reconocer los pequeños elementos (tokens) de los que se compone el fichero vhdl: palabras reservadas, punto y coma, etc.  También un analizador sintáctico que lea cada uno de los tokens guiado por una gramática.

 Autómata finito determinista (AFD)

 Gramática de una entidad Entidad ::= Cabecera entity identificador is Generic Puertos end identificador Generic ::= generic (Variables); Variables ::= Variable RVariables; Variable ::= identificador : InOut integer := entero RVariables ::= ; Variable Rvariables RVariables ::= λ Puertos ::= port(Señales); Señales = Señal RSeñales Señal = identificador : InOut Tipo RSeñales = ; Señal RSeñales RSeñales = λ InOut = in InOut = out Tipo = std_logic Tipo = std_logic_vector(Exp downto Exp) Exp = Term RExp RExp = + Exp | - Exp | λ Term = Fac RTem RTerm = * Term | / Term | λ Fac = ( E ) | nat | identificador Cabecera = *

Generación fichero.BIT  Sintetizar  Traducir  Mapear  “Place and Route”  Generar.bit

Generación fichero.BIT  Una vez generado el fichero BIT,también podremos cargarlo  Utilizaremos los comandos que utiliza el IMPACT, utilidad de Xilinx ISE  Estos parámetros se encuentra en carga.txt, que se ejecutara en modo batch

Inyección de errores  Objetivo:  Emular la posibilidad de que una partícula solar incida en la superficie de la FPGA y modifique su comportamiento.

Inyección de errores  Virtex-II Pro:  Frames verticales de 1 bit de anchura y altura, la que tiene la FPGA.  En nuestro caso XC2VP30 que tiene 1756 frames y 206 bits por frame.  Modos de configuración de bloques y conexiones  Reconfiguración total: estática.  Reconfiguración parcial: dinámica.

Inyección de errores  Utilizamos una aplicación que modifica un solo bit de un fichero.bit.  Esta aplicación necesita como entradas el frame y bit a modificar.  Genera dos ficheros de configuración:  Fichero parcial con bit modificado  Fichero parcial de restauración

Inyección de errores Ejecución:  Usuario selecciona numero de iteraciones.  Selección entidad VHD seguida de su fichero.BIT  Cargar fichero Banco de Pruebas  Generación salida “GOLDEN”

Inyección de errores  Ejecución iteraciones:  Modificación aleatoria de frame y bit.  Generación de ficheros:  fichero_modif.bit  fichero_modifRestore.bit  Cargar “fichero_modif.bit” y ejecutar.  Comparar salidas con la salida “GOLDEN” y comprobación si incide el error en la aplicación.  Restaurar FPGA con “fichero_modifRestore.bit”.

Datos de E/S de un circuito  Entradas:  Cadenas de 0’s y 1’s con longitud=nºbits entidad(in)  Estas entradas se pueden cargar mediante fichero o en la pantalla de Nessy 2.0  Ejemplo:  component CONTADOR Port( RESET: in STD_LOGIC; CLK: in STD_LOGIC; ENABLE: in STD_LOGIC; LOAD: in STD_LOGIC; DATA_LOAD: in STD_LOGIC_VECTOR(15 downto 0); SALIDA: out STD_LOGIC_VECTOR(15 downto 0));

Datos de E/S de un circuito  La entrada de reloj se descarta. La entrada (19 bits): Se interpreta como: RESET <= 0 ENABLE <= 1 LOAD <= 0 DATA_LOAD(0) <= 0 DATA_LOAD(1) <= 0 : DATA_LOAD(15) <= 0 Si la salida (16 bits) fuera: Es sencillo intuir que corresponderá a: SALIDA(0) <= 1 SALIDA(1) <= 1 SALIDA(2) <= 0 : SALIDA(15) <= 0

Aplicación – Nessy 2.0  La ventana principal de la aplicación, estaría dividida en tres partes, el menú, la botonera y las vistas (donde se puede visualizar las salidas)

Aplicación – Nessy 2.0 (Menú)  Tenemos tres desplegables, desde los que podemos interactuar con la aplicación.  En el desplegable Opciones, tenemos las mismas posibilidades que existen en la botonera.

Aplicación – Nessy 2.0 (Menú)  En el desplegable Vistas elegimos la salida que queremos visualizar.

Aplicación – Nessy 2.0 (Otros Detalles)  Teclas Rápidas.  Para cada opción de menú existe una combinación de teclas para accionarla.  Trazas.  Además de la traza de la Inyección de errores, se guarda una traza con todo lo que hemos ido haciendo en la aplicación.

 Sobre los conocimientos adquiridos y requeridos.  Al tratarse de un proyecto multidisciplinar, nos ha permitido aplicar muchos de los conocimientos adquiridos durante la carrera en diversas asignaturas.  También hemos podido potenciar nuestros conocimientos sobre FPGAs, aplicaciones de Xilinx y desarrollo de Software.

 Sobre la inserción de errores.  El tiempo para probar la modificación bit a bit de la memoria de configuración, al ser muy elevado no sería aconsejable. Sería más razonable para el estudio modificar las zonas donde realmente hubiera parte del circuito implementado, para analizar el impacto de la modificación.

Preguntas