首页 > 技术 > 内容

解析FPGA从SPI Flash启动配置数据时的地址问题

时间:2025-12-08  作者:Diven  阅读:0

FPGA上电(Master)

FPGA 上电时,默认是从 flash 的 0x00 地址开始读数据。如 UG470 文档 page144 描述

fpga 会从 0 开始读,地址不断自增,直到读取到有效的同步字 sync word(0xAA995566),才认为接下来的内容是一个有效的 bin 文件内容的开始。读到有效 sync word 后不会再继续读搜寻其 bin 文件。如 UG470 文档 page81 描述:

几种情况

只有一个 bit 文件,使用如下命令将该 bit 文件写出转换为 mcs 文件,并烧入 spi flash 中。

该 bit 文件在 flash 中存放的起始地址是 0x400000 ,上电 fpga 能正常启动,因为前部分的地址 0x000000-0x400000 之间都是无效数据, fpga 从 0x000000 地址开始读,没有有效的 sync word ,读地址不断增加,直到 0x400000 地址才会读到同步字,然后就能正常的从 0x400000 开始配置。

有两个 bit 文件,使用该命令转换为一个 mcs 文件

第一个 bit 文件放在 0x000000 地址,第二个放在 0x400000 地址,烧写 flash ,上电后 fpga 从 deign1.bit 启动,因为第一个 bit 在前面, fpga 上电后从 0x000000 地址开始读,会先读到 deign1.bit ,然后成功地从deign1.bit 初始化。

若把 mcs 文件中关于 deign1.bit 的 FDRI data 的内容手动改为其值,使得配置的时候会出现 CRC 校验错误, deign2.bit 相关的内容不变,烧写进flash,上电, FPGA 无法正常配置数据,既不会从deign1.bit启动,也不能从deign2.bit 启动,这是因为第一个bit在前面, fpga 上电后从 0x000000 地址开始读,会先读到 deign1.bit ,然后从 deign1.bit 开始初始化,但是会发生CRC错误,然后又fallback 回 0 地址读,依然是读到 design1.bit 的数据,还是 CRC 错误,最后发生配置失败。

若只把 mcs 文件中关于 deign1.bit 的 sync word 的内容手动改为其值,比如 0xAA997866 ,deign2.bit 相关的内容不变,烧写进 flash 上电, FPGA 成功从 deign2.bit 启动。这是因为第一个 bit 在前面, fpga 上电后从0x000000 地址开始读,读到 deign1.bit 的 sync word 为 0xAA997866 时,发现不是有效的 sync word ,不会判断接下来的内容是属于一个有效的配置文件,于是继续自增地址往上读,直到读到 0x400000 地址后面,成功读到 design2.bit 的 sync word ,发现有效,然后从 deign2.bit 开始初始化。这样就跳过了前面 deign1.bit 的内容。

bitstream 约束

对bit流进行压缩

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] 

打开看门狗功能

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design] 

如果加载 Update_Image 配置文件失败后,没有返回加载 Golden_Image ,则会根据指定的时间启动看门狗,强制返回加载 Golden_Image 。

生成 bit 文件的头部添加 IPROG 命令和设置 WBSTAR 的命令

set_property BITSTREAM.CONFIG.NEXT_CONFIG_ADDR 0x0400000 [current_design]

配置时执行到 IPROG 命令后,会直接跳转到指定的地址中继续执行配置。可用于 Golden_Image 中设置为跳转到 Update_Image 启动。其实加不加这个约束,生成的bit流中的头部,都会有 IPROG 和设置 WBSTAR 的相关命令的占位空间,只是不加该约束时, IPROG 的位置会由 000000 替代, NOP 指令,只是空的占位符;而写 WBSTAR 寄存器的指令依然存在,但是写 WBSTAR 的值却是 0 。


审核编辑:刘清

猜您喜欢


随着科技的不断进步,数据传输和充电接口也在不断更新换代。USB4作为最新的通用串行总线(USB)标准,带来了更高的速度和更强的兼容性。其中,USB4-TYPEA...
2025-03-08 14:20:27
上海某污水处理厂处理能力在1万m³/日,监控点数不是很多,选用S7-300 PLC加北京鼎实DS300B分布式IO是一种即经济又切合实际的解决方案,它具有高度模...
2020-03-31 10:12:00
贴片电阻电容是电子电路中很重要的元件,封装尺寸规格直接影响着电路板的设计和组装。了解这些元件的尺寸规格对于工程师和电子爱好者都很重要。常用的贴片电阻电容封装尺寸...
2024-11-29 10:25:36
LED灯泡因其独特的优势,逐渐成为现代照明的首选。LED灯泡能耗低,相较于传统白炽灯,能节省约80%的电力,降低家庭和企业的电费支出。LED灯泡的使用寿命长,通...
2022-10-04 00:00:00
贴片电阻在电子电路中无处不在,但其微小的体积使得识别其阻值成为一大挑战。理解贴片电阻的标号方法,对于电子爱好者和专业人士都至关重要。本指南将为您提供快速掌握贴片...
2025-04-14 15:02:33
多向开关是现代电气设备中常见的开关类型,其主要功能是控制电路的通断。不同类型的多向开关在结构和使用上存在一些显著区别。多向开关的种类包括单极多向开关、双极多向开...
2018-12-19 00:00:00
1、 引言:中压变频系统要求产生与分配多路SPWM脉冲,控制实时性要求较高,应用软件功能复杂,另外还需要控制多路A/D、D/A转换以及与上位机进行串口通讯输出...
2020-08-05 17:23:00
超声波清洗机是高效的清洗设备,应用于各个行业。根据不同的使用需求,超声波清洗机可以分为几种主要类型。首先是工业超声波清洗机,通常用于大规模生产线,能够快速清洗大...
2023-06-16 00:00:00
防静电玻璃盒是专门设计用于保护电子元件和敏感设备的容器,其参数主要包括以下几个方面:材料选择非常重要。防静电玻璃盒通常采用高品质的耐高温玻璃,具有良好的透明度和...
2008-08-14 00:00:00