diseño digital basado en máquina de estado finito

0

¿Cómo implemento un diseño digital específico utilizando el modelo mealy y luego implemento el mismo diseño nuevamente utilizando el modelo de Moore? ¿Alguien puede proporcionar pasos detallados? Gracias.

Actualización:

En la clase de lógica digital aprendimos cuál es la diferencia entre las máquinas de Mealy y Moore teóricamente y en el análisis, pero no sé la diferencia entre ellas en el proceso de diseño.

Los pasos que aprendimos para el diseño de circuitos secuenciales:

  1. Crear una tabla de estado que muestre las combinaciones de estado actual, entrada, estado siguiente y salida.
  2. Codificar el estado binario en la tabla y determinar el número de flip flops.
  3. Use la tabla de excitación para determinar los valores de los flip flops necesarios para generar el siguiente estado a partir del estado actual.
  4. Encuentre la expresión booleana para las entradas y salidas del flip flop.
  5. Construye el circuito.

Por estos pasos, no sé cómo especificar el diseño que se basará en Mealy o Moore.

    
pregunta 3bdalla

3 respuestas

1

En su forma más simple, para cada máquina de estado tiene tres variables:

  1. Entradas: dirigidas a la máquina de estado. No está controlado directamente por el diseño FSM.
  2. Estado: información interna sobre el estado actual en que se encuentra la máquina.
  3. Salidas: expulsadas de la máquina de estado.

El diseño de la máquina de estado sobre cómo define el estado y las salidas en función de una serie de entradas a lo largo del tiempo. El estado está registrado, por lo que en cada ciclo, está intentando averiguar el estado next . La salida es combinatoria, por lo que debe averiguar la salida actual .

Tanto para Mealy como para Moore, el siguiente estado está determinado por alguna combinación de las entradas, el estado actual y la salida de corriente. Así que es un montón de cosas como:

if (current_state == 5) 
    next_state = 6;
else if (current_state == 4 && input[3] == 1) 
    next_state = 5;
etc...

La salida normalmente no es secuencial, sino combinatoria. Y lo que se usa para calcular esta salida define si se trata de Mealy o Moore.

El caso más general es el Mealy FSM que calcula la salida con alguna combinación (es decir, Y / O / NO, comparadores, etc.) de estado de entrada y (actual).

De nuevo, cosas como:

if (current_state == 5) 
    output = 1;
else if (current_state == 4)
    if (input[3] == 1) 
        output = 2;
    else
        output = 3;
etc..

Pero si nos limitamos a calcular solo según el estado, se trata de un FSM de Moore. En este caso, se vería como:

if (current_state == 5) 
    output = 1;
else if (current_state == 4)
    output = 2;
else if (current_state == 2 || current_state == 3)
    output = 3;
etc..

Eso es realmente. Nada más. Y para colmo, puedes convertir una forma a una forma equivalente de la otra.

Una pregunta que a menudo no se pregunta es "¿Por qué los separamos en dos clases y les damos nombres? ¿Por qué es tan importante?"

La respuesta es porque cuando intenta crear FSM en circuitos prácticos reales, encontrará que generalmente puede obtener un mejor rendimiento de una máquina Moore. (Por lo general, se pueden ejecutar en frecuencias más altas). Sin embargo, para muchas personas, la intuición les lleva a pensar acerca de los problemas de la máquina de estado más de cerca al modelo Mealy.

Al clasificarlos, podemos aprender a pensar en los problemas de las máquinas de estado en ambos modelos. Esto le permite elegir el modelo correcto para el problema que está tratando de resolver. Los detalles sobre por qué Moore se ejecuta más rápido y las concesiones entre cuándo elegir los dos diseños vienen con experiencia y conocimiento sobre diseño digital.

    
respondido por el caveman
1

Además de la respuesta de cavernícola. @caveman: no encontré estas imágenes con etiquetas en inglés, tal vez tengas una fuente y puedas incluirlas en tu respuesta :)

Aquí hay dos imágenes que describen el diseño de los autómatas more y mealy:

Moore automatizar:

Moore http: //www.rz.e-technik .fh-kiel.de / ~ dispert / digital / digital6 / img00009.gif

VN1 es una función de:
- Entradas (externas) \ $ x_i \ $ y
- Entradas (internas) / loopback normalmente llamadas \ $ z_i \ $
Esta función calcula las transiciones de estado / estado siguiente.

Speicher (en: Memory)
es un conjunto de flip flops, que almacena el estado actual \ $ z_i \ $. Los flip flops de retardo (D-FF) son típicos de este bloque.

VN2 es una función de:
- estado actual \ $ z_i \ $,
que genera las señales de salida requeridas. En la mayoría de los casos, la codificación del estado elegido es equivalente a la codificación de salida, por lo que VN2 implementa la función de "identidad".

Otro ejemplo:
VN1 implementa un contador módulo 16 (contando de 0 a 15). Utiliza 4 bits y una codificación de estado binario. La salida requerida es un control de pantalla de 7 bits de 7 segmentos.

En este caso, VN2 implementaría la función de decodificador BCD desde el código binario interno de 4 bits a la codificación de 7 bits 7 seg.

Autómatasharinosos:

Mealy http: //www.rz.e-technik .fh-kiel.de / ~ dispert / digital / digital6 / img00010.gif

Como puede ver, la imagen tiene una conexión adicional de las entradas \ $ x_i \ $ a la función VN2.

VN2 es una función de:
- estado actual \ $ z_i \ $ y
- Entradas (externas) \ $ x_i \ $ que genera las señales de salida requeridas.

Pros:
- generación de salida más rápida
- a veces menos estados

Contras:
- Las salidas no están desacopladas de las entradas. - = > largo camino crítico
- = > reduce la frecuencia máxima del circuito (\ $ F_ {max} \ $)
- el encadenamiento de Mealy automatiza puede reducir \ $ F_ {max} \ $ de 200 MHz a 10 kHz

Conclusiones:

  1. Cada automatización de Moore es también una automatización de Mealy
  2. No es posible transformar cada automatización mediocre en una automatización de Moore.
respondido por el Paebbels
0

Una máquina Mealy tiene salidas que dependen del estado y la entrada (el FSM tiene la salida escrita en los bordes) mientras que una máquina Moore tiene salidas que dependen solo del estado (la FSM tiene la salida escrita en el mismo estado). / p>

La única diferencia real en las máquinas Mealy y Moore es cómo se completan las salidas. Aparte de eso, se comporta igual. Recuerde desde la máquina de Moore, mire el estado actual, luego verifique cuál es la salida del FSM y luego copie los bits de salida para cada aparición de ese estado. Para implementar crear una tabla de transición de estado, decida cuántos flip flops necesita, use la tabla de excitación de flip flop para completar el resto del cuadro, implemente el circuito usando una ROM.

    
respondido por el dDebug

Lea otras preguntas en las etiquetas