contadores lógicos secuenciales

0

Tengo una tarea para crear un contador que cuente de la siguiente manera, dependiendo de la entrada y

si y = 0 - > 0, 6, 3, 2, 1, 0 ...

si y = 1 - > 0, 5, 4, 7, 2, 1, 0 ...

También tiene otra entrada x si x = 0 cuenta (por ejemplo 0,6,3,2,1,0) y si x = 1 Cuenta atrás (0,1,2,3,6,0).

Sé que puedo resolver esto creando una gran tabla con las siguientes columnas

x|y|Q1|Q2|Q3||Q1+|Q2+|Q3+
----------------------------
0|0|0 |0 |0 || 1 | 1 |0
0|0|0 |0 |1 || 0 | 0 |0
0|0|0 |1 |0 || 0 | 0 |1
0|0|0 |1 |1 || 0 | 1 |0

...

¿Pero hay alguna solución más simple (y más elegante)?

Solo puedo usar chanclas JK. Esta es una lógica secuencial, así que no tengo que preocuparme por el voltaje o cosas así ... También si significa algo, usamos HADES para esto

    
pregunta Bojan Trajkovski

1 respuesta

1

El "truco" con los flip-flops JK

Ya que no tenemos una respuesta anterior sobre el diseño de máquinas de estado con chanclas JK ...

Diseñar con flip-flops JK es casi lo mismo que diseñar con flip-flops D (o flip-flops T o cualquier otro tipo de flip-flops). Pero con el flip-flop JK la tabla de excitación es tal que Hay un truco que hace que el manejo de la lógica de transición de estado sea un poco más simple.

Para cualquier diseño de máquina / contador estatal, necesita la tabla de excitación para su vuelta particular flop.

Para los flip flops JK, la tabla de excitación se ve como

Previous State -> Present State    J K
0 -> 0                             0 X
0 -> 1                             1 X
1 -> 0                             X 1
1 -> 1                             X 0

La propiedad especial que vamos a aprovechar es que cuando el estado anterior es 0 , la entrada K no importa, y cuando el estado anterior es 1 , la entrada J es siempre un no importa.

Primero tienes que completar tu tabla. No solo tiene que tener las entradas y el Q s, también necesita todas las entradas J y K :

x|y|Q1|Q2|Q3||Q1+|Q2+|Q3+||J1|K1|J2|K2|J3|K3
--------------------------------------------
0|0|0 |0 |0 || 1 | 1 |0  ||1 |X |...
0|0|0 |0 |1 || 0 | 0 |0  ||0 |X |
0|0|0 |1 |0 || 0 | 0 |1  ||0 |X |
0|0|0 |1 |1 || 0 | 1 |0  ||0 |X |
...

Ahora necesitamos dibujar los 6 mapas K para J1 , K1 , J2 , K2 , J3 y K3 . Si no estuviéramos usando nuestro "truco", necesitaríamos que estos sean mapas de 5 variables ( x , y , Q1 , Q2 y Q3 ).

Pero como a J1 no le importa cuando Q1 es 1 solo necesitamos hacer el mapa para J1 para el caso de que Q1 sea 0. Y, por supuesto, en ese caso sabemos que Q1 es 0, por lo que solo podemos hacer un mapa de variable 4 (con las variables de entrada x , y , Q2 y Q3 ).

    
respondido por el Wandering Logic

Lea otras preguntas en las etiquetas