Máquina de estados finitos de 4 bits con 6 estados y restablecimiento síncrono usando D Flip-Flops

Recientemente comencé a estudiar Electrónica Digital y me he topado con una pared tratando de descubrir cómo diseñar FSM. Por el momento, estoy intentando diseñar el FSM en el título que genera los siguientes estados: 1101->1011->0111->0101->0011->0010. ¿Tengo razón al decir que esta es una máquina Moore y que habrá 4 DFF en este circuito? ¿Y cuáles son las entradas para el circuito?

Ahora necesito crear los mapas de Karnaugh y aquí es donde realmente estoy atascado. Entiendo los mapas K y puedo crearlos, pero no entiendo cómo se determina cuántos mapas K se necesitan y qué va en el eje x y el eje y de los mapas K al diseñar un FSM.

Esto es lo que he encontrado hasta ahora:

ingrese la descripción de la imagen aquí

EDITAR

Mapa de Karnaugh de 3 bits:

ingrese la descripción de la imagen aquí

Un problema subespecificado. No se indican entradas, por lo que presumiblemente hace una transición de estado por reloj. Entonces, ¿qué hace cuando llega 0010? ¿Detener? ¿Y cómo llega 1101en primer lugar? Puede usar una entrada Restablecer para llegar allí y comenzar las transiciones cuando Restablecer = 0. Pero también sobreespecificado: para 6 estados, solo necesita 3 FF, pero este ejemplo aparentemente quiere que use uno adicional.
Sí, hace una transición por ciclo de reloj y sí, necesita un reinicio síncrono, pero tampoco sé cómo implementarlo.
En realidad, con los mapas de Karnaugh no importa qué entradas son las filas y cuáles son las columnas. Simplemente distribuye sus diversas entradas entre ellos. Para las máquinas de estado, tiene sentido que coloque sus registros de estado en una dirección (por ejemplo, filas) y otras entradas en la otra dirección (por ejemplo, columnas). Necesitará un mapa para cada registro de máquina de estado.
Entonces, ¿el circuito necesita 3 DFF y, por lo tanto, 3 mapas de Karnaugh? ¿Qué utilizo para crear cada mapa de Karnaugh o, en otras palabras, en qué se diferencia cada mapa de Karnaugh de los demás?
Bueno, cada registro de estado dependerá del estado actual (es decir, todos los registros de estado) y de cualquier otra entrada (que incluye la señal de reinicio). Es útil dibujar primero un diagrama de estado .
Hice el diagrama de estado y la siguiente tabla de estado, vea mi edición donde los agregué. ¿Todo eso se ve bien hasta ahora? ¿Cómo uso lo que he hecho para derivar los mapas K?
Ok, pero ¿qué hace que los estados cambien? ¿Es solo un contador de ejecución libre o hay otras cosas? Por ejemplo, su diagrama de estado no incluye la señal de reinicio, lo que llevaría cualquier estado al principio (por lo general, esto se muestra con una flecha que viene de la nada y va a su estado predeterminado que indica reinicio).
He agregado la señal de reinicio a mi diagrama. Todos los detalles del problema son: "Usando flip-flops D, diseñe una máquina de estado Finte de 4 bits con reinicio síncrono que genere la siguiente secuencia {1101, 1011, 0111, 0101, 0011, 0010}".

Respuestas (1)

Según su diagrama de estado y su explicación, tiene todo lo que necesita allí.

Para cada registro (tiene 4), debe crear un mapa de Karnaugh que determine qué valor se registrará en ese registro en cada ciclo de reloj.

El siguiente valor para cada registro de estado dependerá del estado actual en su conjunto (es decir, todos los registros de estado) y cualquier otra entrada (en su caso, solo restablecer). Así que construye tu Mapa de Karnaugh usando esas entradas.

