当 FPGA 通电但未配置时会发生什么?

电器工程 力量 FPGA 可编程逻辑
2022-01-27 04:00:36

我试图大致了解如果长时间未对 FPGA 进行编程会发生什么。

假设您有一个 FPGA,并且您在很长一段时间内(通电后几分钟到几小时)将其置于未编程状态,即其上没有比特流,这对设备有害吗?是否建议始终在通电的 FPGA 上保留一些比特流?对此有何普遍看法?

不同器件或制造商的结果是否不同(Xilinx 与 Altera 与其他)?


附加信息:

我有一个使用 Xilinx Virtex-6 FPGA 的定制 SoC 板。我还有一个 Xilinx ML605,用作参考。

定制板:我给板加电。我注意到我有很短的时间使用 XMD(Xilinx 微处理器调试器)对其进行编程。如果我失去了 20-30 秒的窗口,我必须关闭并打开电路板,然后再试一次。ML605 不会发生这种情况。

当我尝试通过 XMD 对自定义板进行编程时,我得到如下信息:

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

让我知道你的想法。

3个回答

这是个有趣的问题。从个人经验来看,当组装车间送来一块新电路板时,我会在未编程状态下让 FPGA 通电数小时,同时对其余电路进行检查。我没有注意到这样做有任何不利影响。但老实说,我从来没有想过。

我环顾四周,试图找到一家 FPGA 制造商的推荐,但找不到。我发现的关于这种状态的唯一声明来自莱迪思白皮书,它涉及 FPGA 本身的设计,而不是它应该如何使用:

预编程静态静态器件功耗是器件被编程之前 FPGA 消耗的电量。对于静态器件功耗,FPGA 处于非编程状态,但已通电。重要的是,设备在此期间不要消耗大量功率,因为​​从概念上讲,FPGA 设备可能会消耗过多的功率并可能关闭电源,从而阻止电路板成功初始化自身和系统。
因此,FPGA 供应商必须仔细设计具有低静态特性的晶体管 3 低功耗设计莱迪思半导体白皮书电源足迹,同时不影响需要更高性能的领域(例如 I/O 和 SERDES)

Xilinx 还提到了静态电流是什么,以便您可以相应地设计您的电源。但没有提及将其置于这种状态对设备有何影响:

静态或静态功率主要受晶体管漏电流支配。当该电流在数据表中列出时,它被列为 ICCINTQ,是通过 VCCINT 电源为 FPGA 内核供电的电流。

我很想知道是否有人因将设备置于静止状态而对设备造成损坏。但我认为只要电源与设备匹配得当,应该没有问题。

我引用的是Spartan 3 数据表,因为那是我最熟悉的 FPGA。

如果您查看第 2 章(功能描述),“配置”部分有几个流程图。图 27(第 50 页)显示了从 Flash 加载的流程图。图 28 显示了 JTAG 流程图。

这是一个简短的总结。

1) 等待 Vccint、Vccaux 和 Vcco 达到所需的电平。

2) 清除配置锁存器

3) 等待 INIT_B 变高。INIT_B 是一个开漏输出,外部主机可以保持低电平以延迟配置。

4) 采样模式引脚。这决定了你是要通过 JTAG 还是 Flash 加载,如果 Flash 是 FPGA 还是 Flash 是主控。

5) 加载配置数据帧。

6) 验证数据帧的 CRC 是否正确。如果不正确,FPGA 会将 INIT_B 驱动为低电平以指示 CRC 错误,并将中止启动。

第 5 步可能是您真正的问题所在 - 如果没有可加载的内容会发生什么?好吧,如果你做对了,你不应该进入第 5 步Flash 芯片将保持 INIT_B 为低电平,直到它准备好向 FPGA 提供数据。如果您使用的是 JTAG,那么我不确定您的 JTAG 编程器是否会将 INIT_B 保持为低电平,但是当它对 FPGA 进行编程时,它几乎肯定会断言 PROG_B(通过将其驱动为低电平),这会导致 FPGA 返回到第 2 步。

如果我是你,我会在开机期间检查 INIT_B 信号以查看发生了什么。如果它从低电平开始,变高,然后再次变低,FPGA 中止了启动序列,您可能需要断言 PROG_B 以重置 FPGA。

默认配置被设计为尽可能被动,以使设备普遍可用。

对于 Altera Cyclone 系列(我最有经验),这意味着

  • I/O 管脚被弱上拉至 VCCIO(以使具有低电平有效芯片使能线的 IC 远离总线),
  • CONF_DONE 输出被拉低(您可以将其连接到其他 IC 的复位引脚以保持它们处于复位状态,直到加载配置以及在重新配置时将它们恢复到已知状态),并且
  • 时钟输入不转发到时钟网络。

其他 FPGA 类型应该是类似的静止状态,并为板的其余部分提供指示配置状态的非反相和反相输出。

让设备处于这种状态是无害的,因为核心与外界相当隔离,只有上拉可能有小电流流过它们。