Reloj sesgado? ¿Bueno o malo?

4

Por lo tanto, he estado leyendo sobre la inclinación del reloj. Me di cuenta de que el sesgo del reloj puede ser increíblemente útil, en el sentido de que el sesgo positivo se puede usar para acelerar el circuito al aumentar la frecuencia del reloj.
Entonces, ¿por qué se toman tantas medidas para eliminar completamente el sesgo del reloj? Me parece que tener una cantidad controlada es extremadamente beneficioso? ¿Hay efectos dañinos del sesgo del reloj?

    
pregunta krandiash

3 respuestas

2

El sesgo del reloj ocurre cuando los bordes del reloj ocurren en diferentes momentos en diferentes bloques del circuito. Esto puede deberse a la distancia física, a los amortiguadores de reloj oa las reactancias parásitas. El sesgo puede ser positivo o negativo (reloj anticipado o retrasado), dependiendo de qué señal se toma como referencia.

Normalmente, en una red sincrónica el reloj puede generar errores en los datos: un ejemplo son las puertas dinámicas, donde la salida se carga previamente en una fase del reloj y se elabora en la otra. El sesgo puede causar la propagación del estado de precarga en lugar del correcto.

En la lógica síncrona, el sesgo se considera junto con la latencia, el tiempo de configuración y el tiempo de espera de las puertas y registros para determinar la frecuencia de reloj máxima que se puede usar. Si no se conoce el sesgo a priori , debe considerarse como una tolerancia y contribuirá negativamente a la velocidad del sistema.

Skew también puede usarse para retrasar el reloj a un registro, lo que proporciona más tiempo para que la lógica antes de ese registro se desarrolle. Por lo tanto, se puede utilizar un reloj más rápido que satisfaga los requisitos de configuración y tiempo de espera del registro.

Esta es una explicación breve y puede que no sea clara, pero siempre puedes buscar en google o consultar wiki para obtener más detalles.

    
respondido por el clabacchio
0

En muchos sistemas de lógica digital, habrá combinaciones de eventos (llámelos X e Y) que no deben ocurrir simultáneamente. El sistema se comportará de manera definida si X sucede antes de Y, y se comportará en una función definida (típicamente diferente) si Y ocurre antes de X, pero su comportamiento será indefinido si ocurren simultáneamente (ya que la mayoría de los eventos de interés toman una decisión). cantidad de tiempo pequeña pero no nula; los eventos se consideran simultáneos si alguna parte se superpone).

Si los eventos X e Y son activados por el pulso del generador de reloj, a menudo será necesario asegurar que el tiempo entre ese pulso y X sea definitivamente más largo que el tiempo entre ese pulso e Y, o bien definitivamente más corto. El sesgo del reloj en un sistema generalmente tendrá el efecto de cambiar la cantidad de tiempo entre el momento en que el generador de reloj comienza a emitir un pulso y los momentos en que ocurren diferentes eventos. La desviación del reloj que podría acercar los eventos en el tiempo es mala y puede provocar un mal funcionamiento si los tiempos se superponen. El sesgo del reloj que aumentaría la separación entre eventos que se supone que están separados es generalmente bueno, siempre que no disminuya demasiado la separación entre otros eventos que también deben estar separados .

Muchos sistemas tienen una variedad de restricciones de tiempo interrelacionadas; Si bien podría ser posible mejorar los márgenes de tiempo si uno tuviera un control suficientemente preciso del sesgo de tiempo, a menudo en la práctica, dado el nivel de control que es fácilmente disponible, sería difícil mejorar algunos márgenes de tiempo críticos al agregar un sesgo de tiempo sin hacer Otros márgenes de tiempo igualmente críticos son peores. En general, desde una perspectiva de ingeniería, es más fácil tratar de minimizar la desviación de lo que sería "optimizarla", así que eso es lo que generalmente hacen las implementaciones.

    
respondido por el supercat
0

Se equivocó de que el sesgo del reloj puede ser increíblemente útil. Sí, establecer el sesgo correcto puede ayudarte a aumentar la frecuencia del reloj a veces, pero el efecto es bastante limitado.

Por otro lado, tener un núcleo que requiera sesgo de reloj para funcionar tiene muchos inconvenientes. No puede sintetizarlo para FPGA / ASIC que no tienen un PLL adicional solo para generar el sesgo correcto para usted. Cambiar la familia FPGA solo probablemente requerirá que vuelva a estimar la cantidad de sesgo requerido. Modificar ese núcleo creado por otra persona es una pesadilla.

El único caso en el que me gustaría tocar para sesgar la configuración es cuando tengo un diseño completo para un chip específico y no puedo obtener la velocidad de reloj requerida por otros medios.

Piense en la optimización del software como ilustración: puede ir más rápido al reescribir su función en el ensamblaje, pero tiene que ser la función correcta (la del bucle activo), y pierde la portabilidad, la capacidad de mantenimiento y la reutilización del código. La optimización prematura está en la lista superior de errores que hacen los programadores inexpertos.

    
respondido por el Dmitry Grigoryev

Lea otras preguntas en las etiquetas