200 likes | 352 Views
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
E N D
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 • 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 Memoria Estática CMOS 32Kb VGA PS/2 Alea CODEC Controlador sistema Gestor de interrupciones Microcontrolador 8031
Arquitectura del sistema • Controlador del sistema (*) Dirección y datos multiplexados Memoria Decodificadores Latch Dispositivos Dirección (alta) Dirección (baja)/Datos*
Arquitectura del sistema • Controlador de interrupciones Lógica* Estado VGA INT1 INT0 INT PS/2 ConfINT (*) INT1 mayor prioridad INT0
Arquitectura del sistema Señales VGA Gestor INT • VGA I/F Mem VGA Core Memoria Controlador VGA Buffer Escritura Direc Datos Estado Control Controlador Sistema
Arquitectura del sistema Datos PS/2 • PS/2 Detector Scan Codes Registro desplazamiento Buffer de almacenamiento INT Lógica Estado Control Datos Controlador del sistema
Arquitectura del sistema Chip CODEC • CODEC Generador de onda Lógica Buffer de almacenamiento Reg.de estado Controlador de sistema
Arquitectura del sistema • Generador de números aleatorios (LFSR) Generador LFSR* Reg.Datos Controlador del sistema (*) Linear Feedback Shift Register
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 Inicialización Rutina de eventos Movimiento Contador de eventos Detección colisiones Visualización Fabricación Rutina INT 0 Auxiliares Rutina INT 1
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)