Cada uno de sus estados tiene un valor de 4 bits (por ejemplo, su estado inicial es 1101). Por lo tanto, necesitará 4 registros para mantener el valor que indica el estado actual. Entonces, por ejemplo, llamemos a los registros de su estado ( S 3 , S 2 , S 1 , S 0 ) , donde el estado de partida sería decir S 3 = 1 , S 2 = 1 , S 1 = 0 , y S 0 = 1 . También llamemos a la señal de reinicio R .

Tendrás mapas que se parecen a:

S 0 R 0 0 0 0 1 1 1 1 S 3 0 0 1 1 1 1 0 0 S 2 0 1 1 0 0 1 1 0 S 0 S 1 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1

He sido muy amable y he rellenado el mapa durante S 0 para usted en función de su próxima tabla de estado. Te dejaré hacer y completar los otros tres mapas.

Una vez que tenga sus cuatro mapas, sabrá la lógica de cada uno de los registros estatales.

Gracias por la ayuda. ¿Cómo determinaste que debe haber 4 registros? Y usted dice que necesito crear un mapa K para cada registro. ¿Significa esto que necesito completar el mapa anterior 4 veces por separado? Si es así, ¿en qué se diferencia cada uno de estos 4 mapas?
@KOB Sus estados son números de 4 bits (por ejemplo, 1101), por lo que necesitará un registro de estado de 4 bits (es decir, 4 registros). Sí, deberá completar lo anterior cuatro veces, una para S 0 , de una vez por S 1 , etcétera.
Ok, todo esto está empezando a tener sentido. Veré cómo me va ahora. Gracias.
Para el ejemplo anterior, ¿quiso decir que el estado inicial sería "S0=1, S1=0, S2=1, S3=1?" Pensé que el estado inicial debería ser S0 = 1, S1 = 1, S2 = 0, S3 = 1 como dijiste "por ejemplo, tu estado inicial es 1101".
@TomCarpenter Desafortunadamente, ayer no entendí bien su ejemplo de mapa K y hoy volví al problema. Realmente no puedo ver cómo determinaste lo que se incluye en cada venta del mapa K, o en otras palabras, no puedo entender qué representa cada uno de los mapas 4K.
@TomCarpenter, por ejemplo, si observa la primera columna y la segunda fila del mapa K que completó, ha puesto uno aquí, ¿cómo determinó esto? Esta celda en términos de S3, S2, S1 y S0 representa el número 0001, entonces, ¿qué representa el 1 que ha ingresado en esta celda?
@KOB primera columna, la segunda fila es "0010", que es un estado en su tabla. Si encuentra eso en el lado "Estado actual" de la tabla y luego mira hacia el lado "Próximo estado", verá que el for S 0 el nuevo valor es 1. Modifiqué la respuesta para tratar de aclarar el orden de los bits.
@TomCarpenter Ok, he completado todos los mapas de 4 K y ahora estoy agrupando los 1. Vea mi edición donde agregué el tercer mapa K. ¿Todo esto parece estar bien? No estoy muy seguro de si estoy agrupando las celdas vacías con la "X" correctamente. Además, para las últimas 4 columnas, ¿agrupo todos estos 1 en un solo grupo de 16 celdas?
@KOB Tuve que ir y repasar mis K Maps por un momento allí. Aparentemente, la forma más fácil de hacerlo es dividir el mapa en un par de mapas 4x4, visualizarlos uno detrás del otro y luego resolverlo en 3D. Entonces para el S 2 map hay un grupo 4x4x1, un grupo 4x2x2, dos grupos 2x2x2. Esto podría ayudar.
@TomCarpenter ¡Gracias por toda su ayuda! Ok, ya tengo todos los K-maps completos y agrupados. ¿Cómo escribo ahora estos grupos en términos del siguiente bit de salida de cada K-map? Por ejemplo, si tuviéramos que mirar el K-map sin terminar que agregué arriba, ¿cómo se escribirían estos tres grupos?
@KOB como cualquier otro K-map. Cree una expresión para la salida de cada mapa en términos de sus entradas.