Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

DISEÑO, SIMULACION E IMPLEMENTACIÓN DEL JUEGO SIMÓN DICE UTI

No description
by

Jesús Quinto

on 17 July 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of DISEÑO, SIMULACION E IMPLEMENTACIÓN DEL JUEGO SIMÓN DICE UTI

El microprocesador es uno de los logros más sobresalientes del siglo XX. Esas son palabras atrevidas, y hace un cuarto de siglo tal afirmación habría parecido absurda. Pero cada año, el
microprocesador se acerca más al centro de nuestras vidas, forjándose un sitio en el núcleo de una máquina tras otra. Su presencia ha comenzado a cambiar la forma en que percibimos el mundo e
incluso a nosotros mismos.
Introducción
DISEÑO, SIMULACIÓN E IMPLEMENTACIÓN DEL JUEGO SIMÓN DICE UTILIZANDO LAS HERRAMIENTAS SYSTEMC Y VHDL
Ninguna otra invención en la historia se ha diseminado tan aprisa por todo el mundo o ha tocado tan profundamente tantos aspectos de la existencia humana. Hoy existen casi 15,000 millones de microchips de alguna clase en uso (el equivalente de dos computadoras poderosas para cada hombre, mujer y niño del planeta).
Las herramientas utilizadas para la simulación e implementación del presente proyecto serán
SystemC y VHDL, respectivamente.
El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazón de esta máquina.

Este ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo operaciones lógicas simples, como sumar, restar, multiplicar y dividir. El microprocesador, o simplemente el micro, es el cerebro del ordenador. Es un chip, un tipo de componente electrónico en cuyo interior existen miles (o millones) de elementos llamados transistores, cuya combinación permite realizar el trabajo que tenga encomendado el chip.
LYOKO GAMES,
Para el diseño del juego que realizamos, consideramos la mecánica del mismo, así como el comportamiento que debía tener de acuerdo a su definición. Cabe destacar que en este caso desatollamos el juego con 10 niveles.

En un principio creamos una unidad generadora de un numero aleatorio que nos proporcionara un valor entre 0 y 3, y que dicho valor iba a ser la posición en la que almacenaremos un '1 ' dentro de un vector de 4 bits que iban a representar cada una de las 4 luces del juego, es decir, la posición donde almacenemos el 1, va a ser led que se va a encender.
Fase de Diseño
Luego creamos un registro de 10 posiciones (ya que disponemos de 10 niveles), en donde guardamos cada uno de los valores provenientes de la unidad aleatoria, que serán mostrados en cada ronda, este valor debe mostrarse en los leds.
Ahora bien, necesitábamos comparar lo que el usuario presionó con la combinación generada en la unidad aleatoria, creamos entonces comparadores para cada ronda, de cada uno de ellos salen 2 señales, señal primera y señal segunda, las cuales tomarán ciertos valores dependiendo del resultado de la comparación

Ahora seguimos con la unidad de control, como en todo circuito, ella va a decidir qué señales se enviarán dependiendo del turno en que nos encontremos, si el del computador o el usuario.
A la misma entrará la señal de los pulsadores, así como también una señal del registro que nos indique cuando el computador termine de jugar.
Ella determinará los valores que enviará a los comparadores para permitir o no que comparen, asi como también enviará una señal al registro que le dirá cuando el jugador haya completado sus pulsaciones.
Nuestro grupo de ingenieros ha creado la empresa llamada LYOKO GAMES, la cual tiene como propósito brindar entretenimiento a través del desarrollo de videojuegos en un microprocesador.

El microprocesador utilizado para el desarrollo de el proyecto fue la FPGA BASYS 2 SPARTAN 3E.

Ésta incluye como núcleo el dispositivo XC3S500E que incluye 20 multiplicadores dedicados, 4DCM, 20 BRAM y quinientas mil puertas equivalentes, lo que permite diseñar y testear aplicaciones con un alto grado de procesado.
LYOKO GAMES,
Es un lenguaje de descripción de sistemas, puesto que es realmente útil cuando se usa para modelar sistemas a nivel de comportamiento.

El mismo constituye un conjunto de bibliotecas y macros implementadas en C++ que hacen posible una simulación de procesos concurrentes con la sintaxis del lenguaje C++ ordinario. Así los objetos descritos pueden comunicarse durante una simulación de tiempo real usando señales de cualquier tipo ofrecido por C++, además algunas otras ofrecidas por las librerías de SystemC y también otras definidas por el usuario.

La metodología de diseño es comenzar con un modelo de alto nivel escrito en C++ y aplicar un proceso iterativo consistente en transformar el código para usar sólo los elementos que tengan su equivalente en un lenguaje de descripción de hardware.
SystemC


