Prueba de tensión de una fuente de alimentación FPGA

4

Tengo un FPGA (Xilinx Spartan 6) para el cual quiero realizar una prueba de tensión de la fuente de alimentación en "pasos" (por ejemplo, el FPGA se ejecuta en bucles de 1 segundo: vapor completo durante 900 ms, detenido durante 100 ms) para verificar que las caídas de tensión en la fuente de alimentación son aceptables.

¿Cuál sería mi mejor estrategia para probar el FPGA "full steam"? Idealmente, tendría que escribir un pequeño código Verilog y podría controlar mediante programación el uso de FPGA (de 0% a 100%) desde un microprocesador externo.

    
pregunta Randomblue

5 respuestas

4

Lo que describe en su pregunta no es realizar pruebas de estrés en el FPGA, sino hacer pruebas de estrés en la fuente de alimentación.

Parece que lo que usted quiere saber es que, si utilizara por completo sus recursos de FPGA, su fuente de alimentación aún sería capaz de proporcionar energía para especificaciones específicas.

  1. Use la herramienta de estimación de potencia para su FPGA para determinar el consumo máximo para su dispositivo, dada su frecuencia de reloj, asignaciones de E / S, etc. Lo principal es, cuando le pregunta cuántos registros y elementos lógicos desea está usando, use un número que sea 2x o lo que esté en su diseño real, o 75 - 80% de lo que está físicamente disponible en el chip.

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

  3. Coloque todo el circuito en una cámara térmica a la temperatura máxima de funcionamiento en la que desea que funcione. Esta es la parte que será más difícil si no está trabajando en un laboratorio bien equipado. Si está haciendo esto por trabajo de afición, colóquelo en el tablero de su automóvil en un caluroso día de verano. Ejecute los cables de prueba desde los nodos VCC y de tierra a fuera de la cámara.

  4. Ejecute el circuito durante un tiempo razonable para permitir que se caliente.

  5. Mida los Vcc's completamente cargados y sometidos a estrés térmico.

Como han dicho otras respuestas, ciclar la carga como usted propone no es especialmente importante.

    
respondido por el The Photon
3

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

1) Trate de provocar un cambio de voltaje en la mayor cantidad de estructuras CMOS que pueda, dentro del FPGA y a la velocidad más rápida posible. Opciones para eso:
1.1) Cree tantos inversores como sea posible en su FPGA (con suerte, el software no realizará optimizaciones), conéctelos en cascada y condúzcalos a todos con un reloj externo que funcione a la frecuencia más alta tolerable.
1.2) Si, simplemente sintetizando inversores, no puede hacer uso de toda la lógica de la estructura de propósito general existente, intente ver, examinando los detalles de cómo se implementó, cómo podría provocar la activación de tantos como sea posible.
1.3) Si el FPGA tiene RAM, dedique una pequeña parte de la lógica anterior a provocar cambios de dirección en todos los bits de RAM, a la velocidad más alta posible.
1.4) Si la FPGA tiene estructuras DSP dedicadas, póngalas también en tensión.
Todo esto, sincronizado por el reloj externo.

Para que todo lo que se puede controlar gradualmente, de 0% a 100%, varíe la frecuencia de ese reloj externo. O bien, dedique una pequeña parte de la lógica de la estructura a tener un contador de división por N, de modo que sea la salida de ese contador lo que impulsa todo lo que mencioné.

    
respondido por el Telaclavo
2

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

Si desea ver si el FPGA no se sobrecalienta (o si desea que se sobrecaliente) .. asegúrese de poner un programa que se ejecute con la mayor frecuencia posible con todas las celdas lógicas requeridas. Utilice todos los bloques DSP, etc., y consumirá mucha energía ...

Si desea conocer el comportamiento transitorio de carga de su PSU, no creo que realmente deba usar un FPGA para eso. ¿Qué pasa si 1.2Vcore se sobrepasa a 2V brevemente cada vez que haces una carga transitoria y mata el FPGA después de 10 intentos?

Yo diría que conecte una carga pesada a su SMPS sin FPGA y la encienda / apague muy rápidamente. Simplemente use un interruptor y un disparo en el osciloscopio. A SMPS no le gustan las variaciones de carga. Si la corriente de carga cae rápidamente, la corriente de salida pasará al condensador de salida. Si la tapa de salida se carga muy rápidamente con la corriente de carga, verás unos picos muy altos. Lo mismo es cierto si le pones una carga; El SMPS tarda tiempo en aumentar hasta la corriente en particular, por lo que el capacitor de salida se está descargando. Si los picos de voltaje son demasiado grandes, aumente la capacitancia de salida. Esto hará que el suministro tarde más en arrancar, etc. pero podrá soportar mejor estos cambios de carga alta.

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

    
respondido por el Hans
2

(Supongo que aquí tiene una aplicación programada en su FPGA. Las pruebas para el uso máximo de FPGA probablemente aumentarán la fuente de alimentación, pero no tendría sentido si nunca utilizaría el FPGA al máximo en la vida real.)

  

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

Entonces haz eso! Ajústelo al 100% si desea una prueba de esfuerzo. ¡Sin piedad! No usaría las pausas de 100 ms: su fuente de alimentación tendrá un tiempo más difícil en el ciclo de trabajo del 100% que cuando puede tomar una respiración de vez en cuando.
Cargue todas las salidas FPGA al máximo permitido.
Si puede activar alguna parte del FPGA que está fuera del alcance del microcontrolador, hágalo. Una onda cuadrada de alta frecuencia puede causar más actividad que un nivel estático.

editar
Si puede rellenar el FPGA con lo que quiera, también lo haría con inversores que vean la frecuencia de reloj máxima, como Telaclavo , pero con una diferencia. Por la forma en que los encadena, todos se cambiarán uno tras otro, lo que distribuirá el poder de conmutación en el tiempo. Eso es lo que hace si desea ser amable con la fuente de alimentación.
Haría un árbol donde el primer inversor maneja, digamos, otros 100. Cada uno de esos 100 impulsa otros 100. Y otra vez. En el tercer nivel habrá 1000 000 (o el número de puertas que tiene el FPGA) cambiando simultáneamente .
Preferiblemente, el número de 100 debería ser más alto que el abanico de salida de una puerta (si el sintetizador lo permite). Esto ralentizará la conmutación y aumentará la potencia de conmutación.

    
respondido por el stevenvh
1

También recuerda, que FPGA en sí no es el único que consume energía. P.ej. La combinación DDR3 RAM de 16 GB puede consumir una explosión de > 5A en algunos casos.

    
respondido por el Socrates

Lea otras preguntas en las etiquetas