Você está na página 1de 2

PRACTICA DE LABORATORIO

MAQUINA DE ESTADOS FINITOS


El diseño de máquinas de estado se puede realizar de una forma muy simple en VHDL, y
constituye un claro ejemplo de la potencia de los lenguajes de descripción hardware frente a
los métodos tradicionales de diseño.

La metodología tradicional comienza por construir un diagrama de estados, de la que se


deriva una tabla de estados. Sobre esta tabla se pueden agrupar estados equivalentes, si se da
el caso. A continuación se asignan los estados y se pasa a una tabla de excitación de las que se
obtienen las ecuaciones de estados de los estados siguientes y de las salidas según el tipo de
biestable (Flip Flop) elegido para el diseño del sistema secuencial.

Se trata de un método algorítmico y por tanto susceptible de ser realizado por una
herramienta de software en VHDL. El código VHDL describe la tabla de estados o el diagrama
de estados y es la herramienta de síntesis quien lleva a cabo todo el proceso de
implementación de puertas lógicas y biestables.

En general, la máquinas de estado se clasifican como máquina de Moore o de Mealy. Las


primeras se caracterizan porque las salidas dependen únicamente del estado, en cambio las
de Mealy dependen del estado y de las entradas y se diferencia en la forma de expresar las
señales de salida.

En VHDL no es necesario resolver ninguna tabla de estados. Las transiciones de estados se


pueden expresar con una estructura combinacional del tipo IF-THEN-ELSE ó lo que es mas
habitual con una estructura CASE-WHEN. Ambas deben ser utilizadas en un proceso.

El diagrama de bloques resultante para los diseños que se realicen, basados en máquinas de
Moore, se muestra en la siguiente figura.

Los estados se definen por una enumeración que agrupa todos los estados, y se declaran dos
señales según ese tipo: una que corresponde al estado actual y otra corresponde al estado
siguiente.

TYPE estado IS (reposo, decide, escribe, lee);


SIGNAL estado_actual, estado_siguiente: estado
Aunque existen diversos estilos para describir máquinas de estados, utilizaremos el basado en
dos procesos:

1. Proceso combinacional. Describe los dos bloques combinacionales de la máquina de


estados, utilizando la sentencia condicional CASE-WHEN
a. Bloque combinacional de las entradas: Lógica combinacional que va desde las
entradas del circuito –declaradas en la entidad- hasta las entradas de los
biestables que almacenan el estado.
b. Bloque combinacional de las salidas: Lógica combinacional que va desde las
salidas de los biestables hasta las salidas del circuito –declaradas en la entidad-.
2. Proceso secuencial. Describe las transiciones síncronas de estados con el flanco de
reloj. Este bloque es elo único que recibe las entradas de reset y reloj.

DESCRIPCIÓN DE LA PRÁCTICA DE LABORATORIO


Utilizando lenguaje VHDL, realizar una máquina de Moore consistente en el control de una
barrera (una salida) de un paso nivel de una vía ferroviaria. Las entradas son dos sensores que
están antes de la barrera “Sensor 0” y el otro sensor ubicado después de la barrera “Sensor
1”. La salida del sistema estará en “0” en el estado de reposo (Barrera abierta) y en “1” en los
demás estados siguientes. El diagrama de estados presenta bifurcaciones que dependen del
largo del tren, puede darse el caso que el tren active los dos sensores simultáneamente o
darse el caso que el tren sea corto que pasa entre los dos sensores sin activarlos como en el
reposo. La siguiente figura presenta el diagrama de estados.