Máquinas de estados finita (FSM)

Máquinas de estado (FSM)
Definición
Una máquina de estados finita (FSM) es un modelo usado para
diseñar circuitos lógicos secuenciales.
No puede estar en más de un estado por vez.
El estado en el que se encuentra se denomina estado actual.
El cambio de un estado a otro se denomina transición, y se
dispara con el reloj del circuito
Son muy útiles en el diseño de protocolos de comunicación.
Existen dos tipos de máquinas de estado: Moore y Mealy
Características
Estructura de una máquina de Moore
Flip-Flops
de estado
Lógica de
salida
Lógica de
próximo estado
Entradas
Salidas
Estado actual
Las salidas dependen sólo del estado.
Máquinas de estado (FSM)
Estructura de una máquina de Mealy
Flip-Flops
de estado
Lógica de
salida
Lógica de
próximo estado
Entradas
Salidas
Estado actual
Las salidas dependen del estado y de las entradas.
Máquinas de estado (FSM)
Codificación de estados
Existen diferentes tipos de codificación de estados
Binaria
One Hot
Gray
etc
La codificación de estados puede hacerse manualmente
o de manera automática
– En el mismo código de VHDL se pueden establecer
atributos que indican que tipo de codificación se quiere
– Se puede indicar a la herramienta de síntesis como
codificar los estados.
Máquinas de estado (FSM)
Posibles codificaciones para 8 estados
Máquinas de estado (FSM)
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
Paso 1: Construir el diagrama de estados
(Gp:) Transición del estado A al B
Entrada 1 / Salida 0
Estados
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
(Gp:) Entradas
(Gp:) Estado actual
(Gp:) Estado siguiente / Salida
Paso 2: Construir la tabla de estados
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
Paso 3: Codificar los estados
A = 00
B = 01
C = 10
* Nota: cada estado estará representado por 2 bits Q1 Q0
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
Paso 4: Incluir la codificación en la tabla y calcular las funciones de
excitación y de salida
(Gp:) E
(Gp:) Q1Q0
D0
D0 = E
Cálculo de la función de excitación del flip-flop 0
Entradas
Estado actual
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
Paso 4: Incluir la codificación en la tabla y calcular las funciones de
excitación y de salida
Cálculo de la función de excitación del flip-flop 1
(Gp:) E
(Gp:) Q1Q0
D1
D1 = not(E) and Q0
Entradas
Estado actual
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
Paso 4: Incluir la codificación en la tabla y calcular las funciones de
excitación y de salida
Cálculo de la función de salida
(Gp:) E
(Gp:) Q1Q0
Y
Y = E and Q1
Entradas
Estado actual
Diseño e implementación de un detector de la
secuencia “101” utilizando flip-flops D
Máquinas de estado (FSM)
Paso 5: Dibujar el circuito
E
Y
FFD0
FFD1
Repetimos el ejercicio pero esta vez describimos en VHDL el diagrama de estados en lugar de realizar el diseño a nivel compuertas
Máquinas de estado (FSM)
Diseñaremos una máquina de Mealy y otra de Moore
Diseño de una máquina de Mealy: Detector de “101”
Máquinas de estado (FSM)
Diseño de una máquina de Mealy: Detector de “101”
Consiste en 3 pasos:
Definición de los estados
Descripción de los registros de estado
Descripción de los bloques combinacionales de próximo
estado y de salida
Máquinas de estado (FSM)
Paso 1: Definición de los estados
architecture det_arq of detector is
type tipo_estado is (A, B, C);
signal estado_actual, estado_siguiente: tipo_estado;
begin
…
end;
Diseño de una máquina de Mealy: Detector de “101”
Máquinas de estado (FSM)
Página siguiente ![]() |