Diseñar un contador con una secuencia arbitraria

3

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 se repite un número, 0.

Quiero resolver esto como este tipo: enlace

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

¿Alguna idea?

Gracias de antemano.

    
pregunta Jose de arimatea

2 respuestas

6

Si anota la asignación de los estados de recuento 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 eso
O0 = C0
O1 = O3 = C1
O2 = (C0 O C1) Y C2

Para que pueda lograrlo simplemente con un contador de 3 bits, uno OR y una puerta AND:

simular este circuito : esquema creado usando CircuitLab

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

    
respondido por el Curd
-1

En lugar de hacer un contador que cuente en una secuencia extraña, deje que el contador cuente normalmente, 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, entonces 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 la cuenta incrementando, luego use los 4 bits bajos para indexar en una tabla.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas