Answers:
Xilinx Spartan 3AN FPGA具有内部闪存,使其非易失性。您的问题实际上是多个问题。
1)FPGA是易失性还是非易失性?大多数是易失性的,每次开机时都需要从外部非易失性存储设备将配置位流读入FPGA。有些是非易失性的。就像我提到的Xilinx S3AN。
2)如何保护配置比特流?这个问题有多个答案。
您可以加密比特流;这意味着存储在上述非易失性存储设备上的比特流是唯一的密文,只能由单个fpga用适当的密钥解密。这将保护比特流的功能不被逆向工程发现。也就是说,即使能够从原位或更具有破坏性的手段从非易失性存储设备中提取加密的比特流,由于提取的文件是加密的,因此也将无法从中提取感觉。
您还可以将比特流设置为禁止回读。通常在调试时用来对FPGA进行编程的JTAG接口通常可用于从fpga中读取配置位流。设置NO_READBACK选项将禁止这样做。
可以找到具有集成非易失性程序存储器的FPGA。例如,Microsemi(以前称为Actel)专门研究这种类型的设备。
其他供应商提供了对FPGA进行掩膜编程的选项。例如,赛灵思称其掩模编程器件为“ EasyPath ” FPGA。据我所知,这确实需要支付NRE,所以它不适用于可能需要更新设计的情况。(更正alex.forencich的提示)
我至少可以代表Altera,我认为Xilinx会有类似的想法。他们可以选择加密您放入外部闪存或EEPROM中的文件。然后,使用其非易失性或电池后备密钥存储将解密密钥加载到Altera部件中。
由于您无法读出密钥,因此可以保护您的IP。他们因为无法保护人们的IP而失去了赢得Asics的设计大奖,所以这是一个非常普遍的功能。
http://www.altera.com/devices/fpga/stratix-fpgas/about/security/stx-design-security.html