Anda di halaman 1dari 30

Máquinas de Estado de Moore y Mealy

con VHDL..

SEMANA 15

Ing. Carlos Quilla Paredes


Recordemos la sesión anterior:

FLUJO DE DATOS
VHDL es un lenguaje concurrente, como
consecuencia no se seguirá el orden en
que están escritas las instrucciones a la
hora de ejecutar el código. De hecho, si
hay dos instrucciones, no tiene porqué
ejecutarse una antes que otra, pueden
ejecutarse a la vez.

3
Recordemos la sesión anterior:

Sentencias concurrentes:

WHEN … ELSE
Sentencia de selección múltiple. En
hardware es necesario incluir todas las
opciones posibles. En este caso es
obligatorio siempre acabar la expresión
con un ELSE.

https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_VHDL/Arquitectura

4
Recordemos la sesión anterior:

PROCESOS
Un PROCESS, como se ha dicho antes,
es una sentencia concurrente en el
sentido de que todos los PROCESS y
todas las demás sentencias
concurrentes se ejecutarán sin un
orden establecido.
No obstante las sentencias que hay
dentro del PROCESS se ejecutan de
forma secuencial.

5
Recordemos la sesión anterior:
EJEMPLO

PROCESOS

El programa arrojara un Warning


Porque falta completar la lista sensitiva
con “b”, es decir cuando cambia “a” se
ejecuta el proceso, pero cuando cambia
“b” no se ejecutara, por lo que la suma
no se realizara.

6
CAPACIDAD TERMINAL

 Programa eficazmente un FPGA en


VHDL para crear funciones.

LOGRO DE LA SESION

 Al finalizar la sesión los alumnos Usar modelos


de máquinas secuenciales.

7
Contenidos de la sesión:

• Rutinas para la implementación de máquinas de estado


de Moore y de Mealy.

Actividad didáctica: Herramientas de Evaluación de


Teoría: Caso “Máquina desarrollo: resultados:
Maquinas de estado expendedora” DiCiCe Cuestionario
PULSERA ANTIESTATICA
Es un elemento de protección que
se utiliza como un brazalete que
se coloca alrededor de la muñeca,
dotado de un cable con una
pinza que se fija a tierra, con el fin
de mantenernos descargados y
evitar que los componentes se
dañen.

Seguridad en manipulación de equipos


9
FINITE STATE MACHINES
Introduction
In combinational circuits, the output depends on the current values of inputs only;
whereas in sequential circuits, the output depends on the current values of the
inputs along with the previously stored information. In the other words, storage
elements, e.g. flip flogs or registers, are required for sequential circuits. The
information stored in these elements can be seen as the states of the system. If a
system transits between finite number of such internal states, then Finite State
Machines (FSM) can be used to design the system.

https://vhdlguide.readthedocs.io/en/latest/vhdl/fsm.html

10
DISEÑO DE SISTEMAS SECUENCIALES SÍNCRONOS
• En la estructura de Mealy, las señales de • En la estructura de Moore, la señal de
salida dependen tanto del estado en que salida sólo depende del estado en que se
se encuentra el sistema, como de la encuentra.
entrada que se aplica en determinado
momento.

11
DISEÑO DE SISTEMAS SECUENCIALES SÍNCRONOS
Un sistema secuencial se desarrolla a través de una serie de pasos generalizados que
comprenden el enunciado del problema, diagrama de estados, tabla de estados,
asignación de estados, ecuaciones de entrada a los elementos de memoria y diagrama
electrónico del circuito.

12
DISEÑO DE SISTEMAS SECUENCIALES SÍNCRONOS
A nivel físico, una de las formas más efectivas de implementar una FSM es según el
siguiente esquema:

Si tenemos 04 estados necesitaremos un registro de estados de 02 FF.

13
DISEÑO DE SISTEMAS SECUENCIALES SÍNCRONOS
Como ejemplo consideremos el diseño del siguiente sistema secuencial, en el cual se
emite un pulso de salida Z (Z=l) cuando en la línea de entrada (X) se reciben cuatro
unos en forma consecutiva; en caso contrario, la salida Z es igual a cero.

14
Maquinas de estado con VHDL
Maquinas de estado con VHDL
De acuerdo con nuestro ejemplo, vemos
que el sistema secuencial se puede
representar por medio del diagrama de
estados y la tabla siguiente:
Maquinas de estado con VHDL

La transición entre estados se realiza por


medio de declaraciones if-then‘ else.
Si x=1, entonces cambiamos de estado, sino
nos quedamos en el estado actual:
Maquinas de estado con VHDL

Para representar los estados E0, E1, E2 y E3


en código VHDL, hay que definirlos dentro de
un tipo de datos enumerados mediante la
declaración type:
DIAGRAMAS DE ESTADO
Como en cualquier lenguaje de programación existen varios tipos de datos, en VHDL
se pueden diferenciar dos: escalares y compuestos,
por ejemplo:

• TYPE byte IS RANGE 0 TO 255;


• TYPE color IS (ROJO, VERDE, AMARILLO);
• TYPE word IS ARRAY (31 DOWNTO 0) OF bit; //tipo compuesto

19
Maquinas de estado con VHDL
Con el uso de declaraciones case-when
determinamos el valor que tomará el
siguiente estado, estas deben ir dentro de un
proceso
DIAGRAMAS DE ESTADO
Recuerde que:
La sentencia secuencial CASE, evalúa una expresión en vez de una condición. A
continuación su estructura y un ejemplo:

21
Maquinas de estado con VHDL
La estructura del Proceso es:
DIAGRAMAS DE ESTADO

23
APP DiCiDe

24
DIAGRAMAS DE ESTADO
EJERCICIO PROPUESTO:
Realizar el Programa VHDL para el diagrama de estados
propuesto en CANVAS

25
Diagrama de estados

RESUMEN DE LA SESION
DIAGRAMAS DE ESTADO
Recuerde que:
• Cada círculo representa un estado. En la figura tenemos
cuatro estados que se llaman S1, S2, S3 y S4.
• El estado S1 tiene una flecha que indica que es el
estado el inicial, al que se entra tras un reset del
sistema.
• El S4 tiene un doble círculo, que indica que es un
estado final.
• Los estados están unidos por una flechas llamadas
transiciones, que indican cómo evoluciona el sistema
de un estado a otro según se activan las señales de
entrada.
27
SIGUIENTE SESION:
EVALUACION.

Enlace de interés:
https://youtu.be/KfFCfUTX4Nk

28
Bibliografía:

• VHDL El arte de programar sistemas


digitales. David G. Maxinez; Jessica
Alcalá Jara
• http://slideplayer.es/slide/5496510/
• http://eprints.ucm.es/26200/1/intro_VH
DL.pdf
• https://www.digilogic.es/maquinas-de-
estado-finito-fsm-vhdl/

29
GRACIAS

30

Anda mungkin juga menyukai