0% encontró este documento útil (0 votos)
71 vistas14 páginas

Máquinas de Estados con FPGA y VHDL

Informe de laboratorio sistemas digitales

Cargado por

Dayan Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
71 vistas14 páginas

Máquinas de Estados con FPGA y VHDL

Informe de laboratorio sistemas digitales

Cargado por

Dayan Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD PRIVADA DEL VALLE

FACULTAD TECNOLOGIA Evaluación


INGENIERIA MECATRONICA
CAMPUS TIQUIPAYA

LAB. SISTEMAS DIGITALES II

INFORME PRACTICA N°10


MÁQUINAS DE ESTADOS CON FPGA-
VHDL
Grupo A

Estudiantes:
Cabello Torrico Rafael Andrés
Docente:
Ing. Raúl Balderrama Coca

14 de junio de 2024
Gestión I– 2024
MÁQUINAS DE ESTADOS CON FPGA – VHDL
1. CONOCIMIENTO TEORICO REQUERIDO

Una Máquina de Estado Finito (Finite State Machine), llamada también Autómata
Finito es una abstracción computacional que describe el comportamiento de un
sistema reactivo mediante un número determinado de Estados y un número
determinado de Transiciones entre dicho Estados.

Las Transiciones de un estado a otro se generan en respuesta a eventos de


entrada externos e internos; a su vez estas transiciones y/o subsecuentes estados
pueden generar otros eventos de salida. Esta dependencia de las acciones
(respuesta) del sistema a los eventos de entrada hace que las Máquinas de
Estado Finito (MEF) sean una herramienta adecuada para el diseño de Sistemas
Reactivos y la Programación Conducida por Eventos (Event Driven Programming),
cual es el caso de la mayoría de los sistemas embebidos basados en
microcontroladores o microprocesadores.

Existen dos tipos de máquinas de estado las de tipo Moore y Mealy.

Moore
En la Teoría de la computación, una Máquina de Moore es un autómata de
estados finitos donde las salidas están determinadas por el estado actual
únicamente (y no depende directamente de la entrada). El diagrama de estados
para una máquina Moore incluirá una señal de salida para cada estado.
Comparada con la Máquina de Mealy, la cual mapea transiciones en la máquina a
salidas

Una máquina de Moore puede ser definida como una 6-tupla {S, S0, Σ, Λ, T, G}
consistente de:

- Un conjunto finito de estados (S)


- Un estado inicio (también llamado estado inicial) S0 el cual es un elemento
de (S)
- Un conjunto finito llamado alfabeto entrada (Σ)
- Un conjunto finito llamado el alfabeto salida (Λ)
- Una función de transición (T: S × Σ → S) mapeando un estado y una
entrada al siguiente estado
- Una función salida (G: S → Λ) mapeando cada estado al alfabeto salida.
- El número de estados en una máquina de Moore será mayor o
igual al número de estados en la Máquina de Mealy correspondiente.
La mayoría de las máquinas electrónicas están diseñadas como sistemas
secuenciales síncronos. Los sistemas secuenciales síncronos son una forma
restringida de máquinas de Moore donde el estado cambia solo cuando la señal
de reloj global cambia. Normalmente el estado actual se almacena en Flip-flops, y
la señal de reloj global está conectada a la entrada "clock" de los flip-flops. Los
sistemas secuenciales síncronos son una manera de resolver problemas de
Metastabilidad.
Mealy

Estas máquinas, son en esencia máquinas traductoras, ya que dada una palabra
en la entrada generan otra palabra en la salida. Por lo expuesto en el párrafo
anterior, para poder producir la correspondiente transformación estas máquinas
deberán estar compuestas por:

- Dos cintas asociadas, una que permita alojar una cadena de símbolos a la
entrada, que serán leídos uno por vez, y otra cinta que permita registrar las
salidas que se irán produciendo en la ejecución de la máquina.

- Deberán contener un conjunto finito de estados, los que son capaces de


memorizar, en cada momento la parte de la palabra de entrada leída en ese
instante de tiempo, cambiar de estado y producir una salida.

Es importante resaltar que en un determinado intervalo de tiempo, las máquinas


secuenciales realizarán tres acciones que serán indivisibles (consideradas como
una unidad), las cuales son:

1) Realizan una lectura sobre la cinta de entrada.

2) Cambiar de estado.

3) Grabar un símbolo en la cinta de salida

Otro característica importante a destacar sobre este tipo de máquinas, es que no


