VHDL en la definición de Máquinas de estado finito
Las máquinas de estado finito (mef) constituyen uno de los ejes fundamentales del desarrollo de los sistemas digitales. Establecen de forma determinista la evolución de un sistema a través de la especificación de un conjunto de estados y las transiciones entre ellos debidas a cambios en las entradas.
Por consiguiente, la especificación de las mef viene determinada por las funciones f de transición de estados y g para las salidas
s(t+1) = f(s(t), x(t))
z(t+1) = g(s(t), x(t))
donde s(t) corresponde al estado actual, s(t+1) el estado futuro, z(t+1) la salida del circuito y x(t) las entradas en el instante actual
La figura siguiente muestra la relación que se establece entre entradas, estados y salidas. Los estados siguientes son calculados a partir del estado actual y las entradas. Las salidas pueden ser sólo dependientes del estado actual -máquina de Moore (como en la figura) o también depender de las entradas -máquina de Mealy-
A nivel de circuito, CC significa que el cálculo de las funciones se realiza a través de circuitería combinacional y el retardo delta representa a los retardos asociados al circuito que, cuando se trata de circuitos secuenciales síncronos corresponde a los flip-flops. La siguiente figura muestra un esquema del interior de un circuito secuencial
Formas comunes de describir la mef son:
- Mediante un grafo de comportamiento
- Mediante descripción por tabla de verdad
Entradas |
||
Estado actual |
x |
y |
si |
sj/a |
si/b |
sj |
si/a |
sj/b |
Máquinas de Mealy / Moore
La forma como se especifiquen las salidas significará que estemos trabajando en una máquina tipo Mealy o tipo Moore. Así, en el siguiente ejemplo, las salida a corresponde a la salida típica de una máquina tipo Moore, mientras que b es una salida típica de una máquina tipo Mealy
![]() |
![]() |
Especificación en VHDL
La descripción VHDL de un circuito secuencial contempla los mismos bloques de un desarrollo clásico de mef:
- Un bloque combinacional de entrada responsable del cálculo de las entradas a presentar ante el bloque de memoria para el cálculo del próximo estado
- Un bloque combinacional de salida que, ante un estado actual y el conjunto de entradas, obtiene las salidas del circuito
- Un bloque de memoria, constituido por flip-flops, responsable de la secuenciación del circuito
Las clásicas aproximaciones de mef de Mealy y mef de Moore están contempladas en la especificación de la mef
Para la implementación de la mef puede contemplarse una descripción VHDL en uno o dos procesos. También puede especificarse una implementación con salidas registradas