¿Cuál es la planificación de E/S más rápida para FPGA?

Hay muchas estrategias de temporización que pueden mejorar la velocidad de la FPGA (como restricciones de temporización, planificación de las regiones del reloj,...). Una de estas estrategias es seleccionar lugares óptimos para los pines de E/S y planificar las lógicas. De hecho, primero seleccionamos los mejores lugares de E/S y luego podemos colocar las lógicas... Este proceso comienza desde la ubicación de E/S y eso es lo que no sé qué estrategia conduce al mejor rendimiento.
Estas son estrategias en las que pensé como punto de partida para la colocación de pines:

1- En la imagen de abajo (Xilinx Spartan 3), uno puede seleccionar todas las entradas/salidas en un banco (flecha-1) y un reloj global, por ejemplo, en el banco-4. Esto conduce a una distancia mínima para todos los pines y también un ruido mínimo de los cables externos del pin GCLK, pero está lejos de la línea GCLK.

2- ruta-2: cruza la ruta GCLK pero las entradas y las salidas están lejos unas de otras (¡vi en alguna parte que la ruta horizontal entre las entradas y las salidas es la forma más rápida, pero no recuerdo dónde lo leí!)

3- ruta-3: estar cerca del pin del reloj puede imponer algo de ruido de sus cables y componentes EXTERNOS.

Puede haber muchas otras estrategias que no conozco. ¿Alguien puede darme una pista o método de pensamiento como punto de partida?

ingrese la descripción de la imagen aquí1)

Creo que es posible que deba probar cada enfoque e informar lo que encuentre.
@BrianDrummond Pensé en eso, pero mi diseño incluye el 70 % de las puertas XC3S400 y cada intento puede demorar entre 1 y 2 meses. ¡Es por eso que necesito un lugar para empezar!
¿Tiene una licencia completa de ISE o utiliza el paquete web?
Paquete web @FarhadA

Respuestas (1)

El reloj global no tiene un 'camino' per se. Puede ingresar a cualquiera de los pines de reloj global en el chip y luego enrutar la señal desde allí a una de las redes de reloj global. Estas redes están dedicadas, por lo que no importa cómo se enruten las otras redes de señal, ya que no afectará las redes de reloj global. Además, la conexión a la red de reloj global desde el pin no implica la estructura de enrutamiento general de la FPGA siempre que el pin sea capaz de controlar directamente una red de reloj global.

No estaría demasiado preocupado por la influencia de la entrada del reloj en los rastros que no están inmediatamente al lado del pin. Si está muy preocupado por la entrada del reloj, use un oscilador de frecuencia más baja en la placa y obtenga la frecuencia que necesita usando uno de los DCM en el FPGA para sintetizar el reloj de frecuencia más alta.

En términos de ubicaciones de pines de E/S, lo que suelo hacer es averiguar a qué se van a conectar fuera de la FPGA. El software puede enrutar señales donde sea que necesiten ir dentro de la FPGA. Y si sigue algunas de las reglas generales de diseño, todas sus entradas y salidas deberían pasar a través de chanclas IOB. Esto ayuda enormemente a la etapa de lugar y ruta al sincronizar las entradas y salidas y ocultar gran parte del sesgo que ocurre en el enrutamiento. El gasto es un ciclo de reloj de retraso en la entrada y un ciclo de reloj de retraso en la salida, un precio razonable a pagar por la sincronización.

En pocas palabras: la mayoría de los pines pueden ir donde sea conveniente sin degradación del rendimiento. La cadena de herramientas se encargará de los detalles. Use esto a su favor para simplificar el diseño de la placa y rastrear el enrutamiento fuera de la FPGA.