doblador de frecuencia en fpga

1

¿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.

    
pregunta Sai Gautam

1 respuesta

1

Todos los bloques DCM (administradores de reloj digital) en los FPGA con los que he trabajado pueden escalar y cambiar las frecuencias del reloj de manera limpia. Asegúrese de que su reloj base de entrada llegue a un pin de reloj específico si puede, ya que esto introducirá el enrutamiento menos inclinado al dcm.

Si desea una orientación más específica, ¿qué parte está orientando y qué frecuencias? Si está apuntando a Ghz, por ejemplo, en una parte barata, probablemente no suceda.

Los bloques DCM a menudo tienen múltiples salidas que pueden ser dirigidas a diferentes frecuencias desde el mismo reloj base, por lo que todos los relojes generados pueden tener un deber y una fase comunes.

Editar : veo el triste historial de sus preguntas anteriores sincronización en spartan6 FPGAs y Salida de reloj inestable de Spartan 6 DCM - Por favor, enlaza las preguntas en el futuro.

Como han señalado otros comentaristas, lo que está preguntando es imposible en el caso general . Una unidad de gestión de reloj no puede ser estable (rechazar el ruido en el reloj base) y responder a cambios lineales / de pasos en la entrada rápidamente. Estos son objetivos de diseño contradictorios.

Si fuera usted, me conformaría con un buen reloj fijo estable que ingresaría en el FPGA y luego reprogramaría las relaciones de reloj de salida del módulo DCM usando la lógica en su diseño. Sé de antemano que las partes de StratixV tienen un bus en los DCM para permitir cambios de relación y de fase mientras se opera. Esto debería evitar la necesidad de ajustar y bloquear el reloj de entrada cada vez.

Cualquiera que sea la retroalimentación o la interfaz de usuario que utilices para realizar estos ajustes, el FPGA se encargará de ello, por ejemplo. descodificar las instrucciones UART desde una PC o escanear el teclado / los interruptores.

Eche un vistazo a esta nota de aplicación de Xilinx, sugiere que los PLL de Spartan 6 tienen un puerto de reconfiguración dinámica para hacer este tipo de cosas: enlace

Actualización: Si por alguna razón realmente necesita que la entrada provenga de un reloj variable, puede elegir diseñar una etapa de entrada que mida la frecuencia del reloj de entrada contra un reloj base estable, midiendo el cambio de frecuencia (en Hertz) y lo utiliza para reprogramar dinámicamente el DCM. Esto es algo avanzado, probablemente solo unas pocas docenas de ingenieros en el mundo que usan los puertos dinámicos en los FPGA. Puede necesitar algún diseño analógico, por ejemplo. un mezclador externo / Heterodyne primero para obtener suficiente resolución. Espera tener que plantear algunas consultas con Xilinx para que todo funcione.

    
respondido por el shuckc

Lea otras preguntas en las etiquetas