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?
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?
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.
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:
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.
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.