Notas
Esquema
Sistemas Informáticos 2001
DISEÑO DE UNA ARQUITECTURA BASADA EN MICROPROCESADOR
Julio Esteban Fernández Juárez
Antonio Ortiz Pineda
Miguel Ángel Rojas Gómez
Introducción
Objetivos del proyecto
Diseño del h/w en el que se apoya un microprocesador en un sistema
Implementación del diseño sobre una plataforma reconfigurable (FPGA)
Programación de un ejemplo práctico (juego Galaxy Invader) para mostrar la funcionalidad del sistema
Introducción
Descripción de la arquitectura
Controlador del sistema
Controlador de interrupciones
Módulo VGA
Interfaz PS/2 estándar
Códec de sonido
Generador de números aleatorios (LFSR)
Microcontrolador 8031
Módulo de memoria SRAM
Entorno experimental
Hardware
Placa de prototipado XS40-010XL Board 1.2
XC4010XL FPGA de 400 CLBs (20.000 puertas)
Códec Stereo de 20 bits
Puerto de entrada y salida STEREO
Puerto Paralelo
Puerto PS/2 para teclado y ratón
Puerto Monitor VGA
Tres pulsadores
Tres bancos de LEDS de 7 segmentos
 Un banco de LEDS de barras
Switches DIP
Microcontrolador 8031
Banco de memoria SRAM de 32 Kb
Entorno experimental
Entorno experimental
Software
Xilinx Foundation F3.1i
Paquete de herramientas orientadas a la síntesis de sistemas H/W de alto nivel
Incluye: editor de esquemáticos, editor de lenguaje de descripción h/w, simulador (funcional y de tiempos) y herramientas de síntesis de diseños
Simulador ModelSIM SE-EE 5.4
Xstools (Gxsport,Gxsload)
Ensamblador cruzado ASM51
Emulador 8051 1.0 de TS-Controls
Arquitectura del sistema
Visión general
Arquitectura del sistema
Controlador del sistema
Arquitectura del sistema
Controlador de interrupciones
Arquitectura del sistema
VGA
Arquitectura del sistema
PS/2
Arquitectura del sistema
CODEC
Arquitectura del sistema
Generador de números aleatorios (LFSR)
Arquitectura del sistema
Información de recursos utilizados
Arquitectura del sistema
Problemas encontrados
VGA y microprocesador comparten líneas de acceso a la memoria
Mecanismo de arbitraje para permitir acceso concurrente (capacidad de dormir 8031)
Falta recursos estructurales
Optimizaciones máximas en área(LUTs y Tri-States)
Incapacidad de cambiar la frecuencia de reloj
Optimizaciones en velocidad (segmentación)
Falta de pines disponibles en la placa
Necesario uso de interconexión manual (INT)
Aplicación Software
Descripción de la aplicación programada
Clónico del Galaxy Invader 1000
Juego de marcianitos
Objetivo: Conseguir el mayor número de puntos
Destrucción de las naves alienígenas
Múltiples niveles de dificultad
Sonido de eventos
Aleatoriedad
Presentación (c/ banda sonora y efectos)
Aplicación Software
Arquitectura de los chips de la familia 8051
Máquina de 8 bits
Tamaño máximo de programa de 64 Kb
4 bancos de registros (R0-R7)
Tipos de direccionamientos
Implícito, Indirecto, Directo e Inmediato
Bytes o Bits
Repertorio de instrucciones completo aunque restringido
Memoria interna y memoria externa
Aplicación Software
Memoria interna
Aplicación Software
Flujo de programa
Aplicación Software
Problemas encontrados
Concurrencia en el acceso a memoria externa (mantenimiento de frames)
Mecanismo de arbitraje para dormir al micro e aislarlo del exterior (interrupciones)
Problemas de rendimiento del microprocesador
Acceso directo a la memoria de VGA sin pasar por su controlador
Falta de espacio en memoria interna
Acceso más lento en memoria externa (sonidos principalmente)