5 votos

Sincronizar salidas de FPGAs separadas en 1ns

Editar: He logrado alcanzar una incertidumbre de 560ps en la simulación utilizando retroalimentación de PLL externo en todo el chip. Una vez que verifique en hardware real, publicaré una solución completa.

Estoy tratando de sincronizar las salidas de dos FPGAs Spartan-6 físicamente separadas. Idealmente, la diferencia entre las salidas de los dos dispositivos sería inferior a 1ns.

Las salidas son pines diferenciales controlados por un OSERDES2.

Una posibilidad podría ser distribuir un reloj de referencia a las dos FPGAs. La señal se enrutaría para que llegue a cada FPGA "exactamente al mismo" tiempo.

introducir descripción de la imagen aquí

El reloj de referencia se pasaría a través de un PLL, con retroalimentación a través de un dispositivo BUFIO2_FB. Como se muestra en el ejemplo de recursos de sincronización:

introducir descripción de la imagen aquí

¿Este mecanismo de retroalimentación cancelará la demora de inserción de reloj, para que el IOCLK esté en fase con el pin de entrada de reloj?

El ISERDES2 en el mismo dominio de IOCLK registraría una señal de datos de referencia que simplemente denota un borde de reloj particular para alinear la salida.

¿Existen otras variaciones de dispositivo que evitarán que las salidas estén determinísticamente en fase?

Por ejemplo, me preocupa que la demora de propagación desde OSERDES2 hasta el pin de salida podría variar mucho entre dispositivos. Basado en la hoja de datos de sincronización:

introducir descripción de la imagen aquí

¿Significa esta especificación de 0.94 ns que la propagación puede estar en cualquier lugar de 0 a 0.94ns en diferentes dispositivos?

¿Existe un enfoque más sólido para este problema?

0 votos

Echa un vistazo a los protocolos NTP y PTP.

0 votos

¿NTP? ¿De verdad, para tiempos en nanosegundos? Entre FPGAs? PTP es mejor, pero sigue estando a órdenes de magnitud de la marca, y si eso fuera toda la precisión requerida, hay formas mucho más fáciles.

0 votos

@DanMills pueden ser modificados para una mayor precisión. Lo decía más como un ejemplo de cómo uno abordaría un problema como este.

3voto

Bernd Puntos 61

¿Hay algún enfoque de sonido más para este problema?

¡Sí!

Coloca ambas funciones de la FPGA en un solo dispositivo.

Intentar mantener el determinismo con 1ns para dispositivos separados es casi como un sueño imposible.

0 votos

Hm, ¡sí, si solo... :)

0 votos

Si tiene que tener dispositivos separados, cambie la arquitectura de diseño de su sistema para eliminar el requisito de determinismo.

0 votos

Es una aplicación de sincronización fina, por lo que se requiere determinismo en algún lugar, pero podría pensar en formas de cambiarlo mientras tanto.

2voto

Dan Mills Puntos 381

Realmente quieres que ambas señales se registren en el mismo FPGA, idealmente en el mismo banco de IO, y aún así 1ns es un límite para un par LVDS de propósito general.

Por supuesto, podrías no preocuparte por ello y recortar las longitudes de cable para cancelar el desfase, estás viendo cerca de 1ns por pie, por lo que recortar longitudes de coaxial es un enfoque bastante razonable en un instrumento único, posiblemente mucho menos en volúmenes de producción....

¿Podrías intentar encontrar un doble flipflop ECL10K o similar y usarlo para registrar las dos salidas externamente al FPGA? ¿Quizás alguien como Pericom tenga algo adecuado?

0 votos

Dentro de la misma región BUFIO, el desfase del árbol de reloj es en realidad de 60 ps, el desfase del paquete es de 95 ps. La variabilidad en la demora de propagación es una pregunta abierta... Si puedo recortar longitudes de coaxial (o utilizar las demoras de tap) ¿estás diciendo que la variación del dispositivo es estática y posible de calibrar? Esto me preocupa menos que la variación sobre la temperatura de > 1ns. Finalmente, ¿cuál es la ventaja de los flip-flops externos? ¿Especificaciones de tiempo más precisas? El Spartan 6 (grado -3) puede registrar datos a 1 Gbps en todos los pines de E/S.

1 votos

El retraso del dispositivo generalmente no es estable con la temperatura, y usualmente tienes que hacer algún tipo de alineación automatizada si estás funcionando a alrededor de 1GHz DDR, esto es fácil cuando el protocolo está diseñado para soportarlo, pero me da la impresión de que estamos hablando de aplicaciones de temporización y no de enlaces de datos ¿FPGAs con horno...? Los flip-flops externos proporcionan un registro que puede tener una menor desviación (y menor variabilidad) que la propia FPGA, tendrías que estudiar las hojas de datos.

0 votos

De acuerdo, nos entendemos. ¡Gracias por el consejo!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X