Processing math: 100%

4 votos

Pruebas de estrés de la fuente de alimentación de una FPGA

Tengo una FPGA (Xilinx Spartan 6) para la que quiero hacer una prueba de estrés de la fuente de alimentación en "pasos" (por ejemplo, la FPGA se ejecuta en bucles de 1 segundo: a tope durante 900 ms, parada durante 100 ms) para comprobar que las caídas de tensión en la fuente de alimentación son aceptables.

¿Cuál sería mi mejor estrategia para probar la FPGA "a todo vapor"? Lo ideal sería tener que escribir poco código Verilog y poder controlar programáticamente el uso de la FPGA (de 0% a 100%) desde un microprocesador externo.

4voto

RWH Puntos 21

Lo que describes en tu pregunta no es una prueba de estrés de la FPGA, es una prueba de estrés de la fuente de alimentación.

Parece que lo que quieres saber es que si utilizas al máximo los recursos de tu FPGA, tu fuente de alimentación seguirá siendo capaz de proporcionar la energía necesaria.

  1. Utiliza la herramienta de estimación de potencia de tu FPGA para determinar el consumo máximo de tu dispositivo, teniendo en cuenta la frecuencia de reloj, las asignaciones de E/S, etc. Lo más importante es que, cuando te pregunte cuántos registros y elementos lógicos estás utilizando, uses un número que sea el doble de lo que hay en tu diseño real, o el 75-80% de lo que está físicamente disponible en el chip.

  2. Elija las resistencias de potencia para proporcionar una carga equivalente. Conéctalas a los distintos suministros (VCC_core, VCC_io, etc.).

  3. Coloca todo el circuito en una cámara térmica a la temperatura máxima de funcionamiento que quieres que tenga. Esta es la parte más difícil si no trabajas en un laboratorio bien equipado. Si lo haces por hobby, ponlo en el salpicadero de tu coche en un día caluroso de verano. Lleva los cables de prueba desde los nodos VCC y tierra al exterior de la cámara.

  4. Haz funcionar el circuito durante un tiempo razonable para que se caliente.

  5. Mide los Vcc a plena carga y con estrés térmico.

Como se ha dicho en otras respuestas, ciclar la carga como propones no es especialmente importante.

3voto

Nick Puntos 3061

No soy un experto en FPGAs (como obviamente verás), pero estas podrían ser algunas ideas (probablemente ingenuas):

1) Intenta provocar el toggle de voltaje en tantas estructuras CMOS como puedas, dentro de la FPGA, y a la mayor velocidad posible. Opciones para ello:
1.1) Crea tantos inversores como sea posible en tu FPGA (con suerte, el software no hará optimizaciones), conéctalos en cascada y condúcelos todos con un reloj externo que funcione a la mayor frecuencia tolerable.
1.2) Si con la mera sintetización de los inversores no puedes hacer uso de toda la lógica de propósito general existente en el tejido, trata de ver, examinando los detalles de su implementación, cómo podrías provocar la alternancia en el mayor número posible de ellos.
1.3) Si la FPGA tiene RAM, dedicar una pequeña parte de la lógica anterior a provocar flippings en todos los bits de la RAM, a la mayor velocidad posible.
1.4) Si la FPGA tiene estructuras DSP dedicadas, póngalas también en tensión.
Todo ello, sincronizado por el reloj externo.

Para que todo eso sea gradualmente controlable, de 0% a 100%, varía la frecuencia de ese reloj externo. O dedicar una pequeña porción de la lógica de la tela para tener allí un contador de división por N, para que sea la salida de ese contador, lo que impulse todo lo que he hablado.

2voto

lillq Puntos 4161

(Estoy asumiendo aquí que usted tiene una aplicación programada en su FPGA. Probar el uso máximo de la FPGA probablemente estresará más la fuente de alimentación, pero no tendría sentido si nunca usaras la FPGA al máximo en la vida real).

"Podría controlar programáticamente el uso de la FPGA (de 0% a 100%) desde un microprocesador externo"

¡Entonces hazlo! Ponlo al 100% si quieres una prueba de estrés. ¡Sin piedad! Yo no utilizaría las pausas de 100 ms: tu fuente de alimentación lo pasará peor con un ciclo de trabajo del 100% que cuando pueda tomarse un respiro de vez en cuando.
Cargue todas las salidas de la FPGA al máximo permitido.
Si puedes activar alguna parte de la FPGA que esté fuera del alcance del microcontrolador, hazlo. Una onda cuadrada de alta frecuencia puede causar más actividad que un nivel estático.

editar
Si puedes rellenar la FPGA con lo que quieras yo también la llenaría de inversores que vean todos la frecuencia máxima de reloj, como Telaclavo pero con una diferencia. De la forma en que los encadena, todos ellos conmutarán uno tras otro, repartiendo así la potencia de conmutación en el tiempo. Eso es lo que se hace si se quiere ser amable con la fuente de alimentación.
Yo haría un árbol en el que el primer inversor acciona, por ejemplo, otros 100. Cada uno de esos 100 acciona otros 100. Y otra vez. En el tercer nivel habrá 1000 000 (o el número de puertas que tenga la FPGA) conmutando simultáneamente .
Preferiblemente el número de 100 debe ser mayor que el fan-out de una puerta (si el sintetizador lo permite). Esto ralentizará la conmutación y aumentará la potencia de conmutación.

2voto

Avner Puntos 2065

Creo que deberías considerar la posibilidad de dividir tus pruebas en 2 partes: Pruebas de estrés de la FPGA y pruebas de estrés de la PSU.

Si quieres ver si la FPGA no se sobrecalienta (o si quieres verla sobrecalentarse) seguro que pones un programa que se ejecute a la mayor frecuencia posible con todas las celdas lógicas necesarias. Usa todos los bloques DSP, etc, y consumirá mucha energía..

Si quieres conocer el comportamiento transitorio de la carga de tu fuente de alimentación, no creo que debas utilizar una FPGA para ello. ¿Qué pasa si el núcleo de 1,2V sobrepasa brevemente los 2V cada vez que haces un transitorio de carga y mata a la FPGA después de 10 intentos?

Yo diría que conectes una carga pesada a tu SMPS sin FPGA y la enciendas y apagues muy rápidamente. Utiliza un interruptor de palanca y un solo disparo en el osciloscopio. A un SMPS no le gustan las variaciones de carga. Si la corriente de carga cae rápidamente, la corriente de salida irá al condensador de salida. Si el condensador de salida se carga muy rápidamente con la corriente de carga, vas a ver algunos picos muy altos. Lo mismo ocurre si pones una carga; el SMPS tarda en subir a la corriente particular, por lo que el condensador de salida se descarga en su lugar. Si los picos de tensión son muy grandes, aumenta la capacitancia de salida. Esto hará que la fuente tarde más en arrancar, etc., pero podrá soportar mejor estos cambios de carga elevados.

De lo contrario, es posible que desee un SMPS con mayor frecuencia y menor inductancia para que responda más rápido.

1voto

Socrates Puntos 865

Recuerda también que la FPGA no es la única que consume energía. Por ejemplo, una combinación de RAM DDR3 de 16GB puede consumir una ráfaga de >5A en algunos casos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X