Fanout promedio de redes sin reloj

Xilinx ISE Design Suite brinda información sobre los recursos que utiliza un diseño en particular. Uno de los parámetros que se da para medir los recursos estimados es "Fanout promedio de redes sin reloj" (como puede ver en la parte inferior de la tabla a continuación, donde este parámetro es 2.5).

Me gustaría saber:

  • Por qué es útil este parámetro
  • Cómo los ingenieros pueden usar o aprovechar esta información para mejorar los diseños.

Tabla - Utilización lógica - Muchas filas, últimas lecturas fanout promedio de redes sin reloj = 2.5

Esa es realmente una muy buena pregunta. Estoy tratando de pensar en una situación en la que esta cifra podría ser significativa por sí sola, pero no puedo encontrar ninguna. Podría haber tenido significado en los primeros días de los FPGA, y se mantuvo hasta ahora.

Respuestas (2)

No soy un experto en el tema, pero creo que podría usarse como entrada para un estimador de potencia para el diseño. El consumo de corriente de cada LUT está determinado por la frecuencia del reloj y el fan-out; al reducir el fan-out promedio, supongo que podría reducir el uso de energía. El siguiente artículo tiene más información sobre el tema: Síntesis lógica de FPGA consciente de la potencia mediante diagramas de decisión binarios

Fanout es cuántas entradas maneja una salida de puerta. Creo que conocer el fanout promedio puede darle una idea de cuán eficientemente enrutado o congestionado puede estar su diseño, y probablemente cuán probable sea que cumpla con sus limitaciones de tiempo. Por lo general, habrá un informe completo que también le informará sobre las redes con un alto abanico de distribución (puede informar las 10 principales, o la cantidad que solicite) y la lógica con la máxima demora.

Las rutas no globales que se utilizan para el enrutamiento normal tienen un retraso mucho mayor que las rutas globales (normalmente se utilizan para redes de reloj y fanout alto, por ejemplo, reinicio), por lo que la velocidad máxima del reloj se verá afectada si estas redes son muy grandes.
Por lo general, hay una configuración para limitar qué tan grande puede ser el abanico de una red antes de que se promueva automáticamente a una red global, a menudo configurada en menos de 50. El enrutador intentará duplicar automáticamente la puerta que conduce la red (o insertar un buffer si esto no es posible) para evitar exceder este límite. Sin embargo, si el diseño está muy congestionado, es posible que esto no sea posible, por lo que es necesario revisar la planificación del piso o el HDL.
En una nota relacionada, es muy importante conocer los tipos de reinicio que puede manejar su lógica. Usar el reinicio incorrecto o simplemente usar el reinicio con algunos bloques puede convertir fácilmente un diseño muy pequeño en uno grande.
Hay mucho más sobre esto que se puede escribir fácilmente aquí. Buscaría un buen libro sobre FPGA y/o leería las notas de la aplicación para su fabricante de FPGA, quien seguramente tendrá mucho escrito sobre este tema y más.

Un fanout más alto significa más carga y, por lo general, una frecuencia de reloj más lenta. Todavía no puedo ver cómo la cifra promedio de fanout es útil por sí sola para mejorar el diseño (como pidió el OP). Lo que podría ser útil aquí es un histograma, o al menos una cifra máxima.
Estoy un poco de acuerdo, aunque creo que podría darte una pista de lo congestionado que está el diseño, y tal vez algunas otras cosas. Es solo otro poco de información que puede usar para sopesar las cosas. Me imagino que si, por ejemplo, juega con las restricciones y ve el efecto en este número (y otros a su lado), obtendrá una "sensación" de lo que le está diciendo.
+1 para nota sobre reinicio.