Funcional: Describimos la forma en que se comporta el circuito. Esta es la forma que más se parece a los lenguajes de software ya que la descripción es secuencial. Estas sentencias secuenciales se encuentran dentro de los llamados procesos en VHDL. Los procesos son ejecutados en paralelo entre sí, y en paralelo con asignaciones concurrentes de señales y con las instancias a otros componentes.

Flujo de datos: describe asignaciones concurrentes (en paralelo) de señales.

Estructural: se describe el circuito con instancias de componentes. Estas instancias forman un diseño de jerarquía superior, al conectar los puertos de estas instancias con las señales internas del circuito, o con puertos del circuito de jerarquía superior.

Mixta: combinación de todas o algunas de las anteriores.

VHDL
Es un lenguaje definido por el IEEE( Instituto de Ingeniería Eléctrica y Electrónica) (ANSI/IEEE 1076-1993) usado por ingenieros para describir circuitos digitales.

Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD (Dispositivo Lógico Programable), FPGA (Field Programmable Gate Array), ASIC y similares.
Dentro del VHDL hay varias formas con las que podemos diseñar el mismo circuito y es tarea del diseñador elegir la más apropiada.
El Juego
Simulado e implementado por nuestra empresa fue “Simon”, el cual es un juego electrónico creado por Ralph Baer en 1978 Tuvo un gran éxito durante los 80. Tiene forma de disco, en una de sus caras se puede ver cuatro cuadrantes, cada uno con un color: verde, rojo, azul y amarillo en su versión original. Su nombre se debe por el conocido juego tradicional del mismo nombre: Simon dice de donde se inspira.

El juego de forma aleatoria va iluminando los cuadrantes de colores, y a la vez que se ilumina cada cuadrante emite un sonido propio. Después de esperar, el usuario debe ir introduciendo la secuencia mostrada en el orden correcto, ayudándose de su memoria visual y sonora. Si lo consigue, éste responderá con una secuencia más larga, y así sucesivamente. Si falla, el usuario debe volver a empezar.
Adicionalmente, debemos considerar que la UC va a determinar qué señal se enviará a los LEDS para que sean mostrados, es decír, si se va a mostrar lo recibido del registro (el valor generado por el juego) ó lo recibido por los pulsadores.

Para ello creamos un multiplexor para seleccionar entre éstas opciones, además de que cuando el usuario se equivoque, enviará otra señal adicional.
Agregamos registros de una sola posición en cada señal saliente de los comparadores para propagar dichas señales y que la unidad de control las reciba en el siguiente ciclo.
FASE DE SIMULACIÓN

Para la simulación del juego como dijimos anteriormente utilizamos
la librería de C++ Systemc. Los ingenieros de la empresa se dedicaron a instalar dicha herramienta y a estudiar un poco la sintaxis de la misma.

Se realizaron pruebas individuales con cada uno de los módulos del circuito, lo cuales fueron los siguientes:

-unidad aleatoria.
-registro principal ( el que almacena los 10 valores generados).
-comparador.
-registro secundario ( de una sola posición, almacena la señal saliente de un comparador.)
-multiplexor
unidad de control.

El módulo del comparador y el registro secundario se reutilizaron, ya que son módulos que tienen el mismo tipo y cantidad de entradas y salidas, en total se agregaron 10 módulos de comparadores (uno para cada nivel) y 20 registros secundarios (uno para cada señal que sale de los comparadores, considerando que en cada comparador, salen 2 señales).

Para la implementación del juego en la arquitectura de la FPGA Basys 2 se uso la herramienta de diseño ISE y el lenguaje VHDL.

Al igual que la simulación con la librería de C++ System C, se realizaron pruebas individuales con cada uno de los módulos a implementar antes de hacer la ejecución completa del juego.

Se implementaron los siguientes módulos:
FASE DE ARQUITECTURA
-unidad aleatoria.

-registro principal.

-comparador.

-registro secundario.

-multiplexor.

-unidad de control.
Como unidad principal está la unidad de control que es la madre al
momento de la toma de decisiones del diseño y encargada de la
sincronización de las actividades y los procesos.

La unidad aleatoria se usó para generar la secuencia aleatoria que
mostraría el computador cuando fuese su turno de jugar.

Se utilizo un registro principal de tantas posiciones como rondas
tendría el juego en el cual se guardarían las secuencias aleatorias
generadas por la mencionada unidad

Se uso un comparador por cada posición de registro que serían
activados por la unidad de control. Se usaron 2 registros secundarios
de una posición por cada comparador para almacenar las señales de
salida de estos comparadores. Y, se uso un multiplexor para la
decisión de la salida hacia la pantalla.
LYOKO GAMES,
Full transcript