SRAM-based Devices
大多数fpga都是基于SRAM配置单元的使用,这意味着它们可以被一次又一次地配置。这种编程技术的主要优点是可以快速实现和测试新的设计思想。而不断发展的标准和协议可以相对容易地适应。此外,当系统第一次通电时,FPGA可以首先被编程来执行一个功能,如自测或板/系统测试,然后它可以被重新编程来执行其主要任务。
基于SRAM-based的FPGA还有另一个巨大优势,那就是SRAM技术是当前比较前沿的。由于当今很多从事内存开发的技术,内存技术突飞猛进,FPGA开发商正好可以利用这一点。同时,SRAM单元与FPGA中其他的单元一样是基于CMOS技术,能更好的简化FPGA的本身的设计。
但不幸的是,天下没有免费的午餐。基于sram的FPGA的一个缺点是,每次系统启动时都必须重新配置。所以就需要一个特殊的外部存储器,来使得FPGA能够引导启动配置,这就增加了物料成本以及布局空间。另外一个更重要的问题就是,基于这样的启动方式,它并不能很好的保护FPGA的设计产权。而且,可以明确地说,全世界有很多专门从事逆向存储器设计IP的公司。世界上并不存在不能破解的存储器,只是看资金是否足够。
好在就是,许多基于SRAM-based的FPGA开始支持比特流加密,在这种情况下,最终的配置数据在存储到外部存储设备之前被加密。加密密钥本身通过JTAG端口加载到FPGA中特殊的基于sram的寄存器中。这个密钥与一些相关的逻辑一起,允许传入的加密配置位流在被加载到设备时被解密。加载加密比特流的命令以及过程中会自动禁用FPGA的读回能力。这意味着通常在开发期间使用未加密的配置数据,然后在进入生产阶段时开始使用加密的数据。
加密比特流方案的主要缺点是,当系统断电时,电路板上需要电池备份来维护FPGA中加密密钥寄存器的内容。这种电池将有几年或几十年的使用寿命,因为它只需要在FPGA中维护一个寄存器,但它确实增加了电路板的尺寸、重量、复杂性和成本。
以Xilinx A7系列的FPGA来说,就是基于SRAM-based技术的FPGA。下图为它的配置电路框图:
需要配置一个SPI Flash,来实现FPGA的比特流配置。所以这篇文章就解释了不同厂商的FPGA由于其架构,同时导致外围配置电路不同的原因。
下一篇就介绍基于Antifuse-based 为架构的FPGA。