158 2 Mario Juegos
158 2 Mario Juegos
158 2 Mario Juegos
SUMMARY
This article presents a methodology to apply the VHDL description language for designing 2D videogames. The
methodology allows the hardware design of the videogames using FPGA devices. The methodology proposed here is
the result of several years of work in the labs projects of the Digital Design with VHDL course. The methodology
allows to the students realize VHDL models, which do not need to be totally simulated, saving time in the simulation
process, because the hardware behavior results are visualized immediately. The interaction between VHDL and the
results is possible because the design is implemented on a FPGA and the videogame operation results are visualized
on a VGA monitor. In order to validate this methodology the design and implementation of four videogames are
presented.
RESUMEN
Este artículo presenta una metodología desarrollada para aplicar el lenguaje de descripción VHDL en el diseño de
videojuegos 2D. La metodología permite el diseño totalmente en hardware y la implementación en una única FPGA
de la UP1. La metodología propuesta es un resultado del trabajo de varios años de los proyectos de fin de curso
desarrollados en la asignatura diseño digital con VHDL. Con esta metodología se logra que los estudiantes realicen
modelos en VHDL los cuales no necesitan ser simulados en su totalidad, ahorrando tiempo en el proceso de
simulación, debido a que los resultados del comportamiento del hardware son visualizados inmediatamente. La
interacción entre el VHDL y los resultados es posible debido a que el diseño se implementa en una FPGA y se
visualizan los resultados de la operación del videojuego en un monitor VGA. Para validar la metodología se presenta
el diseño e implementación de cuatro videojuegos.
METODOLOGIA PARA LA APLICACIÓN DEL VHDL
EN EL DISEÑO DE VIDEOJUEGOS 2D E IMPLEMENTACION SOIC
1. INTRODUCCIÓN
5. SELECTOR DE CAPAS El controlador recibe las señales del PS-2 y a partir del
algoritmo correspondiente para el videojuego genera las
Cada capa genera un valor RGB particular, pero un único señales de entrada en el selector de capas.
valor RGB debe ser ingresado al controlador de la interfaz
VGA. Por lo tanto a partir de los múltiples valores RGB se 6.1 Control desde el PS-2
debe generar un solo valor RGB, para lo cual se utiliza
una función boleana de resolución que calcula dicho valor Las señales de entrada del PS-2 generan dos tipos de
RGB para la interfaz VGA. Dependiendo de la función de acción la imagen a visualizar, una acción directa que
resolución utilizada se obtendrán diferentes resultados en ordena la visualización de elementos independientes del
la visualización. estado del videojuego (acción combinacional), un ejemplo
es la visualización de caracteres. El otro tipo de acción es
5.1 Combinación de capas la comparación de la señal de entrada con el estado actual
del videojuego (acción secuencial) y genera una acción
Al usar una función de resolución OR entre capa 1 (R1 G1 sobre el selector de capas; esta opción depende del
B1) y capa 2 (R2 G2 B2) se obtiene la combinación de los algoritmo que se este desarrollando. Por ejemplo un
diferentes colores de las dos capas (Ri Gi Bi), donde : videojuego donde el elemento controlado por el PS-2
colapse o concuerde con el elemento de la imagen, en ese
Ri =R1 OR R2 momento se estable la coincidencia y se establece una
Gi =G1 OR G2 acción sobre la imagen o sobre el avance del videojuego
Bi =B1 OR B2
6.2 Control programado
Por ejemplo en el diseño de la cuadricula si el fondo es
azul (RGB=001) y las líneas de la cuadricula son blancas Otro tipo de control sobre el videojuego puede ser
(RGB=111), entonces se visualizara una cuadricula blanca programado en función del tiempo e independiente del
sobre un fondo azul; esto es un caso particular donde la control que ejerce el PS-2 sobre el videojuego. Por
capa 2 se superpone a la capa 1 y esto es posible ya que ejemplo la visualización de fondos dinámicos, el
los valores binarios RGB de la cuadricula son todos 1. En incremento de la complejidad del videojuego, el reinicio
términos generales al aplicar la función de resolución OR del videojuego, etc.
no se obtiene superposición, en lugar de esto se obtiene es
la mezcla de los colores de las capas, por ejemplo si se
modifica la línea de la cuadricula a un color rojo 7. DESCRIPCIONES VHDL RECOMENDADAS
(RGB=100) se obtendrá una cuadricula violeta sobre un
fondo azul. En el diseño del videojuego se utilizan varias entidades
VHDL de la referencia [2], las cuales han sido descritas
5.2 Superposición de capas para ser sintetizada sobre la UP1, estas son: VGA_SYNC
y KEYBOARD (interfaces VGA y PS-2), CHAR_ROM,
Para visualizar la superposición (Ri Gi Bi), de la capa 1 CLK_DIV y DEBOUNCE (generador de caracteres
(R1 G1 B1) sobre la capa 2 (R2 G2 B2), se aplica la alfabéticos, divisor de frecuencia y antirrebote).
siguiente función de resolución:
Para el diseño de las capas se debe utilizar un proceso
Ri = R1 (R1 + G1 + B1) + R2 (R1 + G1 + B1)’ VHDL por cada capa, donde los datos locales son
Gi = G1 (R1 + G1 + B1) + G2 (R1 + G1 + B1)’ variables y los datos globales son señales; la descripción
Bi = B1 (R1 + G1 + B1) + B2 (R1 + G1 + B1)’ de este proceso debe realizarse lo más independientemente
posible de otros procesos. La comunicación entre procesos Figura 6. Ejemplo de videojuego Pong
se realiza por medio de las señales; los RGB de cada
proceso (capas) deben ir al proceso de selección de capas.
El controlador del videojuego es un proceso que recibe las 8.3 Batalla Naval
señales del PS-2, e implementa un algoritmo secuencial
que corresponde al funcionamiento del videojuego y El mismo juego que todos han disfrutado en papel o en un
genera una acción sobre el selector de capas. tablero ahora se puede disfrutar en video (ver figura 7), la
misión: destruir la flota enemiga y evitar que la flotilla
propia sea destruida, lo cual se logra implementando una
8. VIDEOJUEGOS DISEÑADOS correcta estrategia de posicionamiento de los barcos
propios y haciendo los disparos sobre el campo enemigo
A continuación se presenta una selección de videojuegos como lo haría el mejor general del ejército.
diseñados con VHDL [4], el diseño de estos videojuegos
ha seguido la metodología planteada en este artículo. La
selección se realizó entre el conjunto de videojuegos
propuestos como proyectos finales de la asignatura Diseño
Digital con VHDL.
8.1 Asteroides
8.2 Pong
10. AGRADECIMIENTOS
11. REFERENCIAS