Ultruscale FPGA配置Flash技术详解

需积分: 10 5 下载量 94 浏览量 更新于2024-08-05 1 收藏 320KB DOCX 举报
"这篇文档是关于Ultruscale系列FPGA如何操作配置Flash的学习笔记,主要探讨了SPI和BPI启动方式,以及如何利用FLASH的空余空间进行数据存储和远程更新镜像文件。文中提到了Xilinx VCU108开发板上的一个参考设计,该设计使用MicroBlaze软核和AXI外部存储器控制器来实现对BPIFlash的读写访问。验证流程包括使用BIN文件配置FPGA,通过Xmodem协议更新比特流,并利用STARTUPE3原语重新配置FPGA。此外,还介绍了时钟拓扑和AXIEMC内核的设置。" 在Ultruscale系列FPGA中,配置Flash主要有两种启动方式:SPI(Serial Peripheral Interface)和BPI(Byte Parallel Interface)。SPI启动利用FPGA的bank0上的SPI数据线,而BPI启动则通过bank0上的DQ0-DQ3数据线。这两种启动方式允许FPGA在上电后加载配置数据,但同时也提供了额外的功能,即在程序加载完成后,可以利用未使用的Flash空间存储其他数据或进行远程更新。 为了实现这一功能,Xilinx提供了一个基于VCU108开发板的参考设计,其中MicroBlaze软核与AXI外部存储器控制器(AXIEMC)连接,通过STARTUPE3原语实现了对BPIFlash的配置后读写访问。STARTUPE3原语是一个关键组件,它允许在配置过程中控制时钟和初始化过程,使得FPGA能够在运行时访问并修改配置存储器。 参考设计中的系统时钟拓扑采用了外部300MHz差分时钟,经过MMCM(Multiplexer-based Memory Clock Manager)进行分频,生成100MHz和50MHz时钟。50MHz时钟被用于AXIEMC、处理器系统复位和axi_hwicap模块,而100MHz时钟服务于AXI外设互连和其他外设。AXIEMC需要与BPIFlash使用相同的时钟,因此50MHz时钟也被路由至STARTUPE3,确保正确同步。 在验证流程中,首先使用存储在BPIFlash中的BIN文件配置FPGA,这个BIN文件包含了STARTUPE3原语、接口逻辑、IP核和约束。之后,MicroBlaze运行的应用程序可以通过Xmodem协议从主机下载新的比特流更新。这个过程通过串口软件进行,如CRC校验的1024字节数据包写入BPIFlash。然后执行IPROG操作,更新BIN文件并重新配置FPGA,从而替换原来的BIN文件。 AXIEMC的设置对于正确访问BPIFlash至关重要。其时钟设置确保了与BPIFlash一致的50MHz时钟,同时为AXI接口的事件计时和写入操作提供支持。AXIEMC配置需要仔细调整,以确保与BPIFlash通信的正确性和稳定性。 这份学习笔记详细阐述了Ultruscale系列FPGA中如何操作配置Flash,包括启动方式的选择、MicroBlaze和AXIEMC的使用,以及STARTUPE3原语在动态更新配置文件中的作用。这些知识对于理解和实现FPGA的可编程性和灵活性至关重要。