VHDL que puede dañar el FPGA

22

Leí en alguna parte que un código VHDL incorrecto puede provocar daños en FPGA.

¿Es posible incluso dañar un FPGA con código VHDL? ¿Qué tipo de condiciones causaría esto y cuáles son los peores escenarios?

    
pregunta AntoineLev

4 respuestas

25

Agregando a la respuesta de @ Anonymous, hay diseños que puedes construir que pueden dañar la estructura de un FPGA.

Para los principiantes, si construye un diseño muy grande que consiste en enormes cantidades de registros (por ejemplo, 70% del FPGA) todos sincronizados a la frecuencia máxima del FPGA, es posible calentar el silicio considerablemente. Sin suficiente enfriamiento esto puede causar daños físicos. Perdimos un FPGA de $ 13k porque se sobrecalentó debido a que el kit de desarrollo tenía un sistema de enfriamiento terrible.

Otro caso más simple puede ser lazos combinacionales. Por ejemplo, si crea una instancia de tres puertas no encadenadas en un anillo, y deshabilita o ignora las advertencias de los sintetizadores sobre dicha estructura, puede crear algo que es muy malo para un FPGA. En este ejemplo, crearía un oscilador de varios GHz que podría producir mucho calor en un área muy pequeña, probablemente dañando el ALM y la lógica circundante.

    
respondido por el Tom Carpenter
8

El código no es una palabra correcta en este contexto. Si bien Verilog o VHDL parecen un programa, la salida del compilador es una configuración que se carga en el circuito electrónico que forma el chip FPGA.

Dos tipos vienen a mi mente:

  • daño físico: por ejemplo, varios pines FPGA están conectados entre sí (o a otro dispositivo) y comienzan a emitir diferentes voltajes lógicos al mismo tiempo. Los flujos de corriente pueden ser corrientes excesivos, lo que eventualmente daña la (s) puerta (s);
  • daño lógico: el circuito puede manejar un chip flash o un dispositivo de configuración incorrectamente, y la imagen de datos dañada en él, todo el dispositivo puede funcionar mal.
respondido por el Anonymous
3

Desconfigurar un bloque de pines de entrada como salidas podría hacerlo si cualquier otra cosa que los impulsa es lo suficientemente rígido.

No sé si estoy configurando algunos pines para LVDS o uno de los estándares de LVCMOS, mientras que el banco IO se alimenta desde un voltaje excesivamente alto (3.3V con un estándar de 1.8V IO, o lo contrario en una entrada ) ¿Lo haría?

Obviamente, los problemas térmicos pueden ser una posibilidad al hacer algo tonto, como la creación de muchos, muchos osciladores en anillo.

    
respondido por el Dan Mills
1

Los FPGA se pueden reconfigurar en tiempo de ejecución con un nuevo flujo de bits (parcial). Normalmente, esta secuencia se carga desde una fuente externa, pero también puede crearla usted mismo en el FPGA (por ejemplo, mediante una CPU de softcore incorporada). Usando tal solución para, por ejemplo, La reubicación dinámica de subdesigns no proporciona todas las comprobaciones de consistencia realizadas por las herramientas del proveedor. Por lo tanto, si su algoritmo está dañado, puede habilitar los transistores de ruta falsa en un FPGA y quemarlos.

También puede elegir modos de operación falsos para primitivas FPGA como PLL o transceptores.

La reconfiguración dinámica es como un código de modificación automática en el software.

    
respondido por el Paebbels

Lea otras preguntas en las etiquetas