为什么基于 SRAM 的 FPGA 比基于 NVM 的 FPGA 使用更多?

电器工程 FPGA 嵌入式 急速 非易失性存储器 安全
2022-01-05 03:47:00

基于 SRAM 的 FPGA 需要在断电后再次加载比特流。同时,基于非易失性的不需要那个。

我想知道,为什么在 SRAM FPGA 上进行的实验和安全研究比基于 NVM 的更多,似乎易失性技术被更多地使用,而不管其安全限制(在确保安全启动方面)。

(PS:我没有统计,纯属个人观察)

4个回答

主要驱动因素是 SRAM 与用于实现实际逻辑的相同物理过程高度兼容。事实上,如今大多数 FPGA 都是基于 LUT(查找表),而 LUT 本身只是 RAM 的一小部分。

另一方面,构建 EEPROM(非易失性存储器)所需的过程需要额外的步骤——创建具有特殊氧化物厚度的浮栅等。该过程与逻辑/SRAM 过程不直接兼容。这意味着非易失性 FPGA 在这两个领域都有些折衷。

除了 Dave Tweed 关于所涉及的制造过程的回答之外,大多数基于闪存的 FPGA 实际上仍然使用 SRAM 来驱动其结构。比特流从闪存加载到 SRAM 中,就像在更传统的 FPGA 中一样,唯一的区别是闪存是内部的。当您查看他们的数据表和应用笔记时,这种架构是显而易见的。特别是,像 Lattice MachXO2/3 这样的一些设备支持在设备运行时对其闪存进行重新编程,这只是因为设备实际上是从 SRAM 运行而不是直接从闪存运行。因此,除了SRAM 之外, “基于闪存”的 FPGA 还需要闪存,这意味着它需要更多的芯片面积。

关于安全性,您正确地指出 FPGA 启动过程在允许捕获比特流方面可能是一个弱点。为了帮助缩小这一差距,现在许多 FPGA 都支持比特流加密,它基于存储在 FPGA 内专用存储器中的安全密钥。比特流图像用这个密钥加密,加载到配置存储器中,然后当 FPGA 启动时,它会读取加密的比特流,并在将其加载到其时对其进行解密(一些需要外部存储器的微控制器具有类似的功能,并且原理大体相同。)

最重要的是,这取决于您的要求。虽然尺寸、重量和功率 (SWaP) 通常是 IC 的主要驱动因素,但如果您不是因为这些要求而被迫开发 ASIC,那么性能是您的下一个考虑因素,这可能会促使您回到 ASIC,但是,如果您能负担得起 SWaP 的权衡,您也许可以使用 FPGA。

  • 基于 FLASH 的 FPGA 不需要“时间”来配置,因为它们是“即时启动”的。您的设计可能需要这个。
  • FLASH技术比SRAM功耗更低
  • 基于 FLASH 的 FPGA 不需要 BOOT PROM,因此一个芯片对两个(或更多)。
  • 您可能需要在之前的状态下上电。
  • 基于 FLASH 的解决方案提供了更多的 Rad-Tolerant 解决方案。在基于 SRAM 的 FPGA 中,有一些方法可以处理辐射要求或一般的 SEU,但是,Microsemi 提供了“强化技术”

基于 FLASH 的 FPGA(Actel,现为 Microsemi)传统上没有基于 SRAM 的 FPGA 所能达到的密度或性能,因此,如果性能是驱动因素,您会选择 Xilinx 或 Altera(现为 Intel),或者也许是格子。

从本质上讲,您受到系统要求的驱动,特别是您的 IC。尽早解决这些要求并对不同的 FPGA(电子表格)进行贸易研究。SWaP 和性能,其次是经常性成本是您希望与您的团队(系统、CCA,甚至可能是 SW)进行迭代的主要考虑因素,这些因素会反馈给您的项目总工程师/经理。其他问题,例如可靠性、可制造性等,通常由来自这些各自组织的其他团队成员提供,但如果没有您的初始交易,通常意义不大,并且通常不会阻止您的选择。

如果您搜索“SRAM 与 FLASH FPGA”,则网络上有文章,但您可能会从使用数据表的贸易研究中了解更多信息,而不是其他任何东西。

为了解决安全问题,大多数现代 SRAM FPGA 都可以配置加密流,通常使用现代加密标准,例如 256 位 AES。可以说,这与在内部存储配置一样安全:能够从去盖芯片中提取私钥的专用连接器也能够读取内部闪存。

当实现相当简单(因此不需要大型 SRAM FPGA)或需要即时启动时,通常使用基于闪存的 FPGA。