Todo el bucle de bloqueo de fase digital

9

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

  1. No configurable (establecido durante la síntesis).
  2. Nervioso.
  3. No soportes 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" en el que puedo publicar un enlace si lo deseo. Lo he implementado y sintetizado con cierto éxito, pero su rango de fluctuación y bloqueo no fue tan bueno como se anunció. También he tenido éxito usando un DVCO externo, pero preferiría si puedo implementar todo en el chip.

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

AÑADIDO 10-27-2010

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

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

Yamamoto, H .; Mori, S .; , "Rendimiento del bucle binario cuantificado totalmente digital con fase bloqueada 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: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1093972&isnumber=23895

crasico
fuente
1
Haga un enlace al diseño de 'robo de pulso', no hay razón para no hacerlo.
Kevin Vermeer

Respuestas:

6

¿Puede publicar más detalles sobre la frecuencia objetivo, el jitter 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 oscilación ?, un contador / acumulador digital en chip)?

Si está satisfecho con un "oscilador" digital (es decir, un acumulador que se desborda) 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 PLL (opcionalmente dividida),
  • un filtro digital: cualquier cosa funcionará suponiendo que realiza 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" a frecuencia de referencia (solo importa si fref
  • Los bits más significativos de la salida del filtro digital (valor de control DVCO) se proporcionan como una entrada al acumulador de desbordamiento (DVCO).

En cuanto al ancho de banda del bucle, si no se aplica mediante el tiempo de establecimiento, decídalo en función de las contribuciones de ruido de todos los componentes.

  • Si el jitter proviene principalmente de la referencia o de PFD, use un ancho de banda menor,
  • Si el ruido proviene del oscilador, increméntelo.

En caso de que la señal de referencia esté modulada en fase o frecuencia, utilice 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 complicadas si la frecuencia de salida es cercana o igual a la frecuencia del reloj y / o si se requiere un jitter bajo o un rango de bloqueo muy rápido. Tal vez en su caso no sean necesarios, además pueden no ser adecuados para una implementación de FPGA.

Andrzej
fuente
Si uno quiere, por ejemplo, multiplicar la frecuencia de una señal entrante estable por 16 y tiene un reloj que es rápido en relación con eso, ¿qué ventaja tiene usar un filtro digital en lugar de medir el número de relojes entre cada borde y el anterior? uno, y averiguar qué frecuencia se debe emitir para que el pulso de salida que coincida con el próximo borde del reloj de entrada lo haga? Si la fluctuación de fase del reloj de entrada no es más que un ciclo de reloj, la fluctuación de fase de salida debería ser igual de buena. Tal esquema podría comenzar a producir una salida limpia tan pronto como reciba el segundo pulso de entrada.
supercat
1

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

AM Shea
fuente