Enrutamiento de influencia en el consumo de energía en FPGA

¿Qué influencia tiene el enrutamiento en el consumo de energía estático/dinámico en el diseño de FPGA?

Quiero saber que, ¿diferente enrutamiento da como resultado un consumo de energía diferente?

¿Has consultado la hoja de cálculo de estimación de potencia de tu dispositivo? ¿Tiene alguna entrada relacionada con el enrutamiento? Si no es así, ¿crees que sabemos más al respecto que la empresa que fabrica el dispositivo?
Uso el dispositivo ISE 14.7 y xilinx FPGA.
@The Photon No sigo tu lógica en absoluto. Una hoja de cálculo de estimación de energía no tiene entradas para el enrutamiento porque es completamente dinámica y demasiado granular para que el usuario se preocupe antes de que se complete el diseño. Eso no significa que Xilinx no conozca los efectos del enrutamiento, o que no haya suposiciones generales que pueda hacer; tu comentario es injustificado.
@jalalipop. Te estás pasando de la raya con un miembro que tiene una reputación mucho más alta que tú. Su comentario es correcto. OP quiere detalles que solo tiene el fabricante, y OP puede tener que pagar por información patentada.
@Sparky256 Eso es increíblemente condescendiente. Si cree que el representante hace que alguien sea inmune a las críticas, solo puedo asumir que está en la gerencia. El comentario al que respondí es defectuoso porque las entradas de enrutamiento en una hoja de cálculo de estimación son completamente poco prácticas, y su ausencia no dice nada sobre si esta pregunta se puede responder en términos generales (ver más abajo), que es todo lo que pide el OP. El consumo de energía en los circuitos digitales no es exactamente un misterio.

Respuestas (3)

Definitivamente habrá efectos. Los cables más largos tienen más capacitancia que deberá cargarse en cada transición, lo que aumenta el consumo de energía. Por lo general, las herramientas de lugar y ruta intentarán hacer que los cables sean lo más cortos posible en un esfuerzo por minimizar la demora. También podría haber variaciones en el consumo de energía estática de los componentes de enrutamiento, aunque esto dependería en gran medida de la arquitectura.

Muchas gracias. ¿Puedo encontrar la longitud del cable en ISE (planificación anticipada o editor FPGA,...)?
No estoy seguro de si hay una buena manera de obtener esa información. Observar los retrasos informados en el análisis de tiempo podría ser un buen indicador. También puede mirar las ubicaciones físicas de cada extremo del cable y tener una idea de cuánto mide con la distancia manhattan (suma de la distancia x e y). Sin embargo, esto no tiene en cuenta la variedad de opciones de enrutamiento a lo largo de esa ruta.

Sí, con cada rastro en la PCB habrá resistencia parásita e inductancia .

El problema es que los FPGA tienen muchas puertas que cambian al mismo tiempo (incluso se pueden extraer amperios de corriente de algunos FPGA), lo que hace que aumente la carga y la demanda de corriente en escalas de tiempo muy cortas. Esto provoca una caída de tensión en los pines de alimentación de la FPGA. Si la caída de voltaje es demasiado grande, las puertas no se alimentarán y emitirán "ruido" en lugar del voltaje correcto para un 1 o un 0, lo que dará como resultado un error en un cálculo booleano.

Las trazas de PCB son simplemente conductores, cada conductor tiene resistencia (que provoca una caída de voltaje) e inductancia (que evita que la corriente se mueva de un lugar a otro inmediatamente). Esto contribuye a que el voltaje en el FPGA caiga.

¿Qué puedes hacer al respecto? Hay dos formas de combatir este problema:

1) Asegúrese de tener suficientes condensadores de filtro de potencia. Los condensadores de filtro de potencia proporcionan un almacenamiento a corto plazo junto a la FPGA para combatir la inductancia de línea.

2) Asegúrese de que la caída de voltaje a través de las trazas de la PCB sea lo suficientemente pequeña para que la corriente se mueva a través de ellas. Lo primero que deberá hacer es encontrar una calculadora de trazas de PCB que pueda estimar la resistencia de la traza. Luego calcule la corriente que necesita el FPGA, la mayoría proporciona una herramienta o una hoja de cálculo (como Xilinx ) que puede estimar la corriente.

Si su FPGA necesita como máximo 1A, y la traza de la placa de circuito impreso es de 0,100 Ω, esto daría como resultado una caída de 0,1 V (V=I*R). Esto puede no ser aceptable para un diseño de 1,2 V o 1,5 V; consulte la hoja de datos de FPGA para conocer los límites de potencia. Si aumentó el tamaño de la traza en 5x, solo tendría 0.020Ω y una caída de 0.02V.

Un FPGA, al menos los de Xilinx que he usado, tiene una variedad de recursos de enrutamiento.

La distribución del reloj está optimizada para el reloj de alta velocidad y cubre todo el chip. Este es usado preferentemente para relojes por el PAR.

Los datos tienen varias longitudes de línea diferentes. Algunos van de LUT a LUT para conexiones muy locales, por ejemplo, cadenas de transporte rápido. Hay las llamadas "líneas largas" que cruzan el troquel, que se pueden dividir en pequeñas secciones para limitar el consumo de energía dinámico, o se pueden enrutar directamente. También hay varios tipos de línea de longitud intermedia. Todos estos tendrán un consumo de energía dinámico diferente.

El PAR seleccionará de los recursos disponibles para cumplir con las limitaciones de tiempo. Con un dado escasamente poblado, podría ser posible anticipar qué se usará para qué. Con un diseño denso, donde el PAR lucha, será difícil adivinar qué se va a utilizar para qué.

Esto significa que solo los informes posteriores al diseño le darán estimaciones precisas.

No hay mucho que pueda hacer para controlar la disipación de energía de la interconexión, una vez que haya hecho las cosas obvias de organizar los sumadores en columnas, colocar la lógica junto a su IO para que no cruce el chip, usar los búferes de reloj dedicados, etc. en, las cosas obvias. Básicamente, si el PAR debe cumplir con las restricciones de tiempo, entonces tiene que usar lo que usa.