Si la salida de un flip-flop tipo D aparece inmediatamente en el borde del reloj, ¿cómo se puede usar la salida anterior?

3

De la forma en que lo entiendo, el valor de entrada (D) de un flip-flop tipo D aparece inmediatamente en la salida (Q) de un flip tipo D cuando se activa con un borde de reloj positivo. Si este es el caso, entonces, ¿cómo se puede usar el valor antes del borde del reloj como entrada para otro flip-flop cronometrado? Según este modelo, no hay ningún valor en particular en el borde del reloj.

Por supuesto, los flip-flops do funcionan, así que mi modelo de comprensión es el que está mal. Entonces, ¿alguien puede elaborar esto un poco más?

    
pregunta Emil Eriksson

4 respuestas

3

Si examina cuidadosamente la hoja de datos para un D-FF real, verá un elemento llamado 'tiempo de configuración'. En realidad, el FF no toma el valor en el momento exacto del borde del reloj; los datos tienen que ser estables durante los últimos 20 ns antes de que se levante el reloj, y ese es el valor que se transfiere. Además, el valor en la salida toma unos pocos ns para establecerse en el valor (posiblemente) cambiado. Entonces, si encadena una cadena de D-FF, Q de una a la D de la siguiente, todo funciona porque durante el tiempo crítico para la entrada D de cada etapa, las Q son estables; las Q solo cambian muy poco después del borde activo del reloj.

    
respondido por el JustJeff
6

Los tiempos de configuración y retención de un flip flop D especifican un intervalo durante el cual cualquier cambio en la entrada de datos puede causar un comportamiento arbitrario. Si un flip-flop tiene un tiempo de configuración de 7 ns y un tiempo de espera de 5 ns, eso significa que si un borde de reloj ocurre dentro de 7 ns después de un cambio de entrada, o la entrada cambia dentro de 5 ns después de un borde de reloj, no se garantiza el comportamiento del pestillo . Es posible que el tiempo de configuración o de espera (pero no ambos) sea negativo; la magnitud del otro busto de tiempo será mayor que la del tiempo negativo. Si hubiera un pestillo, por ej. un tiempo de configuración especificado de 11 ns y un tiempo de espera de -4 ns, significaría que el comportamiento del pestillo estaría garantizado a menos que la entrada del reloj cambiara entre 11 y 4 ns después de un cambio en la entrada de datos.

Tenga en cuenta que si bien los tiempos de configuración y de espera generalmente se especifican como máximos, en realidad son valores absolutos en el peor de los casos, ya que el fabricante no ofrece ninguna garantía en cuanto a lo que sucedería si se violaran. Por ejemplo, supongamos que el chip X tiene 10ns de configuración y tiempo de espera, mientras que el chip Y tiene 1ns de configuración y tiempo de espera, y que ambos chips reciben una señal de datos que cambia 7ns antes del borde del reloj. Se requeriría el chip Y para bloquear la señal de datos correctamente; el chip X puede hacer casi cualquier cosa, incluido el bloqueo de la señal de datos correctamente, y se considera que cumple con las especificaciones. No tendría sentido que un fabricante especificara un tiempo de configuración mínimo (a menos que la intención fuera realmente especificar que el tiempo de retención máximo fuera negativo, en cuyo caso eso es lo que debería decir la especificación).

Casi cualquier proceso que se use para hacer flip flops garantizará efectivamente que el tiempo de propagación más corto para cualquiera de los flip flops en el chip sea más largo que el tiempo de configuración más largo para cualquier flip flops especificado de manera similar. En la mayoría de los casos, esta garantía parece extenderse efectivamente a otros chips en el mismo lote de fabricación, pero no está claro hasta qué punto se extiende realmente. En muchos casos, los fabricantes especifican que el tiempo de retención de un chip no será mayor que cierta cantidad, y que el tiempo de propagación no será mayor que una cierta cantidad, pero a menos que el tiempo de retención sea cero o negativo o se especifique un tiempo de propagación mínimo y es más largo que el tiempo de espera requerido, no creo que las hojas de datos realmente especifiquen la operación correcta para los latches en cascada. Ciertamente, es posible tener problemas al introducir la salida de datos de un chip muy rápido en la entrada de datos de un chip lento con un tiempo de retención largo.

Un enfoque que se usa con algunos protocolos como SPI, y es un enfoque que me gustaría ver más usado, es tener la etapa de salida de cada cambio de cierre en el borde opuesto del reloj desde la entrada. No estoy seguro de por qué este enfoque no se utiliza más; mientras que hay momentos en que sería innecesario y derrochador (si se sabe que el tiempo de propagación de los circuitos entre dos pestillos sería suficiente para satisfacer el tiempo de retención del cerrojo descendente, teniendo la salida del cerrojo ascendente en el mismo reloj) El borde al muestrear el latido descendente permitiría velocidades de reloj más altas), también hace posible garantizar la corrección de muchos circuitos que involucran familias de lógica mixta, algo que de otra manera podría ser difícil.

    
respondido por el supercat
1

Retardo de propagación.

Al igual que un inversor o, de hecho, cualquier otra puerta lógica, la salida no cambia inmediatamente con la entrada.

Por ejemplo, para 74F74 , un flip flop dual tipo D con S y R dedicados entradas, hay dos retrasos de propagación especificados: "Retardo de propagación CPn a Qn o Qn #" y "Retardo de propagación" SDn #, RDn # a Qn o Qn # ". Ambos toman menos de 11 ns en el peor de los casos.

Ahora, es divertido considerar lo que sucedería si las puertas lógicas tuvieran un retraso de propagación cero. Tomemos el tipo D, configurado como un contador binario. Suponga que Q = 0, Q # = 1. Se produce un flanco ascendente en el pin del reloj. Inmediatamente (en tiempo cero), Q # se transfiere a Q. Ahora, con todas las puertas lógicas, la lógica de detección de flanco ascendente puede generar un flanco ascendente durante algún tiempo, por ejemplo, unos pocos ns. Entonces para estas pocas ns (se requiere que sea más corto que el retardo de propagación para la estabilidad, pero en este caso mayor) obtenemos oscilaciones. Q # se convierte en 0 y se transfiere a Q. Luego, Q # se convierte en 1 y se transfiere a Q ... y así sucesivamente. La salida se conoce como indeterminado .

    
respondido por el Thomas O
0

No significa que el D-Flipflop que da la salida de inmediato
evalúa la señal de entrada según sus conexiones y proporciona la salida.
Solo te recordaré la tabla de verdad de JK-flipflop:

AquíenD-Flipflop,eldiagramadelcircuitoesasí:

y su tabla de verdad es:

aquí use estas entradas para este circuito considerando el estado anterior y luego
obtendrá la salida igual que la entrada que le dio al fl-flip flop
eso es todo, pero no significa que no usará el estado anterior.

    
respondido por el Gouse Moinuddin Shaik

Lea otras preguntas en las etiquetas