¿Qué es importante en la señal de los relojes de computadora: los bordes de la señal o los intervalos cuando la señal es estable? ¿Se producirá una propagación de valores múltiples?

Estoy tratando de averiguar algunos conceptos básicos de la electrónica digital. Todos hemos visto el gráfico cuadrado de la señal del reloj de la computadora:

ingrese la descripción de la imagen aquí

He leído varios artículos en Internet y todavía no puedo entender si el momento del cambio de valor de la señal (supongo que en el gráfico solo se aproxima como un punto) es importante. ¿Significaría que representa el intervalo cuando un circuito se alimenta de las entradas y se espera que propague los valores a las salidas, durante el intervalo y los períodos de la señal estable se usan para otra cosa?

¿O los bordes no son importantes pero los períodos de la señal estable sí lo son y la señal del reloj podría considerarse como solo una entrada de circuito adicional, con ajuste de voltaje alto o bajo? Significaría que el circuito comienza, por ejemplo, a reaccionar en otras entradas cuando la señal del reloj se establece en 1 y se espera que obtenga valores en las salidas en algún lugar de ese ciclo de reloj, ¿cuando la señal del reloj es 1 o 0 justo después de eso?

Solo la segunda opción me parece lógica, pero los autores de Internet escriben regularmente que se espera que suceda algo en el borde ascendente y que un circuito debería obtener sus salidas en el intervalo. ¿Ese es solo un término para decir que la señal está configurada en alto ahora?

Si la otra opción que prefiero es verdadera, mire, por ejemplo, un registro de contador hecho de un solo flip flop JK con su salida invertida alimentando su entrada J. Se espera que cambie de 0 a 1 en cada ciclo. Si el circuito debe comenzar a reaccionar en sus entradas cuando la señal del reloj se convierte en 1, ¿qué pasa si el resultado se propaga a las salidas mientras la señal del reloj sigue siendo 1 y hay suficiente tiempo para propagar los valores a través de todo el circuito una vez más mientras la señal del reloj es 1? sigue siendo 1 en el mismo ciclo y cambia el contador una vez más? No veo nada en el circuito que deba detener múltiples propagaciones del mismo ciclo de reloj si el circuito es lo suficientemente rápido.

Respuestas (4)

Tienes razón. La activación de borde es solo una forma mucho más estrecha de activación de nivel y depende del tiempo. Dentro de un dispositivo activado por flanco, el flanco cambiante del reloj simplemente se convierte en un pulso que hace que acepte las entradas: ¡un disparador de nivel! Pero el disparador de nivel es muy corto. Debe ser tan corto que las salidas no puedan propagarse de regreso a la entrada para causar algún daño en el momento en que aparece y desaparece el pulso activado por el borde.

La activación de borde no funcionaría si las señales se propagaran instantáneamente a través de cables y tuvieran velocidades de respuesta ilimitadas.

También tenga en cuenta que los relojes se pueden dividir en fases para resolver problemas donde esto no es lo suficientemente rápido.

Un flip-flop maestro-esclavo es un ejemplo de sincronización de reloj. Divide la señal del reloj en dos fases al reaccionar tanto a los flancos ascendentes como descendentes, pero de manera diferente. La entrada se acepta en un flanco ascendente en un latch de entrada, y luego en un flanco descendente se propaga a un segundo latch donde produce una salida.

Kaz, tu respuesta en electronics.stackexchange.com/questions/65463/… me proporcionó casi todo lo que necesitaba. Gran respuesta, veo que muchas personas que visitan los foros de hardware no conocen los hechos que mostraste en la respuesta, y no pude obtener una respuesta clara. Gracias
Kaz, solo eche un vistazo a un solo enlace de contador de ondulación flip-flop JK y solo el circuito NAND justo al lado de la entrada K. Desde el diagrama del contador de ondas veo J y K
son siempre altos . Volvamos a la NAND en la entrada K de un solo contador de ondulación JK: si se activa por flanco en este momento, las tres entradas para el circuito NAND son altas y cambia su valor a cero. Pero antes de que cero se propague a la salida NAND, el reloj (en realidad, la salida del campo que recibe una señal alta de nanosegundos para el flanco ascendente) vuelve a cero, y ese nanosegundo es más corto que la NAND necesita propagar los valores, como dijiste. ¿No rompería la salida NAND esperada (cero)? Esta señal alta de nanosegundos no funciona
el trabajo en mi cabeza bajo ninguna circunstancia.

No veo nada en el circuito que deba detener múltiples propagaciones del mismo ciclo de reloj si el circuito es lo suficientemente rápido.

Esto se conoce como una violación del tiempo de espera y son terriblemente fatales para un circuito. No sucede porque los creadores de ASIC ejecutan un costoso software de análisis de tiempo para verificar cada ruta en el diseño y asegurarse de que la ruta no sea demasiado rápida como para que el valor de entrada pueda cambiar antes de que finalice la ventana de tiempo de espera.

Generalmente, las rutas se alimentan a través de suficientes celdas combinatorias y los cables tienen suficiente RC para que las entradas no cambien hasta mucho después de que expire el período de tiempo de espera.

Puede leer wikipedia sobre los tiempos de configuración y espera para obtener una explicación más detallada.

Las violaciones del tiempo de configuración y espera ocurren todo el tiempo en los ASIC, pero cuándo, dónde y cómo ocurren se controlan cuidadosamente. Se garantiza que sucederá siempre que haya una entrada asíncrona. La mayoría de las entradas de reinicio a los chips son asíncronas con el reloj local y, por lo tanto, pueden tener violaciones de configuración/retención que deben abordarse en el diseño.

