NOR闪存广泛用作FPGA的配置设备。在工业,通信和汽车ADAS应用中,FPGA的使用取决于NOR Flash的低延迟和高数据吞吐量特性。快速启动时间要求的一个很好的例子是汽车环境中的摄像头系统。点火时后视图像出现在仪表板显示屏上的速度是一阶设计挑战。
上电后,FPGA会立即加载已存储在NOR器件中的配置位流。传输完成后,FPGA转换为活动(已配置)状态。FPGA包含许多配置接口选项,这些选项通常包括并行NOR总线和串行外围设备接口(SPI)总线。支持这些总线的存储器在不同制造商提供的产品之间始终存在很小的不兼容性,这使得存储设备的多来源采购更加困难。
最新发布的JEDEC xSPI规范是由所有主要的NOR闪存制造商共同开发的。新标准终止了数十年的NOR Flash制造商独立开发产品而未遵循通用定义的情况。尽管仍然存在微小差异,但所有制造商提供的JEDEC xSPI核心功能现在都相同。JEDEC xSPI规范对总线事务,命令和广泛的内部功能进行了标准化。结合高吞吐量,这些下一代闪存可实现全新的应用程序和功能。例如,赛普拉斯的Semper NOR闪存系列符合JEDEC xSPI规范,并提供400MB / s的持续读取传输速率,非常适合用作FPGA配置存储器。为了说明这一点,
FPGA配置的历史
FPGA首次面世时,选择的配置存储器是并行EPROM或并行EEPROM产品。随着时间的流逝,NOR Flash技术出现了,并因其系统内可重新编程性和成本效益而被广泛采用。第二个演进过渡是,SPI存储器接口在大多数应用中已经取代了并行NOR接口。当今的SPI存储器产品提供了高密度,小封装,高读取吞吐量以及(最重要的是)高效的低引脚数接口。
图1 –千兆四通道SPI(6引脚)和并行NOR(45引脚)接口
图1显示了一个1 Gb SPI设备与一个1 Gb Parallel NOR产品的引脚排列。对于一个千兆位内存,四路串行外设接口(QSPI)器件具有一个六针接口,而并行NOR器件则需要45针。引脚数的巨大差异导致QSPI器件被广泛用作首选配置接口。QSPI接口允许更改密度,而无需更改设备尺寸。
FPGA配置速度
随着过程节点的缩小,FPGA器件继续增加了可用的可编程逻辑数量。反过来,这导致需要更高密度和更快的配置内存。现代FPGA在配置期间需要加载多达128MB的数据。这些高密度配置位流需要更长的时间才能从NOR闪存设备传输到FPGA。配置接口不仅针对读取吞吐量进行了优化,而且还专注于促进不同NOR闪存制造商之间的互操作性。
SPI读取吞吐量
从最初以x1模式运行的原始SPI接口一直到运行x4 DDR的现代QSPI产品,SPI读取吞吐量在过去几年中已得到显着提高。从表1可以看出,下一代闪存设备能够进一步提高SPI总线性能。
表1 –闪存设备的SPI读取吞吐量选项。
现代SPI器件具有针对固定总线宽度和传输类型进行永久配置的功能,该功能可在上电后立即运行。FPGA还必须支持该永久配置,以使配置过程在加电后立即开始。
另外,SPI存储器可以以x1模式退出加电模式,该模式允许主机系统(FPGA)查询存储器中串行闪存可发现参数(SFDP)表中的特征。这种x1模式已成为多家存储器供应商支持的标准功能,并允许FPGA检索有关器件功能的关键信息。检索到器件特征后,即可快速重新配置FPGA存储控制器和SPI存储器件,以实现最佳读取性能。
图2 –串行闪存可发现参数(SFDP)表用于在开机时配置SPI总线功能。
当使用可以以x1,x4或x8总线宽度以及SDR或DDR传输类型运行的下一代闪存设备时,使用集成的SFDP表检索关键设备信息至关重要。选择哪种总线宽度和传输类型必须与FPGA上实现的总线接口基础结构保持一致。
双QSPI配置接口
为了减少FPGA配置时间,许多现代FPGA允许在两个QSPI器件之间分配配置位流(图3)。这两个QSPI设备以并行方式连接,其中位流的低半字节存储在“主” QSPI设备(QSPI_P)中,位流的高半字节存储在“辅助” QSPI设备(QSPI_S)中。这两个设备在加载位流时并行运行,从而有效地使读取数据传输速率加倍。
请注意,除了共享的SCK线外,该接口在两个设备上都基本独立。当以并行(即,同时)方式读取设备时,共享SCK线可实现以最大程度减少时序偏斜。使用相同的目标地址执行相同的操作时,可以一次访问一个设备,也可以同时访问两个设备。
图3 –双QSPI配置接口(11引脚)允许在两个QSPI器件之间分配配置位流,以有效地使读取数据传输速率加倍。
当大型FPGA器件需要以最快的方式传输大型配置(即高密度)配置位流时,这种11引脚双QSPI配置很有吸引力。
闪存配置
下一代闪存以x1(主要用于SFDP访问),x4或x8 IO总线宽度运行。数据可以SDR或DDR格式传输,并且通过使用新的Data Strobe信号可以促进高速传输。例如,赛普拉斯的Semper NOR闪存器件的八进制配置使用11针接口(见图4)。
图4 –可以通过低引脚数接口使用x1,x4或x8 IO总线宽度以SDR或DDR格式传输数据。此处显示的是赛普拉斯使用11引脚接口的Semper NOR闪存的八进制配置。
必须将新的Data Strobe集成到FPGA配置接口中,以利用下一代Flash器件的高吞吐量读取功能。数据选通脉冲与输出读取数据沿边缘对齐,其方式与在低功耗DDR DRAM器件上使用选通脉冲的方式相同(图5)。数据选通“画画”了数据眼,并允许FPGA以高时钟速率有效捕获数据。
图5 –数据选通脉冲与输出读取数据边缘对齐的x8 DDR读取事务,使FPGA能够以高时钟速率有效捕获数据。
非常适合FPGA配置的一项闪存功能是支持连续读取操作。连续读取从主机(MCU或FPGA)声明CS#开始,然后发出读取命令,然后发出目标地址。经过多个延迟周期。存储设备从目标地址输出数据。如果主机继续切换时钟,则存储器将通过从下一个顺序地址输出数据进行响应。只要时钟继续切换,存储器将继续从顺序地址输出数据。此顺序读取功能可以使FPGA配置为具有单个读取事务。
有助于FPGA配置的另一个功能是AutoBoot功能。AutoBoot在上电复位期间从预配置的目标地址执行自动读取,然后在第一次声明CS#时立即输出数据(图6)。此功能对于需要简单配置机制的ASIC设备也很有用。CS#取消置位后,内存将返回其待机状态,并以正常方式处理后续操作。
图6 –运行中的自动引导读取功能(具有3个预热周期)。
NOR闪存设备的写事务(见图7)与标准SPI操作实际上相同,但有两个例外。首先,必须在整个事务期间将新的数据选通信号驱动为低电平。其次,当配置为DDR操作时,数据将被写入字(16b),而不是传统SPI产品上的字节写入编程粒度。
图7 – NOR闪存的写事务要求在整个事务期间将数据选通信号驱动为LOW,并且在配置为DDR操作时将数据写为16位字。
下一代NOR闪存设备可提供满足大规模基于FPGA的应用所增加的密度和即时启动要求所需的高吞吐量。所有主要的NOR Flash制造商都参与了JEDEC xSPI规范的开发,从而确保了OEM的广泛采购选择。JEDEC xSPI规范涵盖了上述的八进制SPI接口以及HyperBus接口,两者均提供400MB / s的读取吞吐量。已实现的读取吞吐量大大高于传统的SPI产品。为了利用高速基础架构,需要对FPGA SPI控制器进行修改。需要考虑的新功能包括DDR数据速率,用于数据捕获的新Data Strobe引脚以及扩展的x8总线接口。此外,某些NOR闪存设备,例如赛普拉斯的Semper NOR系列,当实现了双重QSPI配置架构时,就可以消除其中一种QSPI器件。在需要快速FPGA配置时间的情况下,以及对于执行实时重新配置的FPGA应用,下一代闪存所提供的性能将具有吸引力。