Seleccionando un cristal externo para FPGA

3

Suponiendo que el FPGA tiene un multiplicador de reloj para obtener frecuencias mucho más rápidas internamente, ¿cuál es la mejor opción para un cristal externo? Digamos que tengo un FPGA clase Virtex 7, y planeo ejecutarme internamente a ~ 150 MHz y tengo un periférico externo que necesita a 283.0 MHz. La elección del hombre de paja para la frecuencia del cristal es actualmente de 40 MHz, pero no estoy seguro de por qué se eligió.

¿Hay una frecuencia mínima? Por supuesto, la frecuencia máxima viene determinada por el enrutamiento de PCB, por lo que puedo entender que no sea demasiado alto. ¿Pero qué impide ir más bajo?

Mi intuición es que cualquier cosa en el rango de 10 a 50 MHz es razonable, pero ¿hay compensaciones?

    
pregunta Mark Lakata

2 respuestas

7

Si desea usar un DCM para generar las frecuencias necesarias dentro del FPGA, entonces es más dependiente de la relación de división en el DCM que el cristal en sí mismo: el DCM generará más ruido de fase que un oscilador de cristal decente. . Además, por encima de un cierto punto, necesita usar LVDS o LVPECL o similar para conectar el oscilador al FPGA con trazas de impedancia controladas, de lo contrario puede obtener reflexiones. Por ejemplo, para Ethernet 10G, necesita un cristal de 156.25 MHz, un búfer de reloj y trazas diferenciales controladas de impedancia a todas las ubicaciones de entrada de reloj del transciever. Un cristal de 40 o 50 MHz causará menos problemas si el ruido de fase no es un problema importante; generalmente no lo es, a menos que lo esté multiplicando a una frecuencia muy alta, como 10.3125 GHz para 10G Ethernet. El ruido de fase del PLL generalmente depende de la frecuencia más baja a la que debe dividirse, por lo que puede obtener un mejor rendimiento si selecciona un tamaño de cristal que permita coeficientes de PLL más pequeños: 50 MHz solo necesita ser multiplicado por 3 para obtener 150. 40 tendrían que ser divididos por 4 y luego multiplicados por 15. 283 MHz es divertido, aunque es posible que necesites hacer algunos trucos en Excel para resolverlo. Puede ser una buena idea elegir un oscilador que le brinde una pequeña fracción racional para las dos frecuencias que necesita. Alternativamente, podría ser una buena idea usar dos osciladores diferentes.

En general, todas las tarjetas en las que he trabajado han usado osciladores de 50 MHz o 100 MHz para el núcleo y 156.25 MHz con circuitos de gestión de reloj para los transceptores, y luego simplemente ignoramos el oscilador de 50 MHz y lo conectamos todo a uno de los relojes del transceptor.

    
respondido por el alex.forencich
0

Si su solución aún está en desarrollo o la frecuencia solicitada no es tan común, le recomendaría un oscilador programable como Silicon Laboratories Si570, es programable a través de I²C hasta 1.4 GHz en pasos de 0.5 Hz. Por supuesto, este oscilador no puede ser su fuente principal de reloj, si se utiliza el FPGA para reprogramar el Si570 :)

    
respondido por el Paebbels

Lea otras preguntas en las etiquetas