Estou procurando implementar um bloqueio de fase em um FPGA sem usar nenhum componente externo (que não seja o ADC). Para simplificar, o bloqueio a um simples pulso binário é adequado. A frequência dos sinais é de ~ 0,1-1% do relógio. Não posso usar os PLLs de relógio a bordo porque eles são tipicamente:
- Não configurável (definido durante a síntese).
- Ansioso.
- Não suporte a frequência que eu preciso.
Eu estive examinando a literatura e encontrei alguns loops de fase binária bloqueados. O mais notável é o design de "roubo de pulso", no qual posso postar um link, se desejado. Eu implementei e sintetizei com algum sucesso, mas seu alcance de jitter e bloqueio não era tão bom quanto o anunciado. Eu também tive sucesso usando um DVCO externo, mas eu preferiria se eu pudesse implementar tudo no chip.
Um projeto de circuito digital ou até mesmo uma dica na direção certa seria útil (já estou batendo nisso há algum tempo), uma implementação comprovada de FPGA seria maravilhosa, mas não esperada.
ADICIONADO 10-27-2010
O design atual da DPLL que eu usei tem um "Random Walk Filter" como o filtro de loop (não o "roubo de pulso" descrito anteriormente, passando por minhas anotações que não funcionaram muito bem), que direciona os pulsos do relógio para o DCO . O intervalo de bloqueio é definido via divisor no DCO. A sensibilidade do loop é estabelecida variando o comprimento da caminhada aleatória.
O artigo em que isso é encontrado é citado no final deste post. Depois de implementar partes dele, descobri que ele já estava implementado no OpenCores; no entanto, nos últimos meses, o projeto foi excluído, mas eu tenho os arquivos Verilog salvos, se alguém quiser.
Yamamoto, H .; Mori, S .; , "Desempenho do loop binário bloqueado de fase digital quantizado binário com uma nova classe de filtro sequencial", Communications, IEEE Transactions on, vol.26, no.1, pp. 35-45, janeiro de 1978
doi: 10.1109 / TCOM.1978.1093972
URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1093972&isnumber=23895