Leí en alguna parte que un código VHDL incorrecto puede provocar daños FPGA.
¿Es posible dañar un FPGA con código VHDL? ¿Qué tipo de condiciones causarían esto y cuáles son los peores escenarios?
Leí en alguna parte que un código VHDL incorrecto puede provocar daños FPGA.
¿Es posible dañar un FPGA con código VHDL? ¿Qué tipo de condiciones causarían esto y cuáles son los peores escenarios?
Respuestas:
Agregando a la respuesta de @ Anonymous, hay diseños que puede construir que pueden dañar la estructura de un FPGA.
Para empezar, si construye un diseño muy grande que consta de grandes cantidades de registros (por ejemplo, el 70% del FPGA), todos sincronizados a una frecuencia máxima cercana al 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 juntas en un anillo y deshabilita o ignora las advertencias de los sintetizadores sobre dicha estructura, puede formar algo que es muy malo para un FPGA. En este ejemplo, harí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.
Código no es una palabra correcta en este contexto. Si bien Verilog o VHDL parecen programas, la salida del compilador es una configuración que se carga en el chip electrónico FPGA que forma un circuito electrónico dentro de él.
Me vienen a la mente dos tipos:
La configuración incorrecta de un bloque de pines de entrada como salidas podría hacerlo si cualquier otra cosa que los impulsa es lo suficientemente rígida.
No sé si configurar algunos pines para LVDS o uno de los estándares LVCMOS, mientras que el banco IO está alimentado por un voltaje demasiado alto (potencia de 3.3V con un estándar IO de 1.8V, o lo contrario en una entrada) ¿eso?
Obviamente, los problemas térmicos pueden ser una posibilidad haciendo algo tonto como crear instancias de muchos, muchos osciladores en anillo.
Los FPGA pueden reconfigurarse en tiempo de ejecución con un nuevo flujo de bits (parcial). Normalmente, este flujo se carga desde una fuente externa, pero también puede crearlo usted mismo en el FPGA (por ejemplo, mediante una CPU softcore incorporada). El uso de una solución de este tipo, por ejemplo, para reubicar dinámicamente los subdiseños, no proporciona todas las comprobaciones de coherencia que realizan las herramientas del proveedor. Entonces, si su algoritmo está roto, puede habilitar los transistores de ruta falsa en un FPGA y grabarlos.
También puede elegir modos de operaciones falsas para primitivas FPGA como PLL o transceptores.
La reconfiguración dinámica es como el código de auto modificación en el software.