ELECTRONIC MEMORIES

MÁQUINA ROTATIVA

Posted by discobolo100 en 30 diciembre, 2010

MÁQUINA ROTATIVA

ENUNCIADO

Se desea proyectar el gobierno de un conmutador rotativo, que permite realizar un ciclo completo cuando el tambor haya efectuado una vuelta completa.

El disco solidario del tambor lleva un saliente para actuar sobre el contacto (a). El pulsador (b) (botón de impulsos) da comienzo al ciclo.

1) Estado inicial (reposo) a=1, b=0, M=0.

2) (b) es accionado y después desaccionado rápidamente (impulso) -> M=1.

3) Cuando el disco ha dado una vuelta, (a) es accionado por el saliente y el disco se para.

ANÁLISIS

La máquina se desarrollará mediante un diagrama de flujo de máquina Mealy síncrona que será transformado en un símbolo gráfico y éste, será utilizado en el diseño gráfico principal.

TABLA DE ESTADOS

En este punto se enumeran todos los posibles estados estables que va a poseer la máquina. Estos estados no deben confundirse con los estados internos que se van a necesitar para registrar todo el proceso secuencial.

CREAR NUEVO PROYECTO

Desde ‘File->New Project’ configuramos los primeros parámetros del proyecto tal como el nombre ‘ROTATIVA’ y el tipo ‘Schematic’. Hacemos clic en ‘Siguiente’.

Configuramos Familia, Dispositivo, Encapsulado, Velocidad, Sintetizador, Simulador y Lenguaje de simulación.

AÑADIRNUEVAFUENTE

Vamos a añadir una fuente a nuestro proyecto, con el nombre de ‘ROTATIVA’, utilizando un lenguaje formal de presentación gráfico.

DIBUJAR EL ESQUEMA DEL AUTÓMATA

Se nos abre un programa de diseño gráfico de máquinas de estados llamado ‘StateCAD’.

AÑADIR PUERTOS DE ENTRADA/SALIDA DE LA MÁQUINA

Añadimos los puertos de entrada y de salida de la máquina. Para ello entramos en ‘Options-> Variable’

En la ventana que se nos abre vemos que por defecto existe la entrada de reloj.Los demás puertos se añaden poniendo el nombre en el campo ‘Name’, configurando el tipo, el modo activo y si va a ser un pin o un nodo interno. Posteriormente hacemos clic en el botón ‘Add/Modify’.

Pulsamos sobre ‘OK’ y comenzamos el diseño del autómata.

AÑADIR ESTADOS

Añadimos los estados seleccionando el botón ‘Add State’ en la barra de herramientas y los ponemos en la hoja de diseño con un clic de ratón.

AÑADIR TRANSICIONES

Dibujamos las transiciones, tal y como nos indica el diagrama de flujo definido al comienzo del ejercicio, seleccionando el botón ‘Add Transition’ en la barra de herramientas y llevando el ratón de un estado a otro.

Añadimos un ‘RESET’ al diseño seleccionando el botón ‘Add Reset’ en la barra de herramientas y lo situamos en el ‘ESTADO 0’. Una máquina de estados debe tener un ‘reset’ de forma que arranque en el estado correcto. El ‘reset’ puede trabajar en alto o bajo activo y ser asíncrono o síncrono (en nuestro caso es asíncrono y trabaja en alto activo).

Damos valor a las ecuaciones de entradas y a las salidas. Poniendo el cursor encima de las transiciones y haciendo clic, con el botón izquierdo del ratón.

Quedando al final una cosa así:

VERIFICACIÓN

Verificamos el correcto funcionamiento del autómata creando un ‘test bench’. Hacemos clic sobre el botón de

State Bench’.

Se nos abre un simulador de estados.

Si damos donde se marca con varios circulos rojos contenctricos el propio programa realizara paso a paso la maquina de estados y nos comunicara si hay algún error ahorrandonos así bastante tiempo.

Al cerrar el simulador que se nos habrio directamente se nos genera un codigo VHDL mediante una pantalla que nos sale y daremos a CLOSE para cerrarla, posteriormente guardaremos el “mota” y cerraremos el archivo.

El código que se nos crea es el siguiente:

Añadimos el fichero ‘MROTA.vhd’ al proyecto y generamos el símbolo:

1º.- Ejecutamos ‘Add Source’ y seleccionamos el fichero ‘MROTA.vhd’.

2º.- Seleccionamos el tipo de fuente ‘VHDL Design File’.

3º.- Generamos el símbolo del autómata.

AÑADIENDO COMPONENTES

Añadimos buffer de reloj, de GSR y el autómata.

CREAR EL FICHERO DE TEST BENCH WAVEFORM

La simulación funcional ya ha sido realizada con el programa StateBench, no obstante, si se desea se puede volver a crear un fichero test bench tal y como lo hemos venido realizando en ejercicios anteriores.

Por otra parte, el ‘StateBench’ generó un fichero de test ‘MROTA_TB.vhd’, el cual puede ser simulado directamente con ‘ModelSimtras haber sido previamente añadido al proyecto como tipo de fuente ‘VHDL Test Bench’.


Seguidamente, abrimos el proceso Simulate Behavioral Model’ asociado a ‘MROTA_TB.vhd’.

SÍNTESIS DE LA MÁQUINA ROTATIVA

Hacemos doble clic en el proceso ‘Synthesize-XST’ situado en la ventana de procesos y se nos efectúa la síntesis del autómata.

CREANDO RESTRICCIONES (*.UCF)

Crearemos un fichero de restricciones para la localización de pines.

Desde ‘Project->New Source’ añadimos una nueva fuente tipo ‘Implementation Constraints File’ con el nombre de ‘ROTATIVA’ y lo asociamos a la fuente ‘ROTATIVA’.

COLOCACIÓN (Translate)

Realiza todos los pasos necesarios para convertir los ficheros netlist de entrada, en un formato propietario NGD que utiliza una representación interna de la tecnología que se está empleando.

Para ejecutar la utilidad nos ponemos encima de ‘Translate’ y hacemos doble clic.

CONEXIONADO (Fit)

Fit mapea la lógica definida por el fichero NGD dentro de los recursos del CPLD, tal como células lógicas, I/OB’s y otros componentes. La salida del proceso es un fichero VM6 que representa físicamente el conexionado de los componentes en el CPLD.

Para ejecutar la utilidad nos ponemos encima de ‘Fit’ y hacemos doble clic.

Comprobamos que todo ha salido de forma correcta inspeccionando el informe ‘fitter report’.

Para terminar solo queda programar el dispositivo.

Dejo un link de descarga del ejercicio: http://www.megaupload.com/?d=M7IQPPUT

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: