¿Me parece que la activación de borde deja cada circuito en un estado inconsistente?

Me informaron en este foro que la activación de borde podría ser una solución para la propagación múltiple en un circuito con retroalimentación (la salida conectada de nuevo a la entrada).

Pero para mí, la activación de borde parece dejar un circuito en un estado completamente inconsistente. Mire este (contador de ondulación flip flop JK de un elemento).

Deje que la entrada del reloj sea una señal de activación por flanco y mire el primer campo NAND en J cuando todas las entradas en J estén altas excepto el reloj. En el momento en que el reloj sube, comienza la propagación. El borde dura un nanosegundo, por lo que probablemente terminará antes de que el valor se propague a través de la NAND. De todos modos, una señal baja de nanosegundos de duración viajará a través de la salida de la primera NAND, precedida y seguida por largos intervalos de señal alta. Esa composición llegará a la segunda NAND superior y la NAND cambiará los valores en consecuencia, se conectará más a otra NAND más una entrada, y todo me parece un gran ejemplo de un estado inconsistente de un circuito, quién sabe qué. va a pasar ahi?

No entiendo correctamente algo sobre la activación de borde. ¿Qué es eso? ¡Gracias por el tiempo!

Parece que te engañé en la explicación al adjuntar una imagen de un circuito activado por nivel. Estoy confundido solo con la activación por borde y elegí un circuito de retroalimentación solo para ilustrar lo que sucedería mambo-jumbo si en lugar de una señal de reloj fuera la salida de un detector de pulso activado por borde. Me parece que la salida de la puerta del primer circuito obtiene cambia solo por un nanosegundo cuando es un borde ascendente, luego vuelve inmediatamente a la salida ya que la señal que indica el borde es 0. Luego, el cambio de señal de nanosegundo viaja a la segunda puerta, modifica su salida también por un nanosegundo, y el segundo
la salida de la puerta se extiende a la entrada y a la tercera puerta simultáneamente y ahí es donde comienza mambo-jumbo: la modificación de la señal de nanosegundos ingresa al circuito nuevamente, al mismo tiempo que la salida de la tercera puerta viaja para la segunda entrada ... ¿Quién podría saber qué señal recibe? ¿a qué objetivo primero y puede predecir las colisiones? Parece muy inconsistente. Tendré que estudiar las chanclas maestro-esclavo que @VasiliyZukanov y otros adjuntaron en sus excelentes respuestas, ya que no estoy familiarizado con eso, pero los circuitos que usan pulso- Las señales activadas por el borde del detector todavía me parecen disfuncionales.

Respuestas (4)

Es difícil entender qué está preguntando sin algún tipo de diagrama de tiempo.

Sin embargo, intentaré adivinar cuál es tu problema:

Existe un amplio uso indebido intercambiable de los términos "cierre cerrado", "flip flop" y "flip-flop activado por borde". El esquema que proporcionó no es un flip-flop activado por borde JK, sino un pestillo con compuerta JK, comúnmente conocido como flip-flop JK.

A diferencia de los flip-flops activados por flanco que cambian de estado solo en el flanco ascendente de la señal del reloj, los latches cerrados pueden cambiar de estado durante toda la fase positiva de la señal del reloj. Esto significa que si las entradas J o K cambian mientras el reloj está alto, la salida del pestillo cerrado también puede cambiar (lo que no es cierto para los flip-flops activados por borde).

Sin embargo, si las entradas J y K se mantienen constantes durante una fase positiva del reloj, la salida del latch controlado JK se establecerá en un valor conocido (con una excepción que se describe a continuación), que puede derivarse de los valores de J, K y Q en el flanco ascendente del reloj. NOTA: el hecho de que estemos viendo los valores de las señales en el flanco ascendente no implica que este pestillo de compuerta JK se active por el flanco, ¡porque asumimos que las entradas no cambiarán durante la fase positiva del reloj!

Ahora, a su pregunta: parece que no puede comprender cómo exactamente la salida puede establecerse en un valor conocido (y determinista), teniendo en cuenta los dos bucles de retroalimentación presentes. Bueno, la única forma en que puede convencerse a sí mismo es asumir algunas condiciones iniciales en la salida y rastrear lo que sucede para cada combinación posible de entradas (excepto J = 1, K = 1).

Los siguientes dos puntos te harán la vida más fácil:

  1. Si bien la implementación con compuertas NAND es la más efectiva en el área, con el fin de comprender los conceptos, es mejor investigar este circuito (funcionalmente equivalente):Implementación de JK gated latch con puertas AND y NOR
  2. Tenga en cuenta que cuando el reloj está alto, las salidas de las compuertas AND estarán determinadas por los valores de las entradas J y K, y el valor de Q. Esto significa que puede borrar la señal del reloj del diagrama para comprender qué está pasando. durante la fase positiva del reloj.

EDITAR: Entonces, ¿qué pasa con J = 1, K = 1 caso? Bueno, en este caso JK gated-latch se convierte en un multivariador (espero que el término sea correcto): sus salidas cambiarán periódicamente durante la fase positiva del reloj. En los circuitos lógicos, esta combinación de entradas es ilegal, por lo tanto, la práctica habitual es unirlas de la siguiente manera (que se denomina D-latch):

ingrese la descripción de la imagen aquí

Tenga en cuenta que no hay necesidad de retroalimentación en este circuito, porque las salidas están completamente determinadas por el valor de la entrada D.

Para construir un flip-flop JK activado por borde, se pueden colocar dos pestillos con compuerta JK en serie de la siguiente manera (también hay otras configuraciones). Tenga en cuenta que las rutas de retroalimentación van desde la salida del segundo latch controlado hasta la entrada del primero:

Flip-flop activado por borde JK

En esta configuración, no hay más restricciones en la combinación de entrada J=1, K=1; esta combinación de entradas significa "alternar la salida". El llamado flip-flop disparado por borde T generalmente se deriva del flip-flop disparado por borde JK anterior al unir las entradas J y K.

Vasiliy, ¿es este un diagrama de un circuito activado por borde o nivel? Veo un circuito detector de pulso que alcanza el borde pero veo que el nivel alto dura la mitad del ciclo en su diagrama.
Perdon por la confusion. Tenía la intención de poner el pestillo JK básico allí. Se arregló ahora y se agregó el diagrama del flip-flop activado por borde JK
Y olvidé un detalle muy importante: J = 1, K = 1 (que es una combinación de "alternar" para el flip-flop activado por borde JK) es una combinación ilegal para el pestillo con compuerta JK, porque se convierte en un multivibrador: sus salidas cambiarán ¡todo el tiempo!
La salida de un flip flop JK solo puede cambiar una vez por cada flanco descendente de la entrada del disparador. Hay un ancho de pulso mínimo requerido para una operación confiable, pero los pulsos pueden ser tan anchos como se desee siempre que excedan ese mínimo. Los únicos tipos problemáticos de entradas de reloj son los pulsos cortos, los pulsos de clic que ocurren demasiado cerca de las transiciones en las entradas JK o las señales de reloj que cambian lentamente y que permanecen demasiado tiempo cerca del umbral.
@supercat, creo que estás hablando de flip-flops activados por borde JK, y no de pestillos con compuerta JK. Traté de explicar la diferencia en mi respuesta: si aún no puede ver la diferencia después de leerla, bueno, fallé.
@VasiliyZukanov: Nunca he oído hablar de un pestillo cerrado JK. He oído hablar de pestillos con compuerta RS, pero no sirven de pretexto para alternar si ambas entradas son altas. Los pestillos de compuerta RS que conozco se establecerán cuando S sea alto, R sea bajo y la habilitación esté activa, y se restablecerán cuando R sea alta, S sea baja y la habilitación esté activa. En todos los demás momentos mantienen su estado.
@supercat, la primera imagen en mi respuesta es el pestillo cerrado JK. Intenta ver qué sucede cuando J,K=1 y el reloj está alto: se convierte en un multivibrador.
@VasiliyZukanov: ¿En qué circunstancias sería más útil el circuito con los términos de retroalimentación a las primeras puertas AND que un circuito con esos términos omitidos? Tal circuito prácticamente anhela encontrarse en un estado metaestable, incluso si J y K no se elevan simultáneamente. Por ejemplo, suponga que Q comienza alto, y K y Clk se elevan. A medida que la salida del AND superior aumenta, la salida del NOR puede comenzar a disminuir. Eso, a su vez, podría hacer que la salida de AND sea baja antes de que NOR inferior sea alta.
@VasiliyZukanov: si bien puedo ver que agregar los términos de retroalimentación convierte algunos comportamientos definidos en comportamientos ambiguos o metaestables, no veo ningún caso en el que el circuito al que llama pestillo JK tenga un comportamiento definido que difiera del de un RS cerrado pestillo, al menos no en ausencia de restricciones de retardo de propagación especificadas.
@supercat, acabo de explicar la terminología. La cuestión de si se usa el pestillo con compuerta JK es completamente diferente (le invitamos a agregarlo al foro). Siempre que comprenda la diferencia entre el pestillo con compuerta JK y el flip-flop activado por borde JK, esta respuesta logró su propósito.
@VasiliyZukanov: Bien, volví a examinar la pregunta original; parece que presupone el uso del circuito como lo describe (aunque con puertas NAND), por lo que su respuesta presupone que el circuito podría ser adecuado para algún propósito. La transformación podría afectar los comportamientos de propagación y, por lo tanto, no parece segura. Sugeriría que si uno quiere un pestillo que se pueda alternar a través de un pulso, se debe dibujar con puertas de etapa temprana separadas para el caso de "alternar" y los otros casos, ya que de lo contrario no hay estímulo de entrada que se garantizaría para borrar metaestabilidad en el momento oportuno.

