¿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í.
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.
Sim
el fotón
Sim
yippie
el fotón
next_state
es suficiente.Sim