如果您有基于SRAM的FPGA(例如Spartan 3),则必须在每次加电时对其进行编程。这样做的原因是,存储配置的SRAM易失,并且在关闭电源后会丢失已编程的配置。
Spartan 3 AN是提供少量内部闪存的少数Xilinx FPGA之一,但是由于我自己从未使用过此功能,因此我无法提供任何细节。
另外,也有纯基于闪存的FPGA,它们提供非易失性配置存储,即,您不必在每次FPGA上电时都读取配置文件。您仍然必须配置一次,但是在关闭电源后仍保留配置。在下一次启动时,它已经配置好并可以运行了。
一切都取决于FPGA内部是否具有非易失性存储器。否则,您需要使用外部IC。
作为自定义密码的替代解决方案:许多供应商提供工具支持来加密配置比特流。内置在FPGA中的配置逻辑能够在配置时动态解密位流。每个人仍然可以从配置PROM中读取比特流,但是由于它是加密的,因此几乎没有用。