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 Placa de prototipado XS40-010XL Board 1.2 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 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 Diseño CLB’s % Puertas* Biestables Controlador 35 8% 914 Gestor INT 11 2% 208 8 VGA 197 49% 7661 119 PS/2 44 11% 1206 52 CODEC 122 30% 2935 127 Alea 4 1% 54 Arquitectura 400 100% 13185 314
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)