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 |