El flip flop JK básico sufre un problema de sincronización llamado carrera en el que el pulso del disparador es demasiado largo y el circuito envía señales confusas, que es lo que creo que estás describiendo.

Para sortear esto, el disparador o pulso de reloj debe mantenerse muy corto para que regrese a '0' antes de que el cambio en la salida pueda propagarse de regreso a las puertas de entrada.

ingrese la descripción de la imagen aquí

La operación del flip flop JK se puede mejorar agregando un segundo flip flop RS y se conoce como JK maestro-esclavo.

ingrese la descripción de la imagen aquí

En el flanco ascendente de la señal del reloj, los valores de entrada J y K se propagan y almacenan en el flip-flop maestro, mientras que el flip-flop esclavo (que está controlado por el reloj invertido) permanece sin cambios. En el flanco descendente de la señal del reloj, los valores de salida de los flip-flops maestros se propagan y almacenan en el flip-flop esclavo, que a su vez impulsa las salidas Q y Not Q del flip-flop.

la única combinación de entradas para las que el flip-flop JK sufre la condición de "carrera" es J=1, K=1. Esto debe ser mencionado.
@VasiliyZukanov Muy correcto: cualquier otra combinación de valores JK producirá un circuito de tipo pestillo S -R con 0 0 siendo el valor 'sin cambios'. Solo con JK como 1 1 el circuito actuará como un divisor de tipo Toggle con la condición de "as alrededor". (+1) de mí

La mayoría de los circuitos reales usan flip-flops D, que tienen dos restricciones relevantes: un tiempo de "configuración" durante el cual la señal debe ser constante antes de que llegue el flanco y un tiempo de "retención" después del flanco durante el cual no llega.

Luego, el diseño se simula y se ajusta para que cada señal llegue dentro del tiempo de configuración y no antes del tiempo de espera. Sí, puede insertar un elemento de retardo (por ejemplo, un par de inversores) para cumplir con las restricciones de retención.

Algunos diseños de D flop pueden tener un tiempo de espera cero, de modo que tan pronto como llega el borde, su entrada se bloquea y es estable.

("Edge dura un nanosegundo": ¡eso me parece bastante alto!)

Los flip-flops maestro-esclavo, la conmutación síncrona sincronizada y similares existen por una razón. La activación por flanco se puede diseñar para que sea estadísticamente muy fiable en la práctica, pero los peligros y las deficiencias son bien conocidos. La activación por flanco y la operación asincrónica suelen ser más baratas y fáciles de diseñar en general. Como ocurre con la mayor parte de la vida, es una compensación entre muchos factores y se puede hacer que funcione "lo suficientemente bien" en muchos casos. Es menos probable que lo encuentre en los sistemas de soporte vital y control de incendios y, con suerte, en los lanzadores de satélites.

Luego, la mayoría de los circuitos utilizados donde la precisión es crítica son circuitos activados por nivel y, en el caso de un circuito de retroalimentación, los diseñadores deben asegurarse de que la propagación dure más tiempo en el intervalo de nivel de reloj alto, pero más corto en todo el ciclo del reloj. para evitar la propagación múltiple en el intervalo de señal de reloj alta del ciclo? ¿Agregando algunos componentes que solo deberían ralentizar la propagación?
Me he dado cuenta de que esta respuesta es menos buena de lo que podría ser. No hay tiempo en este momento para ordenarlo, volveré. El villano principal es el reloj/propagación asíncrono versus síncrono. Los estados están bloqueados en todo el sistema en todas partes en un borde de reloj, por lo que no pueden ocurrir "peligros de carrera".