¿es posible en general implementar un duplicador de frecuencia completamente en FPGA? Vi algunas implementaciones en google al retrasar la entrada y XOR con la original. Pero también dicen que este método no es confiable y es posible que no logremos un rendimiento del ciclo de trabajo del 50%. No quiero comprometerme en el ciclo de trabajo porque es posible que tenga que usar el doblador 3 veces para lograr una frecuencia x8
El reloj de entrada experimenta un salto de frecuencia de +/- 5% (desde 13.56 Mhz) cada 30 us.
Intenté usar un DCM: mientras la entrada al DCM salta en un instante, la salida del DCM se desplaza gradualmente a la frecuencia requerida en un lapso de 20 us. Este tiempo es inaceptable porque saltamos en frecuencia cada 30 nos y no podemos tener un reloj a la deriva para 20 us de 30 us.
El reloj de entrada proviene de un procesador DSP externo, que utiliza dos bloques DDS (Síntesis Digital Directa) para generar la señal de 13.56 Mhz en dos puertos. El DDS salta la frecuencia de los 13.56Mhz cada 30 us y también varía su fase de -45deg a + 45deg, mientras que el otro varía la fase en la dirección opuesta. Estas dos señales de 13.56 Mhz se ingresan al dominio FPGA.
El FPGA produce señales 8x desde estas dos entradas, un total de 16 en número y variando en pasos de 45 grados entre sí. Actualmente el FPGA utiliza un DCM y chanclas para hacer esto. Los 13.56 Mhz se alimentan al DCM y el reloj 8x sale de él. Tanto la entrada al DCM como la salida del DCM se alimentan a un módulo de cambio de fase que cambia el reloj de entrada en el período del reloj 8x (45 grados). Todo esto funciona bien sin saltos de frecuencia, pero falla debido a saltos de frecuencia.