Diseñe un contador con una secuencia arbitraria

Estoy tratando de diseñar un contador asíncrono con flip-flops JK, con una secuencia arbitraria.

La secuencia es: 0 ,1,10,11, 0 ,5,14,15.

Sé cómo resolver este tipo de problemas, pero en este caso la secuencia repite un número, 0.

Quiero resolver esto como este chico: https://www.youtube.com/watch?v=Zce6NlHuvfs

Pero no sé cómo manejar el problema de la repetición de un número en la secuencia.

¿Alguna idea?

Gracias de antemano.

Hacer un seguimiento del valor anterior es una posible solución.

Respuestas (2)

Si anota la asignación de los estados de conteo 0-7 a las salidas

count             oputput
C2 C1 C0          O3 O2 O1 O0
0  0  0           0  0  0  0    =  0
0  0  1           0  0  0  1    =  1
0  1  0           1  0  1  0    = 10
0  1  1           1  0  1  1    = 11 
1  0  0           0  0  0  0    =  0
1  0  1           0  1  0  1    =  5
1  1  0           1  1  1  0    = 14
1  1  1           1  1  1  1    = 15

Ves que
O0 = C0
O1 = O3 = C1
O2 = (C0 O C1) Y C2

Entonces puede lograr eso simplemente con un contador de 3 bits uno OR y una puerta AND:

esquemático

simular este circuito : esquema creado con CircuitLab

Nota: sin embargo, existe el llamado peligro entre el estado de conteo 5 y 6, es decir, puede haber múltiples flancos antes de que la señal se estabilice en el nuevo estado. Eso no será un problema si no le importan los bordes de salida, solo los niveles.

Esto es bueno. +1!
¿Qué software usas para hacer ese esquema?
@Josedearitea Está usando el editor de esquemas integrado en el sitio. Vea el símbolo de lápiz, diodo, capacitor y resistencia en la parte superior del Editor o presione Ctrl-M mientras está en el Editor.

En lugar de hacer un contador que cuente en una secuencia extraña, deje que el contador cuente normalmente y luego asigne el resultado a través de una tabla de búsqueda. Parece que sus números están limitados al rango de 0-15, por lo que son 4 bits. Eso significa que solo necesita una memoria de 4 bits con direcciones de 4 bits, para un total de 64 bits.

Aún más fácil es hacer todo esto en firmware en un microcontrolador. Genere el conteo incrementando, luego use los 4 bits bajos para indexar en una tabla.