10 votos

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

Estoy tratando de comprender qué sucede si dejas un FPGA sin programar durante mucho tiempo.

Supongamos que tienes un FPGA y lo dejas sin programar durante un largo período de tiempo (varios minutos a horas después de encenderlo), es decir, sin ningún bitstream, ¿es malo para el dispositivo? ¿Se recomienda tener algún bitstream en un FPGA encendido en todo momento? ¿Cuál es la opinión general al respecto?

¿Los resultados son diferentes en dispositivos o fabricantes diferentes (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 con fines de referencia.

Placa personalizada: Enciendo la placa. Me doy cuenta de que tengo un breve período de tiempo para programarla usando XMD (Xilinx Microprocessor Debugger). Si pierdo la ventana de 20-30 segundos, debo apagar y encender la placa antes de intentarlo nuevamente. Esto no ocurre con un ML605.

Cuando intento programar la placa personalizada a través de XMD, obtengo algo como:

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

Dime qué piensas al respecto.

1voto

Morris Maynard Puntos 49

Esta es una pregunta interesante. Desde mi experiencia personal, he dejado las FPGA encendidas durante horas en un estado no programado mientras realizo pruebas en el resto de la circuitaria cuando llega una nueva placa de la casa de ensamblaje. No he notado ningún efecto perjudicial al hacerlo. Pero sinceramente nunca lo he pensado.

Busqué para encontrar una recomendación de un fabricante de FPGA pero no pude encontrar una. La única declaración que encontré sobre este estado es de un documento técnico de Lattice y se refiere al diseño de la FPGA en sí misma y no a cómo debería ser usada:

El Consumo de Potencia Estática Quieta Dispositivo Pre-Programado es la cantidad de potencia consumida por la FPGA antes de programarse. Para el consumo de potencia de dispositivo quieto la FPGA está en un estado no programado, pero ha sido alimentada. Es importante que el dispositivo no consuma una cantidad significativa de potencia durante este tiempo, ya que conceptualmente la FPGA podría consumir una potencia excesiva y potencialmente apagar las fuentes de alimentación, impidiendo que la placa se inicialice correctamente y el sistema.
Por ende, el proveedor de FPGA debe diseñar cuidadosamente transistores que tengan una huella de potencia estática baja, sin comprometer en áreas donde se requiera un mayor rendimiento (por ejemplo, E/S y SERDES)

Xilinx también menciona cuál es la corriente quieta para que puedas diseñar tu fuente de alimentación en consecuencia. Pero no menciona cuál es el efecto en el dispositivo de dejarlo en dicho estado:

La potencia estática o quieta está dominada principalmente por la corriente de fuga de transistores. Cuando esta corriente se lista en las fichas técnicas, se lista como ICCINTQ y es la corriente que circula a través de la alimentación VCCINT que alimenta el núcleo de la FPGA.

Me interesaría mucho saber si alguien ha experimentado algún daño en un dispositivo por dejarlo en un estado quieta. Pero creo que mientras la fuente de alimentación esté adecuadamente coincida con el dispositivo, no debería haber ningún problema.

1voto

Duncan Smart Puntos 9195

Estoy haciendo referencia al datasheet de Spartan 3, ya que es la FPGA con la que estoy más familiarizado.

Si observas 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í tienes un breve resumen.

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

2) Borra los latches de configuración.

3) Espera a que INIT_B se ponga en alto. INIT_B es una salida de drenaje abierto que un maestro externo puede mantener en bajo para retrasar la configuración.

4) Muestra los pines de Modo. Esto determina si vas a cargar a través de JTAG o Flash, y si es Flash, si la FPGA o el Flash es el Maestro.

5) Carga los marcos de datos de configuración.

6) Verifica que el CRC de los marcos de datos sea correcto. Si NO es correcto, la FPGA pondrá INIT_B en 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 que cargar? Bueno, no deberías llegar al Paso 5 si estás haciendo las cosas bien. El chip Flash mantendrá INIT_B en bajo hasta que esté listo para enviar datos a la FPGA. Si estás usando JTAG, entonces no estoy seguro de si tu programador JTAG mantendría INIT_B en bajo, pero cuando vaya a programar la FPGA, casi seguramente afirmaría PROG_B (poniéndolo en bajo), lo que hace que la FPGA regrese al paso 2.

Si fuera tú, yo revisaría la señal INIT_B durante el encendido para ver qué está ocurriendo. Si comienza en bajo, sube y luego vuelve a bajar, la FPGA abortó la secuencia de inicio y probablemente necesitarás afirmar PROG_B para reiniciar la FPGA.

0voto

dwestbrook Puntos 1754

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

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

  • los pines de E/S están débilmente conectados a VCCIO (para mantener los IC con líneas de habilitación de chips activas bajas fuera del bus),
  • la salida CONF_DONE es llevada a nivel bajo (puedes conectar esto al pin de reinicio de otros IC para mantenerlos en estado de reinicio hasta que se haya cargado una configuración así como restaurarlos a un estado conocido al reconfigurarlos), y
  • las entradas de reloj no se envían a las redes de reloj.

Otros tipos de FPGA deben ser igualmente quietos, 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 las resistencias de tracción pueden tener un pequeña corriente a través de ellas.

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