¿Cómo se determinan Q y Q 'la primera vez en un flip flop JK?

Dec 01 2020

Mi experiencia es en Ciencias de la Computación, y esta es la primera vez que publico en electrónica SE. Este es un diagrama de circuito del flip flop JK.

No entiendo cómo funciona al principio, cuando el circuito se enciende por primera vez. Según tengo entendido, Q y Q 'aún no tienen un valor, entonces, ¿cómo procede el circuito? Estaba leyendo de este sitio web . Probé tres sitios web más, pero no encontré la explicación.

Respuestas

12 hacktastical Dec 01 2020 at 12:41

El flop JK puede encenderse en cualquier estado. Con puertas perfectamente combinadas, las probabilidades serían 50-50 para cada estado. Depende del resto del sistema inicializar a un estado deseado conocido o no preocuparse por él. Lo mismo ocurre con un flop D.

Es lo mismo que tener una variable no inicializada en un programa. Hasta que se establezca la variable, no se conocen los valores que dependan de ella (incluido él mismo).

La simulación de hardware de este flop se mostraría como un estado 'X' hasta que haya marcado un 0 o un 1. De lo contrario, permanecerá en 'X' si tanto J como K son 0 (mantener) o 1 (alternar).

En el hardware real (como el software), pueden suceder cosas desconocidas dependiendo de cómo se utilice la salida de estado desconocido.

Una variante de este flop tiene entradas de activación y desactivación directas para forzar un estado inicial con señales independientes (p. Ej., Reinicio). En ese caso, se puede definir un comportamiento de inicio.

MÁS: el diagrama lógico que se muestra para el JK es una mierda. Esto es en realidad un pestillo JK con compuerta , y tiene un peligro cuando las entradas J y K son '1' y el reloj está alto: se convierte en un oscilador de anillo debido al problema de la 'carrera alrededor'.

Desafortunadamente, si bien el artículo vinculado analiza esto, da una respuesta poco convincente sobre el uso de un pulso de reloj muy estrecho para evitar el problema de la "carrera alrededor". Esto es enormemente engañoso. Los flops JK basados ​​en circuitos integrados usan un par de pestillos conectados como 2 etapas ("maestro-esclavo" o "disparados por el borde") y no tienen el problema de la carrera.

Otra queja. El diagrama lógico proporcionado para el 74xx73 tipo JK no solo está incompleto (no muestra set / reset), es incorrecto (74xx73 usa el diseño "maestro-esclavo" de 2 pestillos, no pestillo con compuerta). Dejé una nota para el autor de la página para que lo corrijan.

Esta respuesta analiza el problema del pestillo de puerta JK en detalle. Pregunta SR FlipFlop

Y aquí: pestillo JK, ¿posible error de Ben Eater?

10 JohnDoty Dec 02 2020 at 00:08

Cuando se enciende por primera vez, esto no se puede entender como un circuito digital. Para el circuito físico real, las entradas y salidas pueden estar entre 1 y 0, o incluso más . Parte del diseño de primitivas lógicas es ocultar esto al diseño de nivel superior, pero es una "abstracción con fugas". Considere el siguiente ejemplo sencillo:

simular este circuito : esquema creado con CircuitLab

Ahora, claramente, como circuito digital, si Out1es 0, Out2es 1, o viceversa, para siempre. Entonces, ¿qué sucede en el encendido?

Imagínese que en el encendido, ambos Out1y Out2son 0. En ese estado, Not1y Not2dirigirá sus salidas hacia 1. Pero en algún punto intermedio 0y 1, cambiarán, conduciendo de regreso hacia 0. Ahora, el circuito nunca se construye en perfecto equilibrio y el ruido térmico también está presente, influyendo aleatoriamente en este proceso. Entonces, uno de los dos inversores cambia la polaridad de salida antes que el otro y gana la carrera 1. Eso lleva al otro a cero. El circuito puede moverse brevemente, sin comportarse como una buena lógica booleana, pero rápidamente se instala en un estado lógico bien definido. Con un circuito real, generalmente se obtiene un comportamiento aleatorio sesgado: un estado se favorece sobre el otro, pero hay algo de aleatoriedad.

2 ShashankVM Dec 01 2020 at 16:15

Q y Q 'todavía no tienen un valor, entonces, ¿cómo avanza el circuito?

Eso es correcto. No hay forma de saber cómo se desarrollaría el circuito.

Para solucionar este problema, podemos usar una entrada RESET o PRESET asíncrona o síncrona para establecer la salida en un estado conocido . Una entrada asíncrona no depende del reloj, pero una entrada síncrona depende del reloj.

Aquí hay un circuito de referencia para un Flip-Flop JK maestro-esclavo con reinicio asíncrono y entradas configuradas.

Flip-Flop JK con RESET asincrónico y entrada SET

simular este circuito : esquema creado con MultisimLive

Este es el circuito de un Flip-Flop JK con un RESET y un PRESET asincrónico. A HIGH en una entrada RESET asíncrona establece Q en LOWy Q 'en HIGH, y esta operación es independiente del reloj. De manera similar, a HIGHen una entrada PRESET asíncrona establece Q en HIGHy Q 'en LOW.

Trabajando:

Cuando la entrada RESET es HIGH, la salida de la puerta NOT (U11) será LOW. La salida de la puerta NAND (U12) se convertirá en HIGHuna de las entradas LOW. Esto hará que la salida de la puerta NAND (U13) Q se establezca en LOW. Del mismo modo, se pueden analizar otros casos y se deja como ejercicio al lector.

Nota:

El comportamiento no está definido para el caso en el que tanto PRESET como RESET lo están HIGH, ya que no está permitido (y no tiene sentido).

Otras lecturas

La sección 2 de este artículo de Clifford Cummings, Don Mills y Steve Golson es particularmente relevante, así que la cito aquí.

Para los ASIC individuales, el propósito principal de un reinicio es forzar el diseño del ASIC a un estado conocido para la simulación. Una vez construido el ASIC, el sistema, la aplicación del ASIC y el diseño del ASIC determinan la necesidad de reiniciar el ASIC. Por ejemplo, muchos ASIC de comunicación de ruta de datos están diseñados para sincronizarse con un flujo de datos de entrada, procesar los datos y luego enviarlos. Si alguna vez se pierde la sincronización, el ASIC realiza una rutina para volver a adquirir la sincronización. Si este tipo de ASIC está diseñado correctamente, de modo que todos los estados no utilizados apunten al estado de "comenzar a adquirir sincronización", puede funcionar correctamente en un sistema sin tener que restablecerlo. Se requeriría un reinicio del sistema en el encendido para tal ASIC si las máquinas de estado en el ASIC aprovecharan la reducción lógica de "no importa" durante la fase de síntesis.

Creemos que, en general, cada flip-flop en un ASIC debe poder reiniciarse, sea o no requerido por el sistema. En algunos casos, cuando se utilizan flip-flops canalizados (flip-flops de registro de desplazamiento) en aplicaciones de alta velocidad, se puede eliminar el restablecimiento de algunos flip-flops para lograr diseños de mayor rendimiento. Este tipo de entorno requiere un número predeterminado de relojes durante el período activo de reinicio para poner el ASIC en un estado conocido.

ASIC: circuito integrado de aplicación específica