FPGA的主动加载Flash问题
【问题分类】:FPGA的主动加载Flash问题,device: 28nm 7series
【问题背景】:已知目前有2个不同的程序A和B,在FPGA进行主动加载过程中会根据不同场景分别加载不同的程序,(A程序和B程序不一样,功能独立)
【诉求】:1、FPGA能否控制程序A和程序B在同一片Flash的不同地址空间存放?如果可以,需要如何操作?
2、FPGA能否控制当前时刻选择需要加载的程序类型(A程序加载或者B程序加载)?如果可以,FPGA如何接收控制程序加载的控制信号?
【解答】:
1. 配置模式要用BPI,通过RS[1:0]两个管脚来切换加载哪个版本的程序,详细方法可以参考XAPP1246的附录A,Page17。
2. Master SPI的方式,则无法通过RS管脚切换image。
3. 根据UG470手册中的描述可以看到SPI和BPI的硬件接口不一致,因此硬件如果已经做成Master SPI的方式,则无法用BPI成熟参考设计。
4. 另一个思路是考虑通过DFX实现。方法是划一个小的静态区和一个大的动态区,静态区放控制flash数据读取和动态加载的逻辑,动态区实现客户要求的功能。当然DFX的问题是设计比较复杂,接受度不是太高。