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

Laboratorio máquina de estados finitos en VHDL

Embed Size (px)

Citation preview

Page 1: Laboratorio máquina de estados finitos en VHDL

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

Page 2: Laboratorio máquina de estados finitos en VHDL

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.