UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T “Perfecta combinación entre energía e intelecto”
ARQUITECTURA DE COMPUTADORES, JUEGO “SNAKE” Carlos Fernando López Toledo Cód. 2073532
[email protected] Juan Antonio Ramírez Buitrago Cód. 2073389
[email protected] Cesar Javier Sepúlveda Peña Cód. 2073674
[email protected] Presentado a ING. Carlos Carlos Angulo. juego en cuanto a nuevos obstáculos o nivel de velocidad.
1. INTRODUCCION. Utilizando herramientas de programación en lenguaje C y VHDL con el objetivo de diseñar una aplicación de arquitectura de computadores manipulado por un microprocesador (MicroBlaze) se consigue controlar el Juego de la “Culebrita” tradicional, con algunas modificaciones.
2. ¿POR QUÉ SE APLICACIÓN?
ELEGIR
ESTA
Se escogió como proyecto el realizar el juego de la “Culebrita” pues es una buena aplicación con la cual se pretende desarrollar visualización y animación con las herramientas de programación y arquitectura de computadores y por ende cumple con los requisitos necesarios en esta área. Con respecto al desarrollo del juego de la “Culebrita” tradicional se realizan algunos cambios: se dejan fijos los puntos o cuadros de comida de la culebra ubicados en el tablero de recorrido y no se implementa el formato del juego tradicional donde los puntos aparecen uno a uno y en posiciones diferentes a lo largo del área de recorrido., no se implementa cambio de nivel de
3. ESPECIFICACIONES Y DISEÑO DEL JUEGO La idea original es lograr la implementación del juego utilizando una VGA como periférico descrito en VHDL con ayuda de ISE, en el también iría incluido parte de la arquitectura del laberinto, como lo son obstáculos y los puntos de poder para que a medida de que el jugador los alcanzará incrementaría el tamaño de la serpiente y el marcador. El proyecto se divide en los siguientes módulos: Arquitectura VHDL
Pulsador
PROCESADOR Control Pulsadores Control Puntuación
Visualización VHDL
Sincronización VHDL
Imagen 1. Diagrama Módulos.
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T “Perfecta combinación entre energía e intelecto”
Se hace una distribución de los componentes y/o módulos que necesita el Juego para su implementación.
Nota: Es recomendable dividir en secciones el proyecto para que los módulos sean más eficaces y no exista saturación es algún componente del proyecto.
Cuadro de puntaje ubicado en la parte inferior de la pantalla fuera del tablero de recorrido de la “Culebrita”. Con la parte de movimiento se pretende desarrollar un código en C donde se establezca los movimientos básicos de la “Culebrita”, en sus direcciones normales izquierda – derecha, arriba-abajo.
Inicialmente el juego es un simple prototipo el cual sirve de prueba para analizar las diferentes situaciones que se puedan presentar, se hace un esquema lo más sencillo posible, este tipo de descripciones son repetitivas luego de entender e identificar como obtenerlas.
4. PROCEDIMIENTO
Imagen 2. Visualización objetos fijos de juego SNAKE.
El juego presenta un nivel básico en el cual lo relacionado con visualización con ayuda del periférico VGA se establece:
Tablero de recorrido para la “Culebrita” delimitado por unos bordes con asignación de color rojo. Dos obstáculos creados de manera horizontal, paralelos y de igual largo. Con asignación de color rojo. Secuencia de cuadros independientes que representan la comida de la “Culebrita” ubicados de manera aleatoria en el tablero de recorrido y con asignación de color azul. La “Culebrita” en su posición de inicio de juego con asignación de color verde.
El sistema que se va a construir estará formado por un procesador MicroBlaze (de 32 bits), 16 Kbytes de memoria de bloque para memoria de programa y de datos. También se conectará un GPIO para manejar los interruptores en la FPGA. Para la realización de la estructura o parte fija del juego, se tomo como guía el libro de Chu P. FPGA Prototyping by VHDL Examples – Wiley, la cual se describió en código VHDL, como referencian constantes dados por el diseño propio, en esta parte se le asignaron colores a los obstáculos que enmarcan los límites de la “culebrita”, de la misma forma se le asignaron el color al objeto en movimiento y los puntos que servirán para la puntuación, también se dejo un espacio prudente en la parte inferior para visualizar la puntuación que se acumule en el juego. Las señales de los diferentes colores se asignan a un vector de 3 bits, los cuales están conectados a
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T “Perfecta combinación entre energía e intelecto”
la salida de la VGA, para dar la visualización en la pantalla, de lo descrito antes en el código. Se utilizo una memoria ROM (descrita en el código PONG_GRAPH en VHDL) para la “culebrita”, ya que de esta forma es más fácil darle el movimiento, el cual tiene como salidas unas señales que van conectadas a los pulsadores de la FPGA, para controlar los movimientos deseados del objeto móvil, en este caso para la “culebrita”. Para lograr la visualización que se describió en el código anteriormente mencionado se realizo una unión entre el proyecto de los obstáculos, y el proyecto de la VGA, y dándole la entradas y salidas requeridas en el UCF para la programación de la FPGA.
La interfaz de la herramienta XPS se utiliza para añadir o crear nuevos periféricos al sistema y la aplicaciones software que van a correr en el micro. Una vez añadidos el bus y los periféricos, se deben conectar entre sí. Los periféricos suelen tener diferentes opciones de configuración, para este caso en específico son tres señales directas las que interactúan con la FPGA que se deben tener en cuenta para conectar con el bus. Es muy importante indicar las restricciones en el archivo .ucf. En él se asignan los pines de la FPGA que corresponden a los puertos externos del sistema. Por defecto aparecen ya conectados los pines de sincronización (Reloj) y el de restaurar además de otros.
5. OBSERVACIONES Y CONCLUSIONES Se trabajo con el paquete de desarrollo para la construcción de MicroBlaze EDK trabajando en su ambiente de trabajo XPS y SDK con sus
respectivas funciones básicas que permitieron sintetizar las especificaciones o descripciones realizadas en VHDL como el periférico VGA y otros aspectos propios del juego como lo relacionado con los elementos gráficos de la visualización. En SDK se permitió realizar lo relacionado con la programación y compilación en C concerniente al movimiento de la culebra. Se ha pretendido establecer un primer contacto con la utilización de sistemas digitales con ayuda de un procesador que implementa aplicaciones y desarrolla códigos en diferentes lenguajes computacionales (VHDL, C) que se puedan ejecutar. La no adecuada delimitación del proyecto en cuanto a alcances y objetivos a realizar no permitió desarrollar a plenitud lo propuesto. Es importante destacar que este proyecto se ha centrado en el estudio de las aplicaciones ofrecidas por el procesador MicroBlaze, desarrollado por Xilinx en este caso en particular diseñado para familias de FPGAs. Se han desarrollado códigos para realizar sus respectivas pruebas, teniendo en cuenta todos los inconvenientes que se han presentado durante el proceso para lograr el objetivo propuesto. No ha sido fácil y no se obtuvieron los resultados esperados. Factores como el poco tiempo, disponibilidad de herramientas (Salas Computo, FPGAs), el leve conocimiento sobre el software a tratar y muchos más, hicieron que los objetivos propuestos se modificaran. Es poco satisfactorio no poder concluir el proyecto, se espera que la autoridad correspondiente en la evaluación y calificación de los resultados generales tenga en cuenta los diferentes motivos por los cuales no se obtuvo resultados favorables.
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T “Perfecta combinación entre energía e intelecto”
Para realizar lograr el movimiento de ciertos objetos descritos en VHDL es conveniente utilizar una memoria ROM (comando ISE) ya que permite almacenar un mapa de bits que corresponde a coordenadas específicas dentro del área de implementación.
6. REFERENCIAS. [1] P. Chu, “FPGA PROTOTYPING BY VHDL EXAMPLES”, John Wiley & Sons, 2008. [2] D. Money Harris, S. Harris, “Digital Design and Computer Architecture”, Copyrighted Material. [3] Guias laboratorio, disponibles en material de trabajo de Arquitectura de Computadores.
UNIVERSIDAD INDUSTRIAL DE SANTANDER Escuela de Ingenierías Eléctrica, Electrónica y Telecomunicaciones - E³T