如何在 fpga ic 中正确保存架构

电器工程 FPGA
2022-01-21 22:39:01

考虑到我制作了一个架构来做一些特定的事情,例如用 vhdl 编写的。

我可以永远在 fpga 芯片中“烧掉”它吗?或者我应该怎么做,保护知识产权,知道它可以从串行闪存中读取?

4个回答

Xilinx Spartan 3AN FPGA 具有内部闪存,使其具有非易失性。你的问题实际上是多个问题。

1) FPGA 是易失的还是非易失的?大多数都是易失性的,需要在每次上电时从外部非易失性存储设备将配置比特流读入 FPGA。有些是非易失性的。就像我提到的赛灵思 S3AN。

2)如何保护配置比特流?这个问题有多种答案。

您可以加密比特流;这意味着存储在上述非易失性存储设备上的比特流是唯一的密文,只能由具有适当密钥的单个 fpga 解密。这将保护比特流的功能不被逆向工程发现。也就是说,即使加密比特流能够从非易失性存储设备中提取,无论是原位还是更具破坏性的手段,由于提取的文件是加密的,因此无法从提取的文件中获得意义。

您还可以将比特流设置为禁止回读。在调试时用于对 FPGA 进行编程的 JTAG 接口通常可用于从 fpga 中读回配置比特流。设置 NO_READBACK 选项会禁止此操作。

可以找到具有集成非易失性程序存储器的 FPGA。例如,Microsemi(前身为 Actel)专门研究这种类型的设备。

其他供应商提供对 FPGA 进行掩模编程的选项。例如,Xilinx 将他们的掩膜编程器件称为“ EasyPath ”FPGA。据我所知,这确实需要 NRE 付款,因此它不适合您可能需要更新设计的情况。(帽子提示给 alex.forencich 进行更正)

我至少可以为 altera 说话,我认为 Xilinx 也会有类似的东西。他们可以选择加密您放入外部闪存或 EEPROM 的文件。然后,您使用其非易失性或电池支持的密钥存储将解密密钥加载到 altera 部分。

由于您无法读取密钥,因此它可以保护您的 IP。他们在设计上输给了 Asics,因为他们无法保护人们的 IP,所以这是一个很常见的功能。

http://www.altera.com/devices/fpga/stratix-fpgas/about/security/stx-design-security.html

完成此操作的唯一方法是购买单独的 Flash 模块(如果 PGA 上还没有)并将代码加载到 ram 中,但是不建议这样做很麻烦,如果您购买 CPLD 之类的东西如果您不打算再次重新编程,请计划稍后重新编程或使用 ASIC。