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.
- ¿Cuáles son las posibilidades de que la ingeniería de software quede obsoleta por la automatización?
- ¿Cómo funciona el proceso de eliminación?
- ¿Cuál es el mejor sitio de resolución de problemas para desarrollar habilidades de programación múltiples y críticas y conceptos de resolución de problemas?
- ¿Qué cursos en un colegio o universidad necesito tomar para convertirme en ingeniero de hardware?
- ¿Se utiliza hoy la Emitter Coupled Logic?
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.