disponen de un estado inicial previsto, por lo tanto en el momento de comenzar su
funcionamiento podrán hacerlo desde cualquiera de sus estados, produciendo
eventualmente salidas diferentes.
2. COMPETENCIAS
El estudiante configurará la tarjeta CoreEP4C6E6, como una máquina de estado
finito tipo Moore y máquina de estado finito tipo Mealy.
3. OBJETIVO
 Armar el circuito según la simulación hecha previamente.
 Analizar el funcionamiento del circuito y ver posibles aplicaciones.
4. MATERIALES, INSUMOS Y EQUIPOS
MATERIALES Y EQUIPOS
Íte Cantida
Denominación Unidad Observaciones
m d
La práctica es para un
Computador personal con grupo de 2 estudiantes,
1 Programas Quartus II Y 1 Pza. la capacidad del
ModelSim Laboratorio es de 10
grupos.

Insumos
Unida
Ítems Denominación Cantidad Observaciones
d
1 Bread Board 1 Pza. La práctica es para un grupo de 2
estudiantes, la capacidad del
2 Tarjeta CoreEP4C6E6 1 Pza.
Laboratorio es de 10 grupos.

5. TECNICA O PROCEDIMIENTO
Parte 5.1
En la figura1 se observa el diagrama de estado de una máquina Moore simple. La
señal llamada ‘y’ representa el estado de la máquina. Se declara con un tipo
enumerado, State_Type que tiene los tres valores posibles A, B y C.
El compilador de VHDL realiza automáticamente una asignación de estado para
seleccionar los patrones de bits apropiados para los tres estados. El
comportamiento de la máquina se define por medio del proceso con la lista de
sensibilidad que comprende las señales reset y clock..
Parte 5.2
En la figura 2 se muestra un diagrama de estado para una máquina tipo Mealy
simple. El procedimiento de descripción tiene los mismos pasos para este tipo de
maquina excepto porque la salida z se especifica usando una instrucción CASE
separada.
La instrucción CASE establece que cuando la FSM se encuentra en el estado A, z
debe ser 0, pero cuando se halla en el estado B, z debe tomar el valor de w. Esta
instrucción CASE describe bien la lógica necesaria para z.
6. DATOS Y SIMULACIÓN
Parte 6.1
En la figura1 se observa el diagrama de estado de una máquina Moore simple. La
señal llamada ‘y’ representa el estado de la máquina. Se declara con un tipo
enumerado, State_Type que tiene los tres valores posibles A, B y C.
El compilador de VHDL realiza automáticamente una asignación de estado para
seleccionar los patrones de bits apropiados para los tres estados. El
comportamiento de la máquina se define por medio del proceso con la lista de
sensibilidad que comprende las señales reset y clock..
Parte 6.2
En la figura 2 se muestra un diagrama de estado para una máquina tipo Mealy
simple. El procedimiento de descripción tiene los mismos pasos para este tipo de
maquina excepto porque la salida z se especifica usando una instrucción CASE
separada.
La instrucción CASE establece que cuando la FSM se encuentra en el estado A, z
debe ser 0, pero cuando se halla en el estado B, z debe tomar el valor de w. Esta
instrucción CASE describe bien la lógica necesaria para z.
7. CONCLUSIONES
Se pudo concluir con total éxito la presente practica de laboratorio,
desarrollándose a cabalidad todas las descripciones correspondientes para cada
uno de los diseños que nos planteaba la guía de laboratorio.
Por otra parte, se pudo observar que en el momento de crear las respectivas
carpetas para el desarrollo de las descripciones contaban (en algunos casos) con
muchas fallas, dándonos errores en nuestras compilaciones y/o simulaciones
siendo que la descripción se encontraba en perfecto estado.
Sin embargo, al pasar del tiempo se pudo ir dominando con mayor facilidad el
control de nuestras descripciones concluyendo de una manera satisfactoria el
presente trabajo de laboratorio
8. RECOMENDACIONES
Se recomienda tener mucho cuidado a la hora de crear la carpeta que el nombre
siempre sea el mismo con el vayamos a describir la entidad de nuestro proyecto
para la compilación de mismo. Mucho cuidado con la designación de los enalbes si
es que están de forma activa alta o baja.
Es importante mencionar que el orden a la hora de realizar nuestra descripción es
un factor fundamental para el buen desarrollo de nuestro trabajo a realizar y la
respectiva compilación y/o simulación.
Tener en cuenta que las carpetas que este creando para cada uno de los
desarrollos de las descripciones no se encuentren en modo lectura, ya que no te
dejara realizar correctamente la simulación de tu proyecto a realizar. Verificar
siempre que los “;” siempre se encuentre en el lugar correcto al igual que el
manejo de las librerías.
9. CUESTIONARIO
1) ¿Qué son las máquinas de estado?

