4 votos

Frecuencia máxima del contador síncrono

Encuentre la frecuencia máxima del reloj a la que puede operar el contador en la figura de abajo. Suponga que el retardo de propagación a través de cada flip-flop y cada compuerta AND es de 10 ns. También suponga que el tiempo de configuración para las entradas JK de los flip-flops es despreciable. ingresa la descripción de la imagen aquí

Mi análisis: Como es un contador sincrónico, a los 10 ns todos los flip-flops producirán una salida. Pero ahora la salida debe llegar también a la compuerta AND, para que cuando llegue el siguiente reloj las entradas de los flip-flops estén listas.

La primera compuerta AND producirá una salida a los 10 ns, y luego esta entrada va a la segunda compuerta AND, que tarda 10 ns. Por lo tanto, el periodo de tiempo total del reloj es de 30 ns. Y la frecuencia es de 1/30 GHZ

Pero mi libro dice que el periodo de tiempo del reloj es de 20 ns. ¿Alguien puede aclarar la confusión aquí, cómo son posibles los 20 ns?

8voto

GSerg Puntos 33571

El libro está mal. El período mínimo del reloj es de 30 ns.

  • Primero FF de reloj a Q: 10 ns
  • Primera compuerta AND de entrada a salida: 10 ns
  • Segunda compuerta AND de entrada a salida: 10 ns
  • Tiempo de configuración para el tercer FF: 0 ns

Total: 30 ns

Este es el tiempo requerido desde que la salida del primer FF se pone en alto (mientras que los otros dos FFs ya están altos) para asegurar que el tercer FF se ponga en bajo en el próximo flanco de reloj.


EDICIÓN: Hay una cantidad sorprendente de confusión al respecto, así que aquí hay algunos diagramas que espero que lo aclaren.

El primero muestra el contador contando desde el estado de todos ceros, con cada espacio horizontal representando 5 ns. Los retardos del FF y de la compuerta se muestran como exactamente 10 ns. Tenga en cuenta que la entrada J2K2 al tercer FF apenas llega a tiempo para los estados 01x y 11x.

         __    __    __   |__    __    __    __   |__    __
reloj __/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__/  \__
           _____    :  _____       _____    :  _____       ___
Q0    ____/     \_____/   | \_____/     \_____/   | \_____/
             _____  :    _____       _____  :    _____       _
J1K1  ______/     \_____/ |   \_____/     \_____/ |   \_____/
                 ___________             ___________
Q1    __________/   :     | \___________/   :     | \_________
                   _:     |___             _:     |___
J2K2  ____________/ \_____/   \___________/ \_____/   \_______
                          |  _______________________
Q2    ______________________/                     | \_________
                          |                       |
10ns  ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

La línea vertical punteada muestra el caso en el que Q2 no se supone que cambie, y la línea vertical sólida muestra cuando sí lo hace.

Un diseño conservador (en ausencia de cualquier especificación mínima de retardo de propagación) asumiría que las salidas de los FFs y las compuertas se vuelven inválidas tan pronto como cualquier entrada cambie. Aquí hay una vista expandida que tiene esto en cuenta:

            _____       _____       _____      |_____ 
reloj _____/     \_____/     \_____/     \_____/     \_____
            _______________        :_______________
Q0    _____/XXX/       \XXX\_______/XXX/       \XXX\_______
            ___________________    :___________________
J1K1  _____/XXXXXXX/   \XXXXXXX\___/XXXXXXX/   \XXXXXXX\___
                        ___________________________
Q1    _________________/XXX/       :           \XXX\_______
                        __________ : ___________________
J2K2  _________________/XXXXXXXXXX\_/XXXXXXXXX/ \XXXXXXX\__
                                               |___________
Q2    _________________________________________/XXX/
                                               |
10ns   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^   ^

