Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Electrónica digital: maquinas de estado con VHDL
1. Ing. Diego Barragán Guerrero
http://www.decom.fee.unicamp.br/~diego/
Máquinas de estado con VHDL
2. Introducción
La sección
combinacional, tiene dos
entradas: pr_state
(estado presente) y la
señal de entrada externa
(input).Además posee
dos salidas: nx_state
(estado siguiente) y
salida externa.
La sección secuencial
tiene tres entradas: clock,
reset y nx_state y una
salida: pr_state.
Si la salida de la máquina
depende no solo del
estado presente sino
también de la entrada
actual, se denomina
máquina de estado de
3. Diseño de la sección inferior (secuencial)
Los FF están en la sección inferior, de tal forma que el reloj
y reset se conectan a ella.
Siendo la sección inferior secuencial, es necesario un
Proceso, en el cual se puede usar cualquier sentencia
secuencial.
Una plantilla típica de diseño de la sección inferior se
muestra a continuación.
Estilo de diseño 1
Reset
asíncrono
Registro
síncrono
4. Diseño de la sección
superior (Combinacional)
El código contiene dos cosas:
a) Asignación a la salida;
b) Establecimiento de estado
siguiente.
Observar que no hay
asignación a señal hecha en
la transición de otra señal, de
modo que no se infieren FF.
Estilo de diseño 1
5. Estilo de diseño 1: Plantilla
Tipo enumerado:
contiene todos los
estados.
Sección
secuencial.
Sección
Combinacion
al.
6. Un contador es un ejemplo de una máquina de Moore, ya
que la salida depende solo del estado presente.
Ejemplo 1: contador BCD.
9. En el primer estilo de diseño, solo el estado presente
(estado_pr) es almacenado.
En este caso, si se usa una máquina de Mealy (la salida
depende de la entrada actual), la salida cambia cuando la
entrada cambia (salida asíncrona).
En muchas aplicaciones, las señales deben ser síncronas, de
modo que la salida debe actualizarse solo cuando existe un
pulso de reloj.
Para hacer una máquina de Mealy síncrona, la salida deber ser
almacenada también.
Estilo de diseño 2
El estilo de diseño 2, usa una señal adicional para contener el valor de la
salida (en la sección superior), pero solo pasa este valor a la salida
cuando un evento de reloj ocurre (sección inferior).
10. Estilo de diseño 2: Plantilla
La asignación de
la salida solo se
ejecuta al pulso
de reloj.
El estilo de diseño 2, usa una señal
adicional para contener el valor de la
salida (en la sección superior), pero
solo pasa este valor a la salida
cuando un evento de reloj ocurre
(sección inferior).
12. Cuando una señal es almacenada, su valor permanece
estático entre dos flancos de reloj. Por lo tanto, si la
entrada (a o b) cambia durante este intervalo, el
cambio no se observará por el circuito.
Estilo de diseño 2: FSM simple.
13. El circuito tiene como entrada una cadena serial de bits
y su salida será 1 cuando la secuencia "111" ocurra. En
caso de solapamiento, esto es, una secuencia 0111110
suceda, la salida debe mantenerse activa por tres ciclos
consecutivos de reloj.
Ejemplo: Detector de secuencia.
15. Ejemplo: Detector de secuencia (TB).
Notar que la salida no depende de la entrada actual. Todas
las asignaciones a q son incondicionales (esto es, no
dependen de d). Por lo tanto, la salida es automáticamente
sincronizada.
In: …111…
Out:
…001…
16. Ejemplo: controlador de semáforo.
Se asume que la frecuencia
de reloj es 60Hz (tomada de
la misma fuente de poder).
18. Para visualizar la salida de forma óptima, se ha
modificado el valor de todas las contantes a 3, excepto
el valor de timeTest, que vale 1. Se espera que el
sistema cambie de estado cada tres ciclos de reloj
cuando está en modo de operación regular, o cada ciclo
de reloj si está en mode Test.
Ejemplo: controlador de semáforo.
19. Se diseñará dos
máquinas de estado,
una que operará
exclusivamente en la
transición positiva del
reloj y otra que operará
exclusivamente en el
flanco negativo. Esto
generará la señal
alternativa out 1 y out2 .
Estas señales serán
tratadas con la
operación and para
obtener la señal
deseada.
Notar que el circuito no
posee entradas
externas (excepto la
señal de reloj), de modo
Ejemplo: generador de funciones.
21. Referencias:
Volnei A. Pedroni. 2004. Circuit Design with
VHDL. MIT Press, Cambridge, MA, USA.
Maxinez, D.G., Alcalá, J. 2003. VHDL: el arte de
programar sistemas digitales. Compañía Editorial
Continental.