Xilinx Dual Quad Flash SPI加载方式下的文件处理

Xilinx Dual Quad Flash对应的加载模式有两种:

(1)Dual parallel Quad SPI

(2)Dual stacked Quad SPI

由于此加载方式为X8位宽,分别对应两片X4的Flash芯片,那么Vivado生成的bin文件是按照什么规律烧写至2片Flash芯片中呢?

笔者此前认为Dual parallel Quad SPI模式下是将原始bin文件中的单个字节进行切割,实际不然。

本篇文章将就此问题进行说明,后续可以自行开发切割工具 or 使用Xilinx提供的xsct/Bootgen 进行bin文件的正确切割和烧写。

1 Xilinx Dual-Stacked Quad SPI模式

1.1 硬件连接

参考Xilinx官方手册,可以找到Dual-Parrallel Quad SPI的硬件连接方法

|--------------------------------------|-------------------------|
| FPGA | Flash |
| QSPI0_CLK QSPI0_IO3:0 QSPI0_CS_b | Quad SPI0 Device(Lower) |
| QSPI0_CLK QSPI0_IO3:0 QSPI1_CS_b | Quad SPI1 Device(Upper) |

1.2 Flash文件映射关系

映射关系如下:

|-------------|---------------|-------------|
| Lower.bin | 原始.bin | Upper.bin |
| Addr0 1Byte | Addr0 1Byte | |
| ... | ... | ... |
| AddrN 1Byte | AddrN 1Byte | |
| | AddrN+1 1Byte | Addr0 1Byte |
| | ... | ... |
| | ... | ... |

这里就最简单的情况进行分析,假设单片Flash的容量为16MB

(1)原始bin文件小于或等于16MB时,那么原始bin文件全部烧写至Lower Flash;

(2)原始bin文件大于16MB时,那么原始bin文件0地址开始的16MB内容写入Lower Flash,原始bin文件16MB之后的内容写入Upper Flash

(3)Flash的容量还可以为16/32/64/128MB

2 Xilinx Dual-Parallel Quad SPI模式

2.1 硬件连接

参考Xilinx官方手册,可以找到Dual-Parrallel Quad SPI的硬件连接方法

|--------------------------------------|-------------------------|
| FPGA | Flash |
| QSPI0_CLK QSPI0_IO3:0 QSPI0_CS_b | Quad SPI0 Device(Lower) |
| QSPI1_CLK QSPI1_IO3:0 QSPI1_CS_b | Quad SPI1 Device(Upper) |

2.2 Flash文件映射关系

映射关系如下:

|-------------|-------------|-------------|
| Lower.bin | 原始.bin | Upper.bin |
| Addr0 1Byte | Addr0 1Byte | |
| | Addr1 1Byte | Addr0 1Byte |
| Addr1 1Byte | Addr2 1Byte | |
| | Addr3 1Byte | Addr1 1Byte |
| Addr2 1Byte | Addr4 1Byte | |
| | Addr5 1Byte | Addr2 1Byte |
| ... | ... | |
| | ... | ... |

基于以上关系,我们可以分别将Lower.bin烧入Lower Flash中,将Upper.bin烧入Upper Flash中,完成Dual-Parallel Quad SPI模式下程序的正常加载。

相关推荐
blue_ice .6 分钟前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
薛定谔的bug~5 小时前
【vivado】10G ibert 工程
fpga开发
博览鸿蒙5 小时前
新手怎么挑一块靠谱的FPGA开发板?
fpga开发·fpga·fpga开发板
威嵌神州7 小时前
VxWorks6.9 BSP 适配:飞腾 D2000/FT2000/4 平台、驱动开发
驱动开发·嵌入式硬件·fpga开发·系统架构
FPGA小迷弟1 天前
【无标题】
fpga开发·dsp开发·fpga·sdr·无线电
szxinmai主板定制专家1 天前
【工控实战】RK3568/RK3588 8路隔离CAN/CANFD完整解决方案|多路总线并行通信、车载/工控量产落地
人工智能·fpga开发·zynq·mpsoc·半导体设备
郝旭帅电子设计团队1 天前
Xilinx FPGA的BANK标号命令规则
fpga开发·郝旭帅电子设计团队·郝旭帅
威嵌神州1 天前
天脉 3 开发环境与 BSP 适配:IDE license、驱动开发、飞腾平台
ide·驱动开发·嵌入式硬件·fpga开发
FPGA小迷弟2 天前
FPGA 应用技术能力的完整闭环(5-8)
fpga开发·dsp开发·fpga·sdr·无线电
狂奔蜗牛(bradley)2 天前
搞定100ns抖动:ARM+FPGA混合EtherCAT主站实战方案
嵌入式硬件·fpga开发