¿Qué es importante acerca de una señal de reloj? ¡Todo, por supuesto! :)

Pero en serio, hay muchos aspectos en una señal de reloj y es difícil limitarla a solo un par de cosas. También depende en gran medida de lo que estés haciendo con él. A continuación, te daré algunos aspectos a tener en cuenta:

Frecuencia: algunas aplicaciones requieren una frecuencia (y período) más precisa que otras. Una interfaz Ethernet requerirá un reloj más preciso que algo que controle un ventilador. Hay muchas cosas que pueden afectar la frecuencia, pero se limita principalmente a las características del cristal y/o el PLL.

Jitter: estoy definiendo vagamente el jitter como un cambio en la frecuencia/período a lo largo del tiempo. Para usar viejos tocadiscos como analogía, el jitter es como wow y flutter. El rendimiento de la fluctuación no suele ser un problema a menos que esté realizando comunicaciones de alta velocidad o de reloj de espectro ensanchado. Hay una gran cantidad de cosas que pueden afectar el jitter, incluido el ruido, la potencia, las características de cualquier búfer de reloj, el enrutamiento de la señal, la integridad de la señal y la fase de la luna.

Bordes: un buen borde de reloj subirá/bajará rápida y monótonamente. Lo que quiero decir con monótonamente es que si está subiendo, entonces solo está subiendo (sin caídas ni repiques, etc.). Si está alimentando una entrada TTL/LVTTL, entonces solo nos preocupamos por los umbrales de nivel de entrada lógico de 0.8v a 2.0v. Entre esos dos niveles, la señal debería subir/bajar rápida y monótonamente. Fuera de esa ventana de voltaje, puede rebotar dentro de lo razonable (más sobre esto más adelante). Si sus bordes no son buenos, puede tener doble sincronización, fluctuación excesiva, sincronización impredecible, etc.

Integridad de la señal: ¿ La señal tiene muchos sobreimpulsos o subimpulsos? ¿Hay timbre? Si bien es posible que esto no afecte directamente la utilidad del reloj, podría indicar problemas más serios, como un seguimiento de reloj mal enrutado o una terminación de señal incorrecta. La mala integridad de la señal también significa que estará irradiando y recibiendo más ruido de RF del que debería, lo que provocará que no pase las pruebas de EMC o que tenga un diseño menos que robusto.

Sesgo: el sesgo del reloj es la diferencia en los tiempos de llegada del reloj en dos dispositivos en el circuito. Por ejemplo, supongamos que tiene un reloj y dos dispositivos, pero el seguimiento que conduce a un dispositivo es 6 pulgadas más largo que el seguimiento al otro dispositivo. En ese caso, el sesgo del reloj será de aproximadamente 1 ns, ya que las señales viajan aproximadamente 6 pulgadas por ns en un cable. A veces, 1 ns puede no ser un gran problema, pero otras veces puede ser un gran problema.

Ciclo de trabajo: la mayoría de la gente piensa que los relojes tienen un ciclo de trabajo de 50/50, pero eso no siempre es cierto. Muchos osciladores enlatados arrojan un ciclo de trabajo de 60/40 y muchos chips requieren una entrada de reloj de 55/45 (o mejor). Los búferes, el enrutamiento de señales, las tasas de borde, la potencia y otros factores también pueden afectar negativamente el ciclo de trabajo. Hacer funcionar relojes como una señal diferencial puede reducir significativamente este efecto.

Ahí vas. ¡Espero que eso ayude!

El intervalo entre relojes permite que las señales se estabilicen antes del flanco ascendente del próximo reloj.

Entre los flancos activos del reloj, puede haber dispositivos lógicos que no estén sincronizados con el reloj y necesiten unos nanosegundos para establecer un valor de salida antes de que llegue el siguiente flanco del reloj a los dispositivos lógicos que alimentan los dispositivos no sincronizados.

Este es solo un ejemplo y probablemente haya mejores respuestas para esto.

En su punto de flip-flop JK, si el reloj es lento, ruidoso y/o nervioso, esto puede suceder, pero los relojes no están destinados a ser así.

Pero mire ese punto de flip-flop de JK: como escribió en la primera oración, el circuito debe tener valores propagados en las salidas antes del próximo flanco ascendente del reloj. En su última oración, dijo que podría ocurrir una propagación múltiple si el reloj es demasiado lento, lo que significa que tiene que ser más rápido que la propagación, ¿la propagación no debe ocurrir mientras el reloj está alto en ese ciclo? ¿Me deja concluir que para cada circuito la propagación debe ocurrir en la fase de señal baja (cero) del mismo ciclo? ¿Estoy pensando bien?
Si un reloj es lento y no hay ruido en el reloj o en el circuito, en algún momento la salida del flip-flop cambiará de estado pero no volverá a cambiar de estado a menos que haya ruido en el reloj o fluctuación. Tal vez si no entiendo bien su pregunta, debería publicar un dibujo de su circuito. Puede publicar en algunos sitios de Internet y proporcionar un enlace. Yo o alguien más incrustaremos su diagrama en su pregunta.
No tengo un circuito específico, solo estaba leyendo Wikipedia sobre flip-flops y contadores y contemplé el único contador de ondulación de flip flop JK que se menciona allí pero no está diagramado. Obviamente tendré que leer más, por ejemplo, sobre los términos de ruido y temblores con los que no estoy familiarizado. Parece que solo yo tengo el dilema sobre el funcionamiento del reloj de la computadora y el resto de ustedes puede ejecutar fácilmente un circuito digital con un reloj en su cabeza y funciona para usted. Gracias