引言:本文我们介绍下使用串行SPI Flash配置Xilinx 7系列FPGA的优点以及相应的配置方案实现细节,包括FPGA和SPI Flash之间的信号连接及如何选择恰当的SPI Flash。
1.简介
图1显示了利用Vivado开发工具间接编程SPI Flash和SPI Flash配置FPGA的示意图。
Xilinx FPGA由于其非易失特性,上电后需要一个配置比特流完成芯片内部逻辑配置。SPI Flash使用4线同步串行数据总线接口。SPI Flash只要求4个管脚来传输配置比特流,允许1bit或者2bit数据位宽。市面上较新的SPI Flash可选的支持6个管脚,4bit数据位宽,因此可以有效的降低配置时间。利用SPI Flash接口配置FPGA是一种非常低的引脚数配置解决方案,许多供应商都有各种密度的器件。
其他FPGA配置方案,如BPI接口NOR Flash,支持x8或者x16位宽配置方案,可以提供更快的配置速度,但是需要占用至少25个器件管脚。
由于并行NOR Flash设备比SPI Flash具有更高的密度选项,因此如果应用程序需要大量非易失性数据存储,或者需要存储多个FPGA位流,则应考虑BPI Flash。
2.SPI Flash基础
本小节我们回顾下SPI Flash的管脚功能和它们和7系列FPGA的硬件连接。图2显示了x1模式下基本的SPI Flash和FPGA之间的信号连接。
读命令和地址指令通过主输出从输入(MOSI)管脚从FPGA发送至SPI Flash,配置数据通过主输入从输出(MISO)管脚从SPI Flash返回至FPGA。SCK为同步时钟管脚,SS为低有效信号,为从器件片选信号。在x2数据位宽模式中,信号连接和图2相同,此时,MOSI管脚变为双向管脚,用作附加的数据管脚。
除了上述管脚之外,SPI Flash还有附加的管脚用于特殊用途。这些附加管脚随着SPI Flash供应商的不同而不同