All Digital Phase Lock Loop

9

Estoy buscando implementar un bloqueo de fase en un FPGA sin usar ningún componente externo (que no sea el ADC). Para simplificar el bloqueo a un simple pulso binario es adecuado. La frecuencia de las señales es ~ 0.1-1% del reloj. No puedo usar los PLL del reloj a bordo porque normalmente son:

  1. No configurable (establecido durante la síntesis).
  2. Jittery.
  3. No soporta la frecuencia que necesito.

He estado revisando la literatura y encontré algunos bucles bloqueados de fase binaria. Lo más notable es un diseño de "robo de pulso" al que puedo publicar un enlace si lo desea. Lo he implementado y sintetizado con cierto éxito, pero su rango de fluctuación y bloqueo no fue tan bueno como lo anuncian. También he tenido éxito usando un DVCO externo, pero preferiría si puedo implementar todo en el chip.

Un diseño de circuito digital o incluso una pista en la dirección correcta sería útil (he estado golpeando mi cabeza contra esto durante un tiempo), una implementación probada de FPGA sería maravillosa pero no esperada.

AGREGADO 10-27-2010

El diseño DPLL real que utilicé tiene un "Filtro de paso aleatorio" como filtro de bucle (no el "robo de pulso" descrito anteriormente, revisando mis notas que no funcionaron bien), que luego controla los pulsos del reloj a la DCO. El rango de bloqueo se establece a través de divisor en el DCO. La sensibilidad del bucle se establece variando la longitud de la caminata aleatoria.

El documento en el que se encuentra esto se cita al final de esta publicación. Después de implementar partes del mismo, descubrí que en realidad ya estaba implementado en OpenCores, sin embargo, resulta que en los últimos meses se eliminó el proyecto pero tengo los archivos Verilog guardados si alguien los quiere.

Yamamoto, H .; Mori, S .; , "Rendimiento de todos los bucles sincronizados en modo binario y cuantificados en binario con una nueva clase de filtro secuencial", Comunicaciones, Transacciones IEEE, vol.26, no.1, pp. 35-45, enero de 1978

doi: 10.1109 / TCOM.1978.1093972

URL: enlace

    
pregunta crasic

2 respuestas

6

¿Puede publicar más detalles sobre la frecuencia objetivo, la fluctuación de fase y el ancho de banda del bucle (tiempo de establecimiento requerido)? Además, ¿qué tipo de oscilador desea utilizar (externo con un DAC, con / sin interpolación, un contador / acumulador digital en chip)?

Si está satisfecho con un "oscilador" digital (es decir, un acumulador desbordante) y su fluctuación, el resto del circuito puede ser bastante simple:

  • un contador (PFD) que cuenta el número de ciclos entre la referencia y la salida de PLL (opcionalmente dividida),
  • un filtro digital: cualquier cosa lo hará asumiendo que hace la integración (un acumulador) y tiene un cero (¿menos (o más?) una salida PFD escalada) para estabilizar el bucle, opcionalmente uno o más polos por encima del ancho de banda del bucle para reducir el valor de control "rizado" en la frecuencia de referencia (solo importa si fref
  • los bits más significativos de la salida del filtro digital (valor de control de DVCO) se dan como entrada al acumulador de desbordamiento (DVCO).

En cuanto al ancho de banda del bucle, si no se aplica por el tiempo de liquidación, decídalo según las contribuciones de ruido de todos los componentes.

  • Si el jitter proviene principalmente de la referencia o de PFD, use un ancho de banda más pequeño,
  • Si el ruido proviene del oscilador, auméntelo.

En caso de que la señal de referencia esté modulada en fase o frecuencia, use un ancho de banda de bucle inferior a la frecuencia más pequeña de la señal que modula la referencia.

Se utilizan técnicas más complejas si la frecuencia de salida es cercana o igual a la frecuencia de reloj y / o si se requiere una fluctuación de fase baja o un rango de bloqueo muy rápido. Tal vez en su caso no sean necesarios, además de que no sean adecuados para una implementación de FPGA.

    
respondido por el Andrzej
1

Si puede tolerar un poco de inestabilidad pero, en su mayoría, solo necesita un cronograma preciso en contra de un reloj flexible para la recuperación de datos, es posible que desee implementar algo como CAN Standard PLL (comienza en la página 67 de ese PDF). Esto funciona sobre la base de un contador de desbordamiento que debe ajustarse nominalmente correctamente, pero se sincroniza hasta los bordes en la corriente de pulso entrante.

    
respondido por el AM Shea

Lea otras preguntas en las etiquetas