Tiempo de configuración, tiempo de espera - ¿Cuál es el principio subyacente para tenerlos?

3

Estoy aprendiendo sobre el tiempo de configuración y el tiempo de espera de un FF conectado a un bus. Pero el libro de texto no explica exactamente por qué son los necesarios en una operación. ¿No está un FF siempre encendido y atento a los cambios de señal del bus? ¿De qué manera el encendido de la señal del reloj, docenas de nanosegundos después de que la señal se activó en el bus, ayuda al FF a capturarlo de manera confiable? ¿Muestra realmente el FF un segmento continuo de señal en el bus, en lugar de solo un instante (o es una diferencia entre la teoría y la realidad)? Si es así, ¿cómo funciona eso en la realidad?

Gracias.

    
pregunta xji

2 respuestas

10

Estás olvidando un par de hechos importantes:

  1. Un flip-flop no es una sola puerta atómica, sino que está formada por varias puertas.
  2. Se necesita tiempo para que una señal pase a través de una puerta (o propagate ).
  3. No hay tal cosa como una onda cuadrada pura.

Tome este diagrama de un cierre transparente:

Supongaquecadapuertarequiereuna"unidad de tiempo" para propagar la señal.

La señal D llega a la entrada de una puerta NAND en \ $ T_0 \ $. También llega a la puerta NO en \ $ T_0 \ $. Luego abandona la puerta NO y llega a la segunda puerta NAND (inferior) en \ $ T_1 \ $. Por lo tanto, el tiempo más corto antes de que la señal CLK pueda tener algún efecto en las entradas NAND de entrada será \ $ T_1 \ $, ya que es cuando la señal D se ha propagado a ellas. Entonces, la salida de esas compuertas NAND se propagará como estable en \ $ T_1 \ $ para la superior, y \ $ T_2 \ $ para la inferior. Luego pasa a las siguientes dos puertas NAND. Esos nuevamente agregan 1 unidad de tiempo a cada una de las señales. Además de eso, las salidas de esos se retroalimentan en las entradas de cada una, de modo que cuando cambian, propagan una nueva señal a través de ellas y cada una agrega otra unidad de tiempo.

Solo cuando las salidas hayan dejado de ordenarse, la puerta estará "estable", y eso es cuando está en el estado de "espera". Podría ser muchas unidades de tiempo.

Entonces, por supuesto, tienes la onda "cuadrada", que está lejos de ser cuadrada. Cada cambio de bajo a alto o de alto a bajo lleva tiempo. Solo una vez que una señal pasa un cierto umbral se verá como alta o baja. Diferentes factores afectan la duración de esas transiciones, incluida la capacidad de la puerta de los MOSFET en la puerta lógica, el tiempo de conmutación real de los MOSFET, etc.

Así que puedes ver que hay una cierta cantidad de tiempo para que un flip-flop cambie de un estado a otro, y en diferentes momentos durante ese tiempo ocurren cosas diferentes con la puerta.

    
respondido por el Majenko
0

El análisis de temporización de un sistema lógico depende de tener retrasos bien limitados desde el pin del reloj hasta los pines de salida (Q, Qb) de los pestillos y los flops. Para limitar el límite superior del reloj al tiempo de demora Q, también tenemos que limitar la configuración y el tiempo de espera para que los datos sean estables en relación con el reloj.

Los flip flops y los pestillos son esencialmente los mismos que los comparadores temporizados en operación. La entrada de datos monitorea "continuamente" la señal entrante, pero solo intenta tomar una decisión y bloquearla (cuando los datos son altos o bajos) cuando el reloj es alto (para un latch o flop activado por flanco ascendente) o bajo ( para un flanco descendente desencadenado uno.

Para la mayoría de los tipos de pestillos y flops CMOS, existe el peligro de metastabilidad o indecisión, o al menos una decisión lenta, cuando los datos cambian demasiado cerca del borde del reloj. Cuanto más cerca se produce el cambio de datos al borde del reloj que está causando que el enganche o el flop "enganche" los datos, más tarda en resolverse y cambiar el estado el enganche o el flop.

Puedes ejecutar una simulación SPICE o Spectre de un flip-flop y verlo por ti mismo. Ejecute una señal de reloj constante (onda cuadrada) en el pin del reloj y envíe al pin de datos una onda cuadrada con un período que es igual a algunos múltiplos del período de reloj más una pequeña cantidad. Con el tiempo, el borde de los datos "se desplazará" más allá del borde del reloj y, finalmente, aterrizará justo en la parte superior del borde del reloj y luego continuará a la deriva. Se verá que la salida cambia de estado rápidamente cuando el cambio de datos está lejos del límite del reloj, pero luego tomará más tiempo y más tiempo, y posiblemente no se resolverá cuando el cambio de datos esté cerca del cambio de reloj.

    
respondido por el mixed_signal

Lea otras preguntas en las etiquetas