Yaquíestálarespuesta,¿puedesexplicarmeespecíficamente?RealmentenosécómodibujarestegráficográficoFSM.
Al igual que escribir programas de computadora, una buena selección descriptiva de nombres de variables ayuda. Nadie usaría 'a' como nombre de variable en el código en estos días (espero, o si lo hicieran, no esperaría entenderlo un mes después), tenderían a usar 'cars_per_hour' o 'creation_date', algo significativo.
Igualmente para máquinas de estado. Es mucho más fácil "jugar en la computadora" si tenemos etiquetas de estado significativas.
La tarea es detectar tres 0s consecutivos. ¿Como hacemos eso? Vemos un solo cero tres veces, y recordamos dónde estamos en el proceso. ¿Cómo recordamos? Para esta pregunta se nos pide que utilicemos una máquina de estado.
Tengamos un estado 'no_zeroes_seen_yet'. Comenzamos en ese estado y vamos a él cada vez que vemos un '1'. Otro estado sería 'one_zero_seen'. Nos movemos a ese estado si estamos en 'no_zeroes_seen_yet' Y vemos un '0'. Otro estado sería 'two_zeroes_seen'. ¿Cómo llegamos allí?
Vuelva a etiquetar los estados 'a', 'b' y 'c' de la respuesta sugerida con estas etiquetas más significativas, y vea si eso ayuda.
Me doy cuenta de que la respuesta salta para codificar estos tres estados con bits binarios A y B, lo que creo que es un poco prematuro. Nunca confundiría estos pasos, primero obteniendo un diagrama FSM lógico puro y luego manejando la implementación más tarde (¡igual que la optimización prematura milita contra el código claro!).
FWIW, una implementación 'única' es mucho más fácil de manejar, se asigna mejor a VHDL y al código, pero usa más D-flops. Una vez más, se plantean argumentos similares que contrastan claridad y 'eficiencia' a favor y en contra de los compiladores.
¿Tenemos un estado 'three_zeroes_seen' o confiamos en 'two_zeroes_seen' Y otro '0' para que signifique lo mismo? Esa es la diferencia entre los estilos de Mealy y Moore, es importante saber qué estilo se requiere. La respuesta sugerida parece asumir Mealy sin comentarios. Mealy tiende a ser más pequeña y más 'eficiente'. Intenta leer sobre 'Mealy machine' en wikipedia
Al volver a leer la pregunta, la palabra 'mínima' te indica que uses una máquina Mealy con código binario, aunque aún así lo diseñaría primero de comportamiento y luego la implementación.
En el diagrama de estado (x / z), las transiciones de estado ocurren desde x siendo 0 o 1. Está intentando registrar 3 0 consecutivos Si lo haces, saca un 1, de lo contrario, 0.
0 = bueno, estado de avance, 1 = malo, reinicio. Comience en a y siga las flechas. Dos posibles estados de entrada.
Lea otras preguntas en las etiquetas embedded flipflop electrical