con VHDL..
SEMANA 15
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
6
CAPACIDAD TERMINAL
LOGRO DE LA SESION
7
Contenidos de la sesión:
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:
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
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:
29
GRACIAS
30