Tiempo de espera y configuración de D-Flip-Flop

Estoy resolviendo una pregunta para prepararme para mi examen, pero me quedé atascado en este y necesito su ayuda.

Dando el siguiente circuito:

circuito

Cuando la entrada x se actualiza 10nsdespués de que el reloj se apaga, también me dan que el ciclo del reloj es 50nstal que la mitad del reloj es 1 y el resto el reloj es 0.

Además de dar la siguiente tabla de tiempos:

tabla de tiempos

necesito calcular T_cd(XOR).


La respuesta final es: no podemos determinar cómo se comporta el circuito si no podemos encontrar el valor solicitado.

Entonces, a partir de esto, entiendo que no se cumplen T_Holdlos T_Setuprequisitos, así que hice una verificación rápida:

es T_CD(FF1)+T_CD(Logic)>=T_H(FF2)? (En este caso, FF1 también es FF2 y Logic son puertas XOR y OR) Respuesta: Verdadero

es T_PD(FF1)+T_PD(Logic)+T_Setup(FF2)<=T_clk? (En este caso, FF1 también es FF2 y Logic son puertas XOR y OR y T_clk es el tiempo para el ciclo completo del reloj, que es 50ns) Respuesta: Verdadero

Conclusión: T_Holdy T_Setuplos requisitos no se cumplen, por lo que podemos calcular T_cd(XOR).

Creo que me estoy perdiendo algunas cosas aquí, especialmente porque en mi cálculo nunca usé ese valor de 10ns...

Cuando las cosas no están claras en mi cabeza, dibujo un diagrama de tiempo.
@Mattman944 ​​Lo hice y eso no ayudó mucho, en realidad demostró que todo está bien

Respuestas (1)

La respuesta final es: no podemos determinar cómo se comporta el circuito ... Entonces, a partir de esto, entiendo que no se cumplen los requisitos de T_Hold y T_Setup

No necesariamente la conclusión que debe hacer. Si no se puede determinar el comportamiento de este circuito, entonces puede significar que se han producido violaciones de tiempo debido a:

  • Falló la espera o la configuración.
  • Tanto la configuración como la retención fallaron.

Donde la entrada x se actualiza 10 ns después de que el reloj se apaga,

Una forma en que podría querer ver este escenario es:

  • Imagine que hay otro flip-flop-A sentado 'antes' de enviar datos al flip-flop-B en su circuito, que captura esos datos.
  • Estos datos se lanzaron en el flanco ascendente en el flip-flop-A y se supone que deben capturarse en el flip-flop B en el siguiente flanco ascendente.
  • Los datos lanzados desde el flip-flop-A luego llegan a la entrada de las puertas OR y XOR después de 10 ns (suponiendo que no haya retrasos en los cables, sesgos), después de que el reloj se apague. Significa efectivamente que pasó a través de un retardo de propagación de T pag d ( i norte ) = T C yo k / 2 + 10 = 35  ns , antes de que llegue a la entrada de las puertas OR y XOR.

Entonces, nuestro circuito "imaginario" para el análisis de tiempo ahora se ve así:

ingrese la descripción de la imagen aquí

Supongo T pag d y T C d consulte Retrasos de propagación y contaminación respectivamente.

Análisis de configuración en el flip-flop B

Considere la ruta de peor retraso a B (con todos los retrasos de propagación). Por inspección, es a través de -

retardo de entrada en x XOR O

ingrese la descripción de la imagen aquí

Matemáticas para satisfacer la configuración:

T i norte + T pag d ( X O R ) + T pag d ( O R ) + T s mi t tu pag ( B ) T C yo k
35 + 6 + 7 + 4 50  ns
52 50  ns  --- violado! 

Por lo tanto, a partir del análisis de configuración en sí, podemos concluir que este circuito tiene una violación de tiempo y, por lo tanto, su comportamiento es incierto. Sin embargo, también hagamos un análisis de retención.

Mantenga el análisis en el flip-flop B

Se desconoce el retraso de contaminación de XOR. De acuerdo, de todos modos, consideremos la mejor ruta de retraso a B (con todos los retrasos de contaminación conocidos). Por inspección, es a través de -

reloj a Q de B XOR O

ingrese la descripción de la imagen aquí

Matemáticas para satisfacer Hold:

T C d ( C yo k q ) + T C d ( X O R ) + T C d ( O R ) T h o yo d
5 + T C d ( X O R ) + 4 10  ns
T C d ( X O R ) 1  ns

Lo anterior es cierto si se supone que Hold se cumple en el circuito (que no se menciona en su pregunta, ni podemos concluir). Si también se supone que Hold se viola, entonces T C d ( X O R ) debiera ser:

T C d ( X O R ) < 1  ns

lo que no entiendo es por qué en Setup Analysis no consideraron T_pd de FF? eso es lo que aprendí más de dónde vienen estos 35?
"Significa que efectivamente pasó por un retraso de propagación de 𝑇𝑝𝑑(𝑖𝑛)=𝑇𝑐𝑙𝑘/2" ¿por qué 𝑇𝑐𝑙𝑘/2?
En Hold Analysis, ¿por qué no tomó Tcd (clk -> Q) para el FF que acaba de agregar también?
En la configuración, debe tomar la peor ruta de retraso. Hay tres rutas de configuración. Tomé el peor camino de retraso para el análisis. En ese camino, tpd de B no entra en escena.
Tclk/2, porque el retraso dado de 10 ns se mide desde el borde descendente (según la pregunta). Por lo tanto, se debe agregar el retraso de medio ciclo para encontrar el retraso total desde el flanco ascendente.
Hola, acabo de volver a leer tu respuesta y creo que hay algo mal al calcular T_setup. Me explico: la entrada cambió 10 ns después de que el reloj se apaga, lo que significa 35 ns después de que el reloj sube. Ahora el único camino que tenemos es del FF a sí mismo. Si el reloj sube ahora, XOR gate 6ns para terminar su trabajo, luego esperamos la entrada x que nos dice "Estaré listo en otros 29ns", así que en total esperamos 35 ns. luego o necesita otros 7 ns, lo que hace un total de 42 ns, por último, agregamos tpd (FF) + t_setup (FF) y obtenemos un total de 66 ns mientras que tienes 52
Tus cálculos están mal. Está incorporando tpd de flipflop + xor en sus cálculos, que es una ruta de tiempo irrelevante para la configuración, ya que es una ruta más rápida que la ruta de entrada de 35 ns. En la ventana de 35 ns, esos datos ya alcanzaron o entraron en 27 ns. No es un camino crítico.
¿Puedes confirmar si t_hold para la otra ruta es 44ns?