Los FPGA pueden ejecutarse fácilmente de 100 a 500 MHz y crear resoluciones de tiempo de 10 a 2 ns. Esa frecuencia se puede utilizar para crear contadores de marca de tiempo, que a su vez se utilizan para crear mediciones de tiempo muy finas / marcas de tiempo para la creación de perfiles.
Sin embargo, estos contadores se basan en un oscilador externo y, a veces, también en bloques de modificación de reloj internos (CMB como PLL, MMCM, ...). Los osciladores externos tienen una precisión o fluctuación de fase de 50 (20) ppm a una frecuencia de referencia de 100 Mhz. Esto da un posible error de tiempo de 50 us por 1 segundo.
En el sistema de un cliente, varias placas FPGA se acoplan a través de Ethernet y PTP (Precision Time Protocol). Un tablero actúa como servidor, los otros como esclavos. PTP puede sincronizar 2 estaciones con una precisión de 10 ns, mientras que el maestro y los esclavos basados en FPGA no pueden mantener la precisión de tiempo entre las actualizaciones de PTP.
¿Hay alguna manera de aumentar la precisión del contador de marca de tiempo en un FPGA (Zynq UltraScale +) a menos de 10?
¿Es posible medir la desviación del tiempo (desplazamiento) y ajustar el contador de la marca de tiempo?