Tengo 4 FPGAs Spartan 6 conectados a través de carriles de 64 bits, formando una línea. (Es decir, FPGA1 está conectado a FPGA2, FPGA2 está conectado a FPGA3 y FPGA3 está conectado a FPGA4.)
He dividido cada carril de 64 bits en dos carriles de 32 bits, uno para cada "dirección". Luego conecto los carriles de 32 bits para formar un gran loopback de FPGA1 a FPGA4 y viceversa.
Al probar este loopback (donde FPGA1 realiza la prueba) con un "walking 1" viajando cada 100 ciclos de reloj, me doy cuenta de que el loopback es inestable (el bit 7 no sube lo suficientemente rápido, parece). Cuando reduzco la velocidad de marcha 1 para mover cada 1000 ciclos de reloj, la prueba pasa.
El FPGA1 está sincronizado a 20 MHz, por lo que 100 ciclos son 5 microsegundos. ¿Una señal realmente necesita más de 5 microsegundos para viajar de FPGA1 a FPGA4 y volver? ¿Qué podría estar causando esta latencia excesiva? (Los FPGA se encuentran en la misma placa y están muy cerca entre sí).