Hace tiempo, como experimento mental, "diseñé" una FPGA de captura de tiempo.
Tenía un oscilador de anillo, convencional aparte de que tenía 41 inversores. El periodo era, por tanto, mucho más bajo que el retardo de cualquier puerta. El proceso de la FPGA tenía retrasos de puertas individuales de hasta 10 pS cuando el enrutamiento era local y el abanico era bajo, pero sólo podía manejar relojes de sistema del orden de 100s de MHz, debido a los retrasos de multiplexación, enrutamiento y carga entre bloques.
El proceso de captura de tiempo utilizó entonces 41 D-latches, cada uno de los cuales capturaba la transición de entrada, pero, por supuesto, se sincronizaba en diferentes fases del ciclo del contador de anillos. Las salidas de los D-latches podían interpretarse como un "código de termómetro", interpolando la transición de entrada con una precisión de subciclo, con una resolución de decenas de pS. Otros 41 D-latches capturaban un reloj de referencia.
Esta estructura presenta dos dificultades principales. La primera es conseguir que las herramientas de síntesis dispongan el contador de anillos y las líneas que van a los D-latches a alta velocidad. Esta parte probablemente sea mejor si se realiza una colocación manual directa. Es posible que se necesite un tipo específico de FPGA de alta velocidad, tal vez uno sin multiplicadores ni núcleos de procesador. La segunda es el manejo sin carreras del solapamiento entre el código del termómetro, y un contador convencional sincronizado por la referencia de baja frecuencia, pero se puede hacer, teniendo en cuenta los problemas de metaestabilidad.
No lo continué porque encontré una forma mejor de resolver el problema, pero fue divertido.
0 votos
Las clavijas de E/S rápidas de las últimas FPGAs pueden manejar alrededor de 1 GHz para la memoria DDR. La red de reloj interna de una FPGA está limitada a unos 900 MHz. Así que las FPGAs no pueden resolver tus problemas.
4 votos
¿Esto es para mediciones de tiempo de vuelo? Hay circuitos integrados dedicados a la medición del tiempo de vuelo con una resolución inferior a 100 segundos. Funcionan como un cronómetro. ¿Quizás podrías poner uno de estos en servicio? Echa un vistazo a ti.com/lit/ds/symlink/tdc7200.pdf .
4 votos
Normalmente, para este tipo de resolución de tiempo se utiliza un convertidor de tiempo a digital, no un contador. Básicamente, estos convertidores conectan un pequeño condensador con las señales de disparo y miden la tensión acumulada en él. Para obtener algunas ideas, mira cómo funcionan los osciloscopios de muestreo de tiempo equivalente (ETS).
2 votos
@Paebbels: Los dispositivos Stratix 10 más rápidos de Altera pueden manejar E/S a 28,3 Gb/s. Los dispositivos Virtex-7 más rápidos de Xilinx pueden manejar 28,05 Gb/s. Tus conocimientos están varios años desfasados.
1 votos
@DaveTweed Conozco los transceptores de 28 GHz. Yo mismo los uso en diseños de alta velocidad. Pero no creo que se puedan usar para hacer mediciones de tiempo. Incluso con transceptores de varios GHz, la red de reloj está limitada a aproximadamente 1 GHz.
1 votos
@Paebbels: La E/S a 28 GHz es la E/S a 28 GHz. Puedes hacer un muestreo cualquier señal a esa velocidad. ¿Por qué no se podría utilizar para medir el tiempo? Obviamente, el tejido tendría que lidiar con las muestras que salen del deserializador como un bus paralelo, pero eso es sencillo.
2 votos
@DaveTweed, no hay ninguna señal. Una señal con recorridos muy largos de 0's o 1's probablemente provocaría que el CDR del transceptor perdiera el bloqueo, haciendo que el reloj crítico se desviara. Tendrías que encontrar una manera de que el evento que quieres cronometrar cambie entre dos patrones de entrada, cada uno con una densidad de transición adecuada, para utilizar estas entradas a la FPGA para la cronometración de eventos.
5 votos
Para OP, date cuenta de que no necesitas 20 GHz de reloj para conseguir una temporización de 100 ps. Por ejemplo, dos relojes de 5 GHz con una diferencia de fase de 90 grados pueden lograr una sincronización de 100 ps. O 5 relojes de 1 GHz desplazados 36 grados cada uno. Pero en algún momento, mantener un gran grupo de relojes alineados con suficiente precisión y muestrearlos todos a una hora lo suficientemente cercana se convierte en un problema mayor que hacer un reloj más rápido.
0 votos
Los osciladores en anillo tienen ruido de fase causado por el jitter. Para un oscilador de reloj estable en el rango de los gigahercios, un diodo Gunn (colocado dentro de una guía de ondas utilizando una esfera YIG) sería una mejor opción para un generador de frecuencia estable.