Diseño de contador síncrono de 3 bits d flip flop

¿Alguna idea de cómo haría para diseñar un contador síncrono de 3 bits con respecto a tener los siguientes estados?

111->001->110->101->100->000->010->111

Dibujé una tabla de estado actual y estado siguiente, etc. No estoy muy seguro de adónde ir desde aquí, he diseñado en logismo un esquema de inicio con CLK, CLR y PRE, con flip flops de tipo 3D, ya que estos son los Estoy obligado a usar, pero no estoy seguro de adónde ir desde aquí.

Respuestas (1)

La clave es tratar cada bit individualmente.

Por ejemplo, para el bit de orden bajo, llamémoslo next_state[0].

state     | next_state[0]
---------------
   000    | 0
   001    | 0
   010    | 1
   011    | X
   100    | 0
   101    | 0
   110    | 0
   111    | 1

para que puedas escribir

next_state[0] = state[0] & state[1] & state[2] | ~state[0] & state[1] & ~state[2]

Si está construyendo esto con lógica discreta, podría simplificar esto para

next_state[0] = state[1] & (state[0] & state[2] | ~state[0] & ~state[2])

Y tiene una ecuación que puede usar para impulsar el flip-flop que generará la siguiente condición para el bit bajo de la variable de estado.

Encontrar las ecuaciones para los otros dos bits de estado funciona de la misma manera.

debo estar perdiendo algo, ¿cómo sabes 010 = 1? Estoy perdido en cuanto a cómo conseguiste esa mesa.
Según su pregunta, cuando el estado actual es 010, el siguiente estado es 111, lo que significa que el bit bajo es 1.
¿Puedo usar mapas de 3 k para cada estado diferente?
Sí, Karnaugh es el camino a seguir aquí. O un pequeño microcontrolador.
@Sim, un k-map para cada bit next_statees suficiente.
sí, eso es lo que quiero decir, 1 para cada uno, no te preocupes, lo tengo gracias por la ayuda