¿Cómo sé si no usar la entrada de reloj dedicada FPGA para un pin PLL es malo para mi diseño?

Los PLL son bloques duros de silicio. Están conectados a pines específicos para su entrada de reloj y manejan pines específicos para la salida de reloj. Es posible que elijamos un pin "no dedicado" para la entrada/salida de reloj del PLL. Cuando elegimos pines "no dedicados", el instalador utilizará el recurso de enrutamiento para enrutar el pin al PLL.

Puedo ver que Quartus genera una advertencia si no usamos un pin de reloj dedicado para entrada o salida. El mensaje generalmente indica que habrá un peor rendimiento de fluctuación. No está claro si se trata de un problema real.

En este caso, hay un controlador de memoria DDR3 alimentado por la señal del reloj. ¿Cómo sé si puedo salirme con la mía usando un pin de reloj no dedicado para el reloj usado por el PLL interno del controlador de memoria?

Comienza definiendo las fuentes de fluctuación en su sistema y sus requisitos de tiempo: configuración, tiempo de espera, etc. Ir en contra de la recomendación del proveedor de herramientas para una fuente de reloj para DDR3 suena como un ejercicio de frustración y dolor.
Yo diría, solo use siempre los pines dedicados. ¿Qué te cuesta hacer eso? Si no usa esos pines para su entrada de reloj, no puede (en las partes con las que estoy familiarizado) usarlos para E/S general.

Respuestas (1)

Suponga que el enrutador ejecuta esa entrada de reloj de referencia junto con algunas señales FPGA de 2,5 voltios que hacen la transición en 50 picosegundos, y la distancia paralela es de 1 mm y la separación es de 1 micrón. Suponga que la constante dieléctrica Er es 5.

Deje que el reloj de referencia sea de 10 MHz con flancos de 1 nanosegundo y también una oscilación de 2,5 voltios.

¿Cuánta fluctuación se creará? U otra forma de pensar, en el cruce por cero de la entrada de 10 MHz, cuánto se producirá un trastorno de tiempo. Suponga que la línea de reloj de entrada tiene una capacitancia total de 10pf.

Simplemente calculamos la capacitancia de acoplamiento entre las señales lógicas de 50 picosegundos de 2,5 V y el reloj de 10 MHz con sus 10 pF, modelando los dos capacitores en serie como un divisor de voltaje.

Primero: ¿cuál es la capacitancia? Use el modelo de placas paralelas, suponga que las placas son de 1 mm por 1 micrón y que el espacio entre las placas también es de 1 micrón. C = Eo * Er * Área/Distancia. Elegimos ignorar cualquier borde.

C = 9 e-12pF/metro * 5Er * (1 milímetro * 1u)/1u

C = 45 * 1e-12 * 1e-3 = 45 femtoFaradio = 0,045 pF

La relación de división de voltaje es 0.045 pf / 10pF, o 1/222.

El voltaje alterado en el cruce por cero es 2.5v/222 ~~ 10 milivoltios.

Usando Tjitter = Vnoise / SlewRate, tenemos

Tj = 0,01 voltios / 2,5 V por 1 nS = 1 nS * 0,01 V/2,5 = 1 nS * 1/250

Tj = 4 picosegundos

¿Es un problema 4picoSeconds de Jitter determinista?

Ese es un conjunto interesante de suposiciones que has hecho para poder elegir un número. ¿Se basa esto en información publicada o es más una suposición sobre el funcionamiento interno?
He usado Tj = Vnoise / SlewRate en una amplia gama de circuitos y frecuencias, lo que por supuesto requiere circuitos, sistemas y problemas de RF a horcajadas, para predecir el ruido de fase a aproximadamente 3dB para una serie de situaciones. Una vez que la pequeña hoja de cálculo que improvisé indicó que tuvimos suerte de haber cumplido con la especificación de ruido de fase (pero lo hicimos, para sorpresa de todos menos de mí mismo, después de haber pasado meses pensando en los problemas de energía detrás del ruido de fase). La siguiente capa de la cebolla fue el convertidor ECL-CMOS entre LO y el fracN. Y sí, no hay información publicada que usé aquí; sólo décadas de habilidades de silicio.
@ W5VO ¿Está de acuerdo con el método y el pensamiento? Recuerde que esto es determinista, no aleatorio; el ancho de banda del bucle PLL puede alterar en gran medida la fluctuación multiplicada. Recuerde que asumí 10pF en la línea del reloj de entrada. Si esa línea se almacena en búfer cerca del pad de entrada (quizás con un schmidtt de bajo ruido), con alta resistencia de salida, entonces la señal en el chip será muy vulnerable a la alteración del tiempo de borde de los bordes de casi 50pS. En mis suposiciones, el 10pF es lo que salva el día, así como el borde del reloj de 2,5 voltios/1 nS. El típico osc XTAL de 10Mhz con una sinusoide de 2vpp y solo un borde de 63v/uS es muy vulnerable.
Creo que está suponiendo mucho sobre la estructura interna de la FPGA, y estaría dispuesto a apostar que muchas de esas suposiciones son incorrectas. Si bien el cálculo del jitter inducido por el agresor parece correcto, tampoco está claro si esa es la fuente dominante de jitter o cómo se compara con el uso del pin de reloj adecuado. De esas incertidumbres, la autoridad de su "¿son 4ps de fluctuación un problema?" parece fuera de lugar.
sin embargo, todas las suposiciones están establecidas, las matemáticas están resueltas y el lector ahora sabe cómo pescar
Pero sin una forma de estimar correctamente todos los parámetros, vuelve al punto de partida. Podría encontrar valores que varíen en +/- un orden de magnitud.
Estoy de acuerdo. ¿Deberíamos usar un modelo de alambre a alambre para el acoplamiento de trazo a trazo, en lugar del modelo de placas paralelas? Resulta en un denso lío de metalización, la miríada de metales invalida un universo vacío de todo excepto los dos cables en el modelo de cable a cable, por lo que el modelo capacitivo de placas paralelas da una buena estimación. SlewRate también podría ser más preciso, pero dado que SlewRate variará ampliamente, incluso con Temperatura y VDD (enormemente) y dopaje y Cload, ¿por qué no usar 50picoSeconds? Nuevamente ofrezco: el lector ahora puede pescar. Todos los pasos, todas las aproximaciones, están sobre la mesa.
Estoy de acuerdo con @analogsustemsrf. Además, algunos FPGA tienen pines de ruta rápida donde los pines que no son de reloj se pueden enrutar a redes de reloj con poca demora y fluctuación. ¿Qué dispositivo/paquete estás usando?
Ver comentario en fastpath. Los pines de reloj dedicados son los mejores, pero a veces se pueden usar otros. Trabajé en un controlador DDR donde el diseñador del chip había puesto reglas estrictas en el reloj central (debido a DDR3 y 10G Ethernet) solo para luego unirlo en una señal de reloj de un solo extremo hacia el centro del enorme paquete BGA. Era imposible conseguir un reloj de 166 MHz con baja fluctuación de fase de esa manera (se dieron cuenta de su error cuando les mostré los diagramas de dBc). Sin embargo, afortunadamente, el DDR3 aún funcionó sin problemas debido a su autocalibración. Los diagramas de ojo excedieron la especificación a pesar del mal reloj.