¿En qué unidad física se mide la 'desviación del reloj'?

Me gustaría modelar una señal de reloj con un parámetro de deriva en mi simulación digital.

La implementación actual maneja:

  • frecuencia / periodo
  • fase -360.0 .. 360.0 grado
  • ciclo de trabajo 0.0 .. 1.0

Propiedades no implementadas:

  • deriva
  • estar nervioso

Para circuitos de cruce de dominio de reloj, me gustaría implementar un reloj primario (estable) y secundario (a la deriva). Sé que mi modelo digital no puede manejar los problemas de metaestabilidad, ese no es mi objetivo en absoluto, pero pude detectar errores de apretón de manos.

*La deriva del reloj no es fluctuación . Los relojes que funcionan a la misma velocidad pueden variar en rangos inferiores al porcentaje, por lo que un circuito funciona un poco más rápido.*

La mayoría de los documentos solo tienen clasificaciones para la fluctuación de fase, por otro lado, los transceptores, como en los FPGA, tienen unidades de compensación de fase que realizan la corrección de fase automáticamente. No puedo encontrar un valor máximo para ellos...

Entonces mis preguntas son: - ¿Es un valor absoluto o relativo? - Si es relativo, ¿relativo a qué: un ciclo, 1 segundo,...?

Si alguien tiene alguna sugerencia sobre cómo modelar el jitter, también será bienvenida :).

La deriva dada es solo que la frecuencia es ligeramente diferente de lo que debería ser, por ejemplo, si ejecuta un reloj a 2MHz y el segundo a 2.00001MHz, los dos entrarán y desfasarán, seguramente solo necesita cambiar el ajuste de la frecuencia del segundo reloj por una cantidad fija (es decir, un Δ F ).
Sí, esa es una solución alternativa, pero aún me deja con el problema clock_freq2 := clock_freq1 * x y cómo se mide x. Quiero que un usuario pueda ingresar una "unidad común" para x y el código calcula el resto: por ejemplo, con su fórmula.
Podrías hacer simplemente F 2 = F 1 + Δ F , de este modo Δ F mantiene las unidades de Hz. si vas con F 2 = F 1 × X , entonces X no tiene unidades, es simplemente un factor de escala, que también estaría bien.

Respuestas (1)

La forma de medir la deriva depende de los efectos que esté modelando.

Los osciladores de cristal tienden a especificar una desviación fraccionaria de la frecuencia, generalmente en "ppm" o partes por millón. A menudo especifican (o dan valores típicos para) la deriva debida a la temperatura y al envejecimiento. Por ejemplo, una deriva de 25 ppm por año significa que después de un año la frecuencia puede estar entre 0,999975 y 1,000025 de lo que era inicialmente.

Los sistemas de comunicaciones a menudo especifican el desfase del reloj en términos de intervalos unitarios (UI). Wander mide la deriva del reloj en intervalos mucho más grandes que el intervalo de baudios. Por ejemplo, el reloj se desvía después de varios milisegundos o más, para un sistema de 1 Gb/s. Un desvío de una interfaz de usuario significa que la fase del reloj se ha desplazado en un intervalo de baudios completo. El valor especificado puede ser el rms de una variación estadística o puede ser un límite máximo.

Creo que wander es el nombre correcto para lo que quiero modelar. Algo así como un cambio de 1 UI después de 1000 ciclos. Entonces, para un fifo de reloj cruzado, existe una situación de error potencial cada 1000 ciclos de prueba (sé que es (10 ** 9 o incluso más) más rápido que en el mundo real.