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:
- No configurable (establecido durante la síntesis).
- Jittery.
- 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