可能损坏 FPGA 的 VHDL

电器工程 FPGA 视频文件
2022-01-21 19:42:06

我在某处读到错误的 VHDL 代码会导致 FPGA 损坏。

甚至有可能用 VHDL 代码损坏 FPGA 吗?什么样的条件会导致这种情况,最坏的情况是什么?

4个回答

添加到@Anonymous 的答案中,您可以构建一些可能会损坏 FPGA 结构的设计。

对于初学者,如果您构建一个由大量寄存器(例如 FPGA 的 70%)组成的非常大的设计,所有这些寄存器的时钟频率都接近 FPGA 的最大频率,那么硅可能会显着加热。如果没有足够的冷却,这可能会导致物理损坏。我们损失了价值 13,000 美元的 FPGA,因为开发套件的冷却系统很差,导致它过热。

另一种更简单的情况是组合循环。例如,如果您实例化三个链接在一起的非门,并禁用或忽略有关这种结构的合成器警告,您可能会形成对 FPGA 非常不利的东西。在此示例中,您将制作一个多 GHz 振荡器,它可以在非常小的区域内产生大量热量,可能会损坏 ALM 和周围的逻辑。

在这种情况下,代码不是一个正确的词。虽然 Verilog 或 VHDL 看起来像程序,但编译器的输出是一个配置,它被加载到 FPGA 芯片中,在其中形成电子电路。

我想到了两种类型:

  • 物理损坏:例如,多个 FPGA 管脚连接在一起(或连接到另一个设备)并开始同时输出不同的逻辑电压。电流流动 - 可能是电流过大 - 最终会损坏栅极;
  • 逻辑损坏:电路可能对闪存芯片或配置设备处理不当,损坏其中的数据映像,最终整个设备发生故障。

如果驱动它们的其他任何东西足够坚硬,则将输入引脚块错误配置为输出可能会这样做。

我不知道在 IO 组由过高电压(例如 1.8V IO 标准的 3.3V 电源或输入相反)供电时,是否为 LVDS 或 LVCMOS 标准之一配置一些引脚会做它?

显然,通过做一些愚蠢的事情,比如实例化很多很多环形振荡器,可能会出现热问题。

FPGA 可以在运行时使用新的(部分)比特流重新配置。通常,该流是从外部源加载的,但您也可以自己在 FPGA 中创建它(例如,通过嵌入式软核 CPU)。将这样的解决方案用于例如动态重定位子设计,并不能提供供应商工具所做的所有一致性检查。因此,如果您的算法被破坏,您可能会启用 FPGA 中的错误路径晶体管并烧毁它们。

您还可以为 PLL 或收发器等 FPGA 原语选择错误操作模式。

动态重新配置就像软件中的自我修改代码。