Aquí, he recortado un poco el retraso de J2K2 para ilustrar cómo apenas se vuelve válido a tiempo para los dos flancos de reloj clave. En resumen, Q0 se vuelve válido 10 ns después del flanco de reloj, J1K1 se vuelve válido 10 ns después de que Q0 se vuelve válido, y J2K2 se vuelve válido 10 ns después de que J1K1 se vuelve válido, lo cual es justo a tiempo para el próximo flanco de reloj.

También, como señaló Brian Drummond, estoy ignorando por completo la salida de acarreo del circuito (la tercera compuerta AND). La pregunta se refiere únicamente a la frecuencia máxima del reloj del contador en sí. Si esa salida necesita ser válida, entonces el período del reloj tendrá que ser aún más largo.

0 votos

:- En caso de contadores síncronos, es necesario asegurarse de que la entrada de todos los Flip-flops esté lista antes de que llegue el siguiente pulso de reloj, ¿o tenemos que asegurarnos de que la salida actual del flip-flop llegue a la entrada del siguiente flip-flop antes de que llegue el siguiente pulso de reloj?

2 votos

La línea de fondo es que las entradas J y K deben estar estables justo antes (tiempo de configuración) y justo después (tiempo de retención) de cada borde de reloj para determinar inequívocamente cuál será el siguiente estado de esa FF.

0 votos

@DaveTweed J1K1 será 1 primero, ¿después de 20ns verdad? ¿10ns (FF0) + 10ns (puerta AND 1)? ¿Cómo va a subir después de 10ns?

1voto

Brian Drummond Puntos 27798

A menos que el libro defina "operar" no puedes responder a esta pregunta.

Como dice Dave Tweed, estos tres FFs pueden alternar en un período de 30ns.

Sin embargo, hay que tener en cuenta que la salida de acarreo aún no es válida.

No puedo decir, basándome en la palabra "operar", si se pretende que la salida de acarreo sea válida antes del siguiente flanco de reloj. Solo la especificación detallada de este contador puede indicarte eso, así que puede que prefieras ser conservador y considerar 40ns para cubrir la cadena de acarreo.

0 votos

Sí, ignoré la salida de acarreo, ya que no había requisitos especificados ni implícitos para ello.

0voto

Jamie3213 Puntos 48

El libro tiene razón.

La lógica para un biestable JK es la siguiente:

introducir descripción de la imagen aquí

No se utilizan los valores SET/REST, así que solo hay que considerar Latch y Toggle para cualquier biestable.

Por lo tanto, considera que Q0, Q1 y Q2 son todos iguales a 0 como estado inicial

  1. Primer reloj. Q0 + 10 ns --> 1, Q1 = 0, Q2 = 0
  2. Primera compuerta AND + 10 ns --> 1, salidas de la segunda y tercera compuerta AND = 0 (nota que no hay demora)
  3. Segundo reloj. Q0 + 10 ns --> 0, Q1 + 10 ns --> 1, Q2 = 0
  4. Primera compuerta AND + 10 ns --> 0, segunda compuerta AND + 10 ns --> 1, tercera compuerta AND = 0
  5. Tercer reloj. Q0 + 10 ns --> 1, Q1 + 10 ns --> 0, Q2 + 10 ns --> 1
  6. Primera compuerta AND + 10 ns --> 1, Q1

O diagrama de tiempo:

introducir descripción de la imagen aquí

Establecí las demoras como aproximadamente 9 ns para permitir tiempo de configuración y el reloj al 20% para hacerlo más fácil de ver. El reloj puede funcionar a 50 MHz con solo 2 demoras significativas.

1 votos

Ten en cuenta que tu diagrama de temporización está mostrando un comportamiento completamente incorrecto para un contador síncrono. Además, la ruta crítica solo entra en juego entre el séptimo y octavo ciclo, en la transición de todo unos a todo ceros. Si el periodo del reloj no es >30 ns, el tiempo de preparación para el tercer FF no se cumple.

0 votos