También son conocidas como máquinas de estado finitas, lo que significa que
sabemos todos los posibles estados de ella. La clave para la máquina de estado
es el concepto del tiempo y la historia.

El estado de la máquina es evaluada periódicamente. Cada vez que es evaluada,


un nuevo estado es elegido (el que podría ser el mismo estado nuevamente) y el
resultado es presentado.

2) ¿Cómo se representan las máquinas de estado?

3) ¿Cuáles son los elementos principales de una máquina de estado?


- El círculo es el estado
- El nombre coloquial del estado está dado en la mitad superior del circulo
- La salida del estado está dada en la mitad inferior del círculo. A veces esto
es explicito, como “X=1,” y el estado se comporta como Moore, aunque a
veces puede ser “SALIDA = ENTRADA” donde durante ese estado, hace la
salida igual a lo que haya sido la entrada. En este sentido, la máquina es
muy Mealy. Normalmente se engloban los dos para escribir máquinas de
estado C porque realmente no importa la construcción C de la máquina.
- La flecha es el recorrido de la transición de estado.
- Las Xs, arriba de la línea, son las condiciones para que esa transición de
estado ocurra. Si se dan las condiciones, ese será el recorrido de
transición.
- Las Ys, bajo la línea, son cosas que pasan durante la transición. Este
concepto se desvía estrictamente del mundo lógico digital de Moore y
Mealy y se origina de la naturaleza de ejecución consecutiva de C. Mientras
utilizamos un programa, es fácil chequear las condiciones de transición y
realizar algunas acciones de una sola vez mientras cambian los estados,
entonces se deben poner las acciones bajo las condiciones.
4) ¿Qué es una máquina de esta para los videojuegos?

Las máquinas de estados son una de las herramientas más usadas en el


desarrollo de videojuegos, básicamente, definen el comportamiento que especifica
las secuencias de estados por las que atraviesa un objeto durante su ciclo de
ejecución en respuesta a una serie de eventos, junto con las respuestas a dichos
eventos.

5) ¿Qué son las transiciones en una máquina de estado y cómo se


representan?

Son el ‘recorrido’ que se realizar para diferencias un estado de otro y también son
la forma de diferencias dichos estados también en ellas se colocan las condiciones
para que el estado cambie, se mantenga o regrese, las cuales se representan
como flechas que fluyen de un estado a otro, mostrando cómo cambian los
estados.
6) ¿Qué es el estado inicial en una máquina de estado?

Es el inicio o el punto inicial de donde una máquina de estado comenzara a


realizar los ciclos de trabajo, donde en los autómatas de Mealy es un punto
importante para determinar la salida de dichos autómatas.

7) ¿Qué es el estado final en una máquina de estado?

Es el ultimo o máximo estado que una maquina de estado puede tomar, también
esto es lo que le da el nombre de finito a una maquina de estado

8) ¿Qué es un evento en una máquina de estado?

En el contexto de las máquinas de estado, un evento es la aparición de un


estímulo que puede disparar una transición de estado. Una señal es un tipo de
evento que representa la especificación de un estímulo asíncrono que es
transmitido entre instancias.

9) ¿Cómo se implementa una máquina de estado en un programa?

Se implementan con frecuencia para crear aplicaciones rápidamente. La


arquitectura de máquina de estado se puede utilizar para implementar algoritmos
complejos de toma de decisiones que son representados por diagramas de estado
o diagramas de flujo.

10)¿Qué ventajas ofrecen las máquinas de estado en la programación de


software?
Simplicidad: Las máquinas de estado son sencillas de implementar y entender. El
flujo de control es claro y no hay estructuras de control complejas, como los
bucles, que se interpongan en el camino.

Extensibilidad: El código es fácil de extender. Todo lo que necesitas hacer es


añadir más transiciones con las condiciones adecuadas y no necesitas cambiar el
código existente.

Reutilización: Se puede compartir fácilmente la misma máquina de estado entre


múltiples casos de uso. Como la máquina de estado es independiente de los
casos de uso, puedes implementarla una vez y utilizarla tantas veces como
quieras.

Capacidad de comprobación: Puedes escribir pruebas unitarias para cada


estado y las transiciones entre ellos. Esto facilita la identificación de problemas en
el código, especialmente cuando se tiene una máquina de estados grande.

También podría gustarte