¿Por qué las chanclas tienen tiempos de espera?

En un mundo perfecto con cero retrasos y cero tiempos de subida y bajada, un flip flop ideal no debería requerir mucho tiempo de configuración y retención; no mucho pero aún necesita una cantidad finita. Entonces, ¿por qué necesitamos algún tiempo de configuración o espera? Es para garantizar que registremos los datos correctos; porque cuando una transición de reloj cae encima de una transición de datos, no está claro qué datos se registran en el flip-flop. En un mundo no perfecto, necesitamos tener más (a veces mucho más) tiempos de configuración y retención debido a incertidumbres de temporización de señal, tiempos de subida y bajada de señales, umbral y ventana de transición del flip-flop, etc.

Para comprender un poco más los tiempos de configuración y retención, podemos modelar un flip-flop con un flip-flop casi ideal pero con algunos tiempos de configuración y retención finitos y un retraso DD en la ruta de datos más un retraso DC en la ruta del reloj.

En el caso 1, asumimos que ambos retrasos DD y DC son cero. En este caso, nos quedamos con un flip-flop casi ideal. Desde la forma de onda, es fácil ver por qué necesitamos algunos tiempos de configuración y retención. En realidad, Tsetup + Thold es una buena indicación de lo buena que es la tecnología; cuanto menor es el número, mejor es la tecnología.

En el caso 2, tenemos DD = t1 y DC sigue siendo cero. Ahora necesitamos tener Datos t1 antes de D para tener la misma ventana válida. Pero dado que los tiempos de configuración y retención están definidos por las entradas de Datos y Clk y no por las entradas D y C, el tiempo de configuración y retención cambia en la dirección de hacer que el tiempo de configuración t1 sea más positivo y el tiempo de retención t1 más negativo. Si t1 es mayor que el tiempo de retención original, este cambio hará que el tiempo de retención sea negativo.

En el caso 3, tenemos DD = 0 pero DC = t2. Ahora necesitamos tener Clk t2 antes de C para tener la misma ventana válida. Esta vez, el tiempo de configuración y retención se desplaza en la dirección opuesta al Caso 2. En este caso, el tiempo de retención se desplaza en una dirección positiva por t2 y el tiempo de configuración se desplaza hacia la dirección negativa por t2.

Es interesante observar que las ventanas Tsetup + Thold (o el tamaño de las) son las mismas en los 3 casos. La única diferencia es que los retrasos cambian el tiempo relativo. Esta es también la razón por la que a veces vemos una configuración negativa o tiempo de espera.

El concepto de configuración y retención son abstracciones para la lógica digital. Los flip-flops reales de tipo d generalmente se hacen (al menos en CMOS) con dos pestillos (uno maestro y otro esclavo). Las chanclas más típicas en CMOS tienen 0 tiempos de espera.

¿Por qué algunas chanclas tienen tiempo de espera? Recuerde que los relojes que activan la activación de cada pestillo no necesariamente llegan exactamente al mismo tiempo (debido a retrasos en los cables y parásitos en el árbol del reloj). Nunca hay un tiempo de llegada del reloj 100% idéntico en los pestillos habilitados para los pestillos maestro y esclavo; siempre hay alguna inclinación del reloj. La inclinación del reloj depende del diseño interno del flip-flop.

El tiempo de espera es una abstracción que cubre la posibilidad de que los relojes lleguen al pestillo maestro y esclavo habilitado en momentos ligeramente diferentes. Esto asegura que el flip-flop se comportará correctamente.

Cuando golpea el borde de muestreo, los datos no deben cambiarse, es decir, el maestro no debe muestrear datos nuevos, lo que significa que el maestro debe estar apagado (considerando el concepto de esclavo maestro). Si el maestro muestrea nuevos datos durante ese tiempo, la red de retroalimentación del maestro y la ruta de datos intentan escribir de manera diferente en el nodo de entrada del esclavo.

Por lo tanto, mantenga la cuenta de tiempo por el tiempo requerido para que el maestro se apague.

Necesita un poco de tiempo de espera, ya que el reloj destella los datos en el primer flip-flop, y ese flip-flop necesita ver datos estables por un corto tiempo antes de que se voltee o fracase.

También necesita algo de tiempo de configuración, ya que hay un inversor adicional para negar la entrada D. Algún tiempo de configuración garantiza que las entradas D y no D sean correctas y estables.