Si crees que está mal, entonces dibújalo....Creo que descubrirás que estás equivocado. TimingTool.com Lo estás tratando como un contador, no lo es.

0 votos

Ver la edición en mi respuesta. Y estaba equivocado en mi comentario anterior -- la ruta crítica está involucrada siempre que Q1 es alto, porque es cuando las transiciones en Q0 necesitan propagarse hasta J2K2.

0voto

user44635 Puntos 4308

Aunque no estoy de acuerdo con el libro, y estoy de acuerdo con la OP y la respuesta de Dave de 30nS, creo que vale la pena ser un poco más detallado sobre lo que está sucediendo.

El primer flip-flop siempre cambia, los siguientes se van habilitando progresivamente desde la izquierda.

Aunque las salidas de los flip-flops cambian sincrónicamente, el árbol AND puramente combinatorio da un retraso de 10nS por etapa a medida que la habilitación se propaga hacia la derecha.

Si se agregara un cuarto flip-flop, el retraso aumentaría a 40nS.

El problema con este circuito es que el flip-flop que cambia más rápido está a una distancia (potencialmente) larga del árbol AND de habilitación del flip-flop más a la derecha. A medida que aumentas el número de etapas, el contador se ralentiza. Para ver una configuración que propague la habilitación en dirección opuesta, por lo que no ralentiza al agregar un número arbitrario de etapas, consulta la patente EP0469738A2, figuras 5 y 6.

0 votos

¿Citaste la patente incorrecta? Esa muestra solo contadores asíncronos, y el camino crítico en realidad es mucho más largo que el del contador síncrono.

0 votos

Si lees la especificación, verás que la ruta de control es local en lugar de global. Sí, las etapas son asíncronas, pero la propagación va en sentido contrario, de modo que las etapas más lentas se construyen desde la izquierda, de manera que el borde más rápido solo pase a través de una puerta, en lugar de toda la cadena como en la pregunta del OP. El circuito del OP se ralentiza a medida que agregas más etapas porque la señal más rápida tiene que pasar por toda la cadena de compuertas AND.

0 votos

Entiendo exactamente lo que dice la patente. Pero aún así no veo cómo se aplica al contador síncrono aquí. El contador síncrono requiere todos los resultados intermedios de la cadena de acarreo, por lo que no puedes simplemente "invertir las compuertas".

-2voto

ozmank Puntos 127

Las salidas están sincronizadas y el número máximo de retrasos de entrada es de 2 etapas.

Pullup=1 no es una entrada dinámica.

El elemento de gating es en realidad la salida de Terminal Count, permítanme llamarlo así, ya que a menudo se etiqueta como TC=1, cuando cada Registro Q=1. Para poder encadenar aún más este diseño o hacer que la salida de la última compuerta AND sea útil o al menos válida durante algún tiempo finito, es necesario sumar todos los retrasos de propagación del TC en relación con el reloj.

Ahora ves que hay 4 retrasos de propagación de 10 ns = 1 FF + 3 compuertas AND, por lo que la frecuencia máxima de reloj es de 25 MHz.

El problema con este diseño de TC es que el efecto de ondulación no es óptimo. El método preferido es usar una compuerta AND de múltiples entradas para que solo haya un retraso unitario (que en realidad es NAND + INV).

0 votos

Sí, son 2 etapas. Sin embargo, la primera etapa es de 20 nsec (retardo de propagación de FF a la salida más el retardo de AND), mientras que la segunda etapa es de 10 nsec (retardo de AND). Por lo tanto, el total requerido es 30.

0 votos

Ver actualización recién agregada. Para demostrar cualquier método, asume que todos los retrasos en el tiempo son cero excepto un tipo de componente, luego haz lo mismo para el siguiente y después suma. Incluye el tiempo de preparación y analiza la transición para la asimetría. Para encontrar la ruta crítica, elige el valor máximo. En este caso, la última compuerta de salida.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X