Período de reloj mínimo desde la configuración y el tiempo de espera

Encontré varias respuestas diferentes sobre cómo la configuración y el tiempo de espera de Flip-Flops influyen en el tiempo mínimo entre dos flancos ascendentes del reloj.

  1. tclock >= Retardo de propagación + tsetup + thold
  2. tclock >= Retardo de propagación + tsetup
  3. tclock >= Retardo de propagación + Max(tsetup, thold)

¿Cuál de ellos tiene razón? Según tengo entendido, debería ser la primera versión, pero encontré algunas respuestas que dicen que el tiempo de espera no cambia la velocidad del reloj.

La mayoría de los flip flops tienen una velocidad de reloj mínima de 0 Hz.
Ah, mi error, estaba pensando en el período mínimo de reloj.

Respuestas (2)

La ambigüedad proviene del hecho de que el cumplimiento del requisito de tiempo de espera depende del retardo de propagación.

Si supone que el retraso de propagación del FF siempre es más largo que el tiempo de espera, entonces el retraso de propagación asegura que se cumpla el tiempo de espera y tclock >= tprop + tsetup.

Sería inusual que el retardo de propagación de un FF fuera más corto que el tiempo de espera.

Por supuesto, existe una complicación adicional causada por el hecho de que el retraso de propagación, la configuración y el mantenimiento cambian con el voltaje y la temperatura, y debe tener en cuenta el sesgo entre los relojes en los FF de origen y destino.

Entonces es más como: tpropagation > thold AND tclock >= tprop + tsetup?
Sí. En el caso inusual de tprop < thold, necesitaría agregar un retraso a la salida FF, lo que efectivamente aumentaría tprop.
"La ambigüedad proviene del hecho de que cumplir con el requisito de tiempo de espera depende del retraso de propagación". Solo si la Q del FF está involucrada en el cambio de estado de la entrada D. Esta es una distinción importante en algunos casos de análisis.
@MichaelKaras Si un FF no afecta la entrada D del FF de destino, entonces no hay razón para que esté conectado. Podría eliminarse lógicamente. Si el estado FF importa en un ciclo de reloj en particular es irrelevante, asumiendo que importa en uno o más ciclos de reloj. Ciertamente, dependiendo de la lógica entre la salida Q y la entrada D, el retardo de propagación puede depender del estado del sistema. ¿Quizás ese es tu punto?
@ crj11: si lees mi respuesta, deberías poder entender mi punto. Cuando dice que hay un "FF de destino", entonces eso está extendiendo el análisis a un sistema de FF y luego eso lo extiende a la segunda parte de mi respuesta. El análisis de FF único puede entrar en juego cuando se trabaja con algún diseño de circuito en el que los FF se sincronizan de forma independiente desde los bordes de las señales asíncronas en lugar del esquema de sincronización común.

Si el flip-flop se analiza estrictamente por sí solo con respecto a las entradas CLK y D, entonces el período de reloj mínimo se aproxima a la suma de los tiempos t de configuración y t de espera . El retraso de propagación solo entra en juego si las salidas del flip-flop determinan el siguiente estado de la entrada D.

Ahora, dicho esto, la mayoría de los sistemas que se analizan tendrán una matriz de múltiples flip-flops que tienen sus entradas CLK conectadas a una fuente de reloj común. Además, las salidas de los diversos flops estarán interconectadas de alguna manera, posiblemente incluyendo otra lógica combinatoria, para determinar los valores de estado siguientes a las entradas D de los flops. En este caso, es necesario que el retraso de propagación siempre se incluya en el análisis y ese retraso debe incluir más que solo el retraso, CLK a Q, del flip-flop. Debe agregarse el retraso adicional de las rutas lógicas combinatorias adicionales y, en los casos de relojes de muy alta velocidad, también debe agregarse el retraso de las señales a lo largo de las rutas de enrutamiento.

En el análisis de nivel de sistema o tipo de máquina de estado para el período de reloj mínimo, es común considerar que los retrasos de todos los flip-flops son las mismas especificaciones del peor de los casos, de modo que no es necesario calcular individualmente todas y cada una de las rutas a través del árbol lógico. Esta es también una razón por la que el diseño lógico robusto siempre quiere ser sincrónico con respecto a una fuente de reloj común para que el análisis pueda limitarse al comportamiento de reloj a reloj.