29 nov 2010

MÁQUINA ROTATIVA (MEALY)

FINALIDAD:
El fin de este ejercicio es realizar el estudio de la creación de un símbolo a partir de un módulo basado en una máquina de estados tipo Mealy.
‘ISE’ integra el programa ‘StateCAD’ con el que podemos crear máquinas de estados finitos.
Grosso modo, los pasos a realizar son los siguientes:
1. Escribir las condiciones de transición y las acciones de los estados, en un lenguaje de sintaxis independiente.
2. Exportar el diagrama a un lenguaje VHDL, Verilog o ABEL.
3. Sintetizar el fichero HDL resultante para crear un netlist o macro que podamos utilizar en nuestro esquemático.



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.

Nota.- La acción sobre (b) debe ser contemplada como instantánea (Impulso) y como no instantánea.




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.



  •      DIAGRAMA DE FLUJO: consiste en expresar gráficamente la secuencia del proceso, de la máquina rotativa, con sus estados inestables, estables y valores de salida. En sí, este diagrama es la solución del ejercicio.

MÁQUINA ROTATIVA                 ESPECIFICACIÓN               EJERCICIOS

     ESQUEMA:


    1.ABRIR PROJECT NAVIGATOR:

    En el escritorio encontramos el icono del ‘Project Navigator’, hacemos doble clic y se abre el entorno con el último proyecto con el que hemos trabajado.



     2.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.





     

    3.AÑADIR NUEVA FUENTE:

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



     4.DIBUJAR EL ESQUEMA DEL AUTÓMATA:

           4.1.CREANDO UN SÍMBOLO DE UN MÓDULO DE MAQUINA DE ESTADOS:

      En el ‘Project Navigator’ añadimos un nuevo fichero fuente, de tipo State Diagram’, al cual le llamaremos ‘mrota’.




     Aparecerá la siguiente entana.



                       4.1.1AÑADIR PUERTOS 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’.








     Al hacer doble click en las líneas para introducir las transiciones saldrá la siguiente ventana, donde debes escribir la condición que corresponda.





              4.1.2.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.


     La simulación la comenzamos realizando un reset al autómata.


     Cambiamos los valores de entrada haciendo clic sobre la señal de la ventana inferior (en la zona roja) y pulsamos Cycle’. De esta forma podemos observar por donde fluye el autómata y si su funcionamiento es el esperado.
    A modo de ejemplo, vamos a realizar y mostrar en imágenes, unos cambios en las entradas para pasar por los estados ‘0 -> 1 -> 2 -> 3 -> 0’.


     Si vas dando los valores de las transiciones en simulador irás pasando por todos los estados.

                     4.1.3.GENERAR EL CÓDIGO VHDL:
      Una vez verificado el funcionamiento generamos el código del autómata en VHDL haciendo clic en ‘Generate HDL’.


     A continuación saldra esa ventana.



     La cierras y saldrá el fichero HDL.



     Salvamos el autómata y nos salimos del programa.
     Añadimos el fichero ‘MROTA.vhd’ al proyecto y generamos el símbolo:

  •          Ejecutamos ‘Add Source’ y seleccionamos el fichero ‘MROTA.vhd’.





  •         Generamos el símbolo del autómata.

             4.2.AÑADIENDO COMPONENETES:







MÁQUINA ROTATIVA                 SIMULACIÓN FUNCIONAL               EJERCICIOS


     1.CREAR EL FICHERO 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’.



Aquí os dejo un enlace para que os podáis descargar el tutorial y el programa: http://cid-64f7131e50857260.office.live.com/self.aspx/MAQUINA%5E_ROTATIVA/MAQUINA%5E_ROTATIVA.rar

0 comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes Powered by Blogger | DSW printable coupons