3

根据我的浏览,一旦 FPGA 断电,您必须再次对其进行编程。但我正在尝试使用verilog 实现基于FPGA 的安全系统。在那,我希望系统的密码被永久存储,即即使电源关闭,密码也不应该被删除。如果程序也可以存储也很好。我是FPGA的初学者。所以请告诉我如何做到这一点。该设备是 XC3S400 Spartan 3 系列。

4

2 回答 2

6

如果您有一个基于 SRAM 的 FPGA,例如 Spartan 3,那么您必须在每次上电时对其进行编程。原因是存储配置的SRAM是易失性的,断电后会丢失编程的配置。

Spartan 3 AN 是少数提供一定数量内部闪存的 Xilinx FPGA 之一,但我无法提供任何细节,因为我自己从未使用过此功能。

或者,有纯基于闪存的 FPGA,它提供非易失性配置存储,即您不必在每次 FPGA 通电时读取配置文件。您仍然需要配置一次,但它会在断电后保留配置。在下一次上电时,它已经配置好并准备好运行。

这一切都取决于您的FPGA内部是否有非易失性存储器。否则,您需要使用外部 IC。

作为自定义密码的替代解决方案:许多供应商提供工具支持来加密配置比特流。FPGA 中嵌入的配置逻辑能够在配置时即时解密比特流。每个人仍然可以从配置 PROM 中读取比特流,但由于它是加密的,因此几乎没有用处。

于 2016-03-19T13:52:23.667 回答
1

通常在每次上电时,FPGA 都会从某种闪存重新加载,并且加载的比特流是不安全的,即任何人都可以存储它然后复制,甚至理论上可以对其进行逆向工程。

然而,一些FPGA 可以得到保护,例如通过在其中具有唯一的加密只写密钥,比特流可以被加密。然后,您可以在您的 verilog 代码中编写密码并在输入时检查它。

如果您的密钥或密码应该经常更改或在设备的每个副本中应该不同,您应该将其存储在外部 FLASH/EEPROM 存储器中,并使用 FPGA 内部的永久密钥提供的加密。

于 2016-03-19T10:25:37.783 回答