¿Qué sucede cuando se enciende un FPGA y se deja sin configurar?

10

Estoy tratando de obtener una comprensión general de lo que sucede si deja un FPGA sin programar durante un largo período de tiempo.

Supongamos que tiene un FPGA y lo deja sin programar durante un largo período de tiempo (varios minutos a horas después del encendido), es decir, sin flujo de bits, ¿es esto malo para el dispositivo? ¿Se recomienda tener algún flujo de bits en un FPGA encendido en todo momento? ¿Cuál es la opinión general sobre esto?

¿Los resultados son diferentes en diferentes dispositivos o fabricantes (Xilinx vs. Altera vs. otros)?

Información adicional:

Tengo una placa SoC personalizada que utiliza un FPGA Xilinx Virtex-6. También tengo un Xilinx ML605 que uso para fines de referencia.

Tarjeta personalizada: enciendo la tarjeta. Me he dado cuenta de que dispongo de un breve periodo de tiempo para programarlo mediante XMD (Depurador de microprocesador Xilinx). Si pierdo la ventana de 20-30 segundos, debo apagar y encender el tablero antes de volver a intentarlo. Esto no sucede con un ML605.

Cuando intento programar la placa personalizada sobre XMD, obtengo algo como:

Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.

Déjame saber lo que piensas.

    
pregunta boffin

3 respuestas

7

Esta es una pregunta interesante. Por experiencia personal, he dejado los FPGA encendidos durante horas en un estado no programado mientras realizaba comprobaciones en el resto de los circuitos cuando una nueva placa viene de la casa de ensamblaje. No he notado ningún efecto perjudicial al hacerlo. Pero, sinceramente, nunca lo he pensado.

Miré a mi alrededor para intentar encontrar una recomendación de un fabricante de FPGA, pero no pude encontrar una. La única declaración que encontré con respecto a este estado es de un informe de Lattice y se refiere al diseño del FPGA en sí y no a cómo debe usarse:

  

El consumo de energía del dispositivo inactivo estático preprogramado es la cantidad de energía   consumido por el FPGA antes de que el dispositivo sea programado. Para dispositivo inactivo   consumo de energía el FPGA está en un estado no programado, pero ha sido alimentado. Eso   Es importante que el dispositivo no consuma energía significativa durante este tiempo, ya que   Conceptualmente, el dispositivo FPGA podría consumir energía excesiva y potencialmente apagarse   Fuentes de alimentación, lo que impide que la placa se inicialice con éxito y el sistema.
  Por lo tanto, el proveedor de FPGA tiene que diseñar cuidadosamente los transistores que tienen un diseño de baja estática 3 para baja potencia   Un Libro Blanco de Semiconductor de celosía   huella de energía, sin comprometer en áreas donde se requiere un mayor rendimiento   (por ejemplo, E / S y SERDES)

Xilinx también menciona cuál es la corriente de reposo para que pueda diseñar su fuente de alimentación en consecuencia. Pero no menciona cuál es el efecto en el dispositivo de dejarlo en tal estado:

  

Estático o   El poder de reposo está dominado principalmente por   Corriente de fuga del transistor. Cuando esta corriente   aparece en las hojas de datos, aparece como ICCINTQ   y es la corriente dibujada a través de la   La fuente VCCINT alimenta el núcleo FPGA.

Me interesaría mucho saber si alguien ha sufrido daños en un dispositivo por dejarlo en estado inactivo. Pero creo que siempre que la fuente de alimentación coincida correctamente con el dispositivo, no debería haber ningún problema.

    
respondido por el embedded.kyle
6

Me refiero a la hoja de datos de Spartan 3 , ya que es el FPGA que estoy más familiarizado con.

Si observa el capítulo 2 (Descripción funcional), la sección "Configuración" tiene un par de diagramas de flujo. La Figura 27 (página 50) muestra el diagrama de flujo para cargar desde Flash. La Figura 28 muestra el diagrama de flujo JTAG.

Aquí hay un breve resumen.

1) Espere a que Vccint, Vccaux y Vcco alcancen los niveles requeridos.

2) Borrar pestillos de configuración

3) Espere a que INIT_B suba. INIT_B es una salida de drenaje abierto que un maestro externo puede mantener bajo para retrasar la configuración.

4) pines del modo de muestra. Esto determina si se va a cargar a través de JTAG o Flash, y si Flash si el FPGA o el Flash es el maestro.

5) Cargar marcos de datos de configuración.

6) Verifique que el CRC para los marcos de datos sea correcto. Si NO es correcto, el FPGA llevará a INIT_B bajo para indicar un error de CRC y abortará el inicio.

El paso 5 es probablemente donde está tu verdadera pregunta: ¿qué sucede si no hay nada para cargar? Bueno, no deberías llegar al Paso 5 si estás haciendo las cosas bien. El chip Flash mantendrá bajo INIT_B hasta que esté listo para servir datos al FPGA. Si está utilizando JTAG, entonces no estoy seguro de si su programador JTAG mantendría INIT_B bajo, pero cuando fue a programar el FPGA casi con seguridad afirmaría PROG_B (conduciéndolo bajo), lo que hace que el FPGA regrese al paso 2.

Si fuera usted, vería la señal INIT_B durante el encendido para ver qué está pasando. Si comienza bajo, sube y luego baja nuevamente, el FPGA abortó la secuencia de inicio y es probable que tenga que hacer valer PROG_B para restablecer el FPGA.

    
respondido por el ajs410
0

La configuración predeterminada está diseñada para ser lo más pasiva posible para que el dispositivo sea universalmente utilizable.

Para la serie Altera Cyclone (con la que tengo más experiencia) esto significa

  • los pines de E / S se arrastran débilmente hacia VCCIO (para mantener los circuitos integrados con líneas de activación de chip bajo-activo desde el bus),
  • la salida CONF_DONE está baja (puede conectarla al pin de reinicio de otros IC para mantenerlos restablecidos hasta que se haya cargado una configuración, así como restaurarlos al estado conocido al reconfigurar), y
  • las entradas de reloj no se reenvían a las redes de reloj.

Otros tipos de FPGA deberían ser quiescentes, y proporcionar salidas no invertidas e invertidas que indiquen el estado de configuración al resto de la placa.

Dejar el dispositivo en ese estado es inofensivo, ya que el núcleo está bastante aislado del mundo exterior, y solo los pull-ups pueden tener una pequeña corriente a través de ellos.

    
respondido por el Simon Richter

Lea otras preguntas en las etiquetas