Este documento describe los conceptos básicos de los sistemas secuenciales y su modelado en VHDL. Explica que los sistemas secuenciales combinan elementos de lógica combinacional y memoria como flip-flops. Describe los tipos de sistemas secuenciales síncronos y asíncronos, y cómo modelar la activación por flanco en VHDL usando atributos como 'event. También cubre temas como tipos de biestables, señales de inicialización y diseño de máquinas de estados finitas.
2. • Los circuitos digitales inicialmente son de tipo combinacional circuitos
que dependen por completo de los valores que se encuentran en la
entrada.
• Los circuitos secuenciales agrupa elementos de lógica combinacional
y de memoria como flip-flops, contadores o registros.
3. • Un sistema secuencial está formado por un circuito combinacional
y un elemento de memoria encargado de almacenar de forma
temporal la historia del sistema. En esencia, la salida de un sistema
secuencial no sólo depende del valor presente en las entradas en un
instante determinado, sino también de la historia del sistema.Hay dos
tipos de sistemas secuenciales:
• Síncronos: su comportamiento se encuentra sincronizado
mediante el pulso de reloj del sistema (CLK).
• Asíncrono: Su funcionamiento depende del orden y momento en
el que se aplican las señales de entrada.
4.
5. • Uno de los conceptos nuevos que aparece en VHDL a la hora de describir
sistemas secuenciales es la forma de describir la activación por flanco de
reloj
En el lenguaje VHDL los atributos sirven para definir características que se
pueden asociar con cualquier tipo de datos, objetos o entidades.
Uno de los tributos es el atributo event (evento donde indica que se trata de
un atributo) se utiliza para describir un hecho u ocurrencia de una señal
particular.
6. • En el lenguaje VHDL los atributos sirven para definir características que
se pueden asociar con cualquier tipo de datos, objeto o entidades.
EVENT, que indica si una señal ha cambiado de valor. Por ejemplo la
siguiente sentencia captura un flanco de subida de una señal (clk).
....
if clk'event and clk = '1' then
....
7. ATRIBUTO ‘EVENT.
• Considerando una señal de reloj (CLK), la sentencia CLK’event
es cierta sólo cuando ocurre un cambio de valor (paso de ‘0’ a
‘1’ o de ‘1’ a ‘0’). Combinándola con una sentencia de
comprobación de igualdad del nuevo valor es posible definir la
activación por el tipo de flanco que se desee:
8. • S´EVENT
Retorna un verdadero si ocurrió un evento en s durante el corriente delta, de
lo contrario devuelve un falso.
• S´ESTABLE
Retorna verdadero si no hay evento en S.
• S´ACTIVE
Retorna verdadero si S=1.
• S´LAST_EVENT
Retorna el tiempo transcurrido desde la transición previa de la señal S.
9. • S´LAST_VALUE
Retorna el valor Previo de S antes del ultimo evento.
• S´LAST_ACTIVE
Retorna el tiempo transcurrido desde la transacción previa de la señal.
• S´ACTIVE
Retorna verdadero si S=1.
10. BIESTABLES
• Se trata de un dispositivo de almacenamiento temporal de dos
estados, que pueden permanecer en cualquiera de sus dos
estados gracias a la capacidad de realimentación, lo que
consiste en conectar las salidas con las entradas.
• Tipos:
• Asíncronos.
• Síncronos.
11. BIESTABLES
• Asíncronos: La salida cambia de estado cuando cambian las
entradas.
• Síncronos: La salida cambia de estado (en función de las
entradas) de forma acompasada con una señal de reloj. Este
tipo de dispositivos síncronos a su vez se clasifican en:
• Activos por nivel (alto o bajo): La salida cambia de estado sólo cuando la
señal de reloj se encuentra en el estado lógico ‘1’ (nivel alto) ó ‘0’ (nivel
bajo).
• Activos por flanco (subida o bajada): La salida cambia de estado sólo
cuando la señal de reloj pasa de un nivel lógico de ‘0’ a ‘1’ (flanco de
subida) o de ‘1’ a ‘0’ (flanco bajada).
12. TIPOS DE BIESTABLES.
• Independientemente del momento de activación, es posible
catalogar los biestables en los siguientes tipo:
13. MODELADO VHDL DE LA ACTIVACIÓN POR
FLANCO.
• La principal opción que ofrece VHDL para modelar la activación
por flanco en los circuitos secuenciales es mediante el atributo
‘event. Sin embargo, es posible modelarlos también mediante
dos formas adicionales:
• Dentro de un proceso con la sentencia WAIT UNTIL.
• Usando las macros VHDL’93 rising_edge(señal) y falling_edge(señal);
15. MODELIZACIÓN VHDL DE LAS SEÑALES DE
INICIALIZACIÓN.
• Cuando los biestables se alimentan, pueden adoptar un valor
indeterminado “a priori”, dependiendo de la forma en que lo
haya implementado el fabricante.
• Suele ser habitual el uso de señales de inicialización, que
fuerzan la salida del biestable a un valor conocido. Típicamente
podemos clasificar esta clase de señales en dos grupos:
• Señales de inicialización asíncrona.
• Señales de inicialización síncrona.
16. MODELIZACIÓN VHDL DE LAS SEÑALES DE
INICIALIZACIÓN.
• Señales de inicialización asíncrona.
• En cuanto se activan la salida del biestable pasa automáticamente a
tomar el valor correspondiente.
• Pueden ser activas a nivel alto o bajo.
17. MODELIZACIÓN VHDL DE LAS SEÑALES DE
INICIALIZACIÓN.
• Señales de inicialización síncrona.
• Cuanto se activan la salida del biestable espera la señal de reloj para
tomar el valor correspondiente.
• Pueden ser activas a nivel alto o bajo.
20. REGISTROS DE ALMACENAMIENTO
• Presentan una estructura similar a los flip-flops. La diferencia
radica en que almacenan el estado de un vector de bits en lugar
de un solo bit.
21. DISEÑO DE UNA MÁQUINA DE ESTADOS
• Una Maquina de Estados Finita (FSM) se puede describir en VHDL de varias formas.
• En primer lugar en la sección de declaraciones de la arquitectura, se define un tipo
enumerado en el que se asignan identificadores a cada estado.
• Suele ser recomendable utilizar identificadores ilustrativos para los estados.
• La herramienta de síntesis será la encargada de codificar estos estados. Posteriormente,
en el cuerpo de la arquitectura se define la función de transición de estados (F) y la
función de salida (G) en uno o varios procesos.
• Por lo tanto tenemos:
• Un proceso secuencial que modela los biestables de estado; Por lo tanto que actualiza el estado
(ESTADO).
• Un proceso combinacional que modela las funciones F y G; por lo tanto deriva el siguiente estado
(ESTADO_SIG) y actualiza las salidas (O).
22. EJEMPLO
• Se trata de diseñar una maquina de estados que
active una salida S cuando se detecta la secuencia
…001... en una línea de datos E sincronizada con un
reloj. Este detector de secuencia se puede realizar
con una máquina de Moore de cuatro estados.
• S1: Esperar el l.er Cero de la secuencia.
• S2: Esperar el 2.° Cero de la secuencia.
• S3: Esperar el uno de la secuencia y activar la salida S
cuando llega.