Las salidas Q dan el conteo / estado actual, las entradas J y K indican lo que deben ser para el siguiente conteo.
Lo siguiente sería un contador simple, como la forma en que lo implementó (pero sin la función de retención):
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 1 1 1
0 0 1 0 0 0 0 0 0 0 1 1
...
1 1 0 1 0 0 0 0 1 1 1 1 "count 13"
--------------------------------------------------------------
Para implementar el reinicio, puede cambiar las entradas J, K en el conteo 13 de esta manera:
1 1 0 1 0 1 0 1 0 1 0 1 (to set all Q's to 0 next state)
--------------------------------------------------------------
Alternativamente,
1 1 0 1 x 1 x 1 0 x x 1
conociendo las salidas Q existentes, solo necesita forzar ciertos J's y K's para obtener todos los 0 estados siguientes, mientras que deja los otros J's y K's como no importa minimizar la lógica.
Compare esto con la línea etiquetada "conteo 13", los únicos cambios necesarios desde el contador simple son 3 bits, J1, K2, K3.
Para implementar el contador de 3 a 13, haga lo mismo, excepto organizar las entradas J y K en el conteo 13, de manera que el siguiente estado le dé 3.
Respuesta a comentar y corregir errores:
La modificación azul tiene el propósito de:
En el conteo 13, obligue a las tres líneas J1, K2, K3 a desviarse de la secuencia de conteo normal que son necesarias para dar el conteo / estado deseado en el siguiente reloj.
No estoy seguro de que te des cuenta de esto, la puerta Y de 3 entradas no decodifica solo la cuenta 13, sino que también se cumple en la cuenta 15. Pero funciona bien como está porque nunca se alcanzará el conteo 15 durante el funcionamiento normal.