FPGA上电(Master)

时间:2025-07-26  作者:Diven  阅读:0

 

FPGA上电(Master)

FPGA上电(Master)

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

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

几种情况

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

write_cfgmem -format mcs -interface spix4 -size 8 -loadbit {up0x400000 ./soc_top.bit} -file soc_top_0x400000.mcs -force

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

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

write_cfgmem -format mcs -interface spix4 -size 8 -loadbit {up 0x000000 ./design1.bitup 0x400000 ./design2.bit} -file mixed.mcs -force

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

  1. 若把 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 错误,最后发生配置失败。

  2. 若只把 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 约束

  1. 对bit流进行压缩

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] 
  1. 打开看门狗功能

set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design] 

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

  1. 生成 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 。

审核编辑 :李倩


猜您喜欢

现代电子设备中,连接器的质量和性能直接影响到整个系统的稳定性和可靠性。CONN_95.4X8.2MM_TM作为一种高性能连接器,凭借其优越的设计和卓越的性能,广...
2025-03-08 04:46:29

电阻作为基础电子元件的重要性日益凸显。防硫化电阻因其优异的抗硫化性能,应用于汽车电子、电力设备及工业控制等领域。三环集团(CCTC)作为中国领先的电阻制造商,其...
2014-09-17 16:31:30

现代电子设备的设计与制造中,连接器的选择非常重要。TERMINAL_45.72X12.65MM作为高性能的连接器,因其优越的电气性能和机械特性,应用于各种电子设...
2025-04-22 20:01:42

电阻器作为基本且关键的元件,其性能直接关系到整个电路的稳定性和可靠性。Walsin(华新)作为知名的电子元器件制造商,其金属膜电阻系列凭借高精度、高稳定性和优异...
2013-05-10 08:23:15

漏斗是应用于各个行业的重要工具,特别是在市场营销和销售领域。形状特征使得信息或物品能够顺畅地从宽口流向窄口,象征着客户在购买决策过程中的逐步筛选。在市场营销中,...
2021-03-31 00:00:00

贴片电阻5010并非指阻值为5010欧姆的电阻,而是指的尺寸。5010代表该电阻的长和宽分别为5.0mm和1.0mm。至于的阻值,则需要查看电阻表面的标识。对于...
2024-11-29 10:26:13

XC7010是一款高性能的DCDC隔离电源芯片,为各种应用提供稳定可靠的电源解决方案。采用先进的隔离技术,能够有效隔离输入和输出电路,确保系统安全稳定运行。无论...
2023-12-31 00:00:00

铅笔是我们日常生活中常见的书写工具,但你知道铅笔之间有哪些区别吗?铅笔的硬度不同,通常用“H”表示硬度,数字越大越硬,适合细致的绘画和书写;而“B”表示软度,数...
2010-01-08 00:00:00

电子世界里,贴片电阻是很重要的配件。而误差值则是选择电阻时必须考虑的关键参数。指的是电阻实际阻值与标称阻值之间可能存在的偏差范围。误差值通常以百分比表示,例如±...
2024-11-29 10:25:44

闸阀是常见的管道阀门,主要用于开启和关闭流体的通道。虽然基本功能相似,但在类型和设计上存在一些显著的区别。闸阀可以分为平行闸阀和楔形闸阀。平行闸阀的闸板与阀座平...
2014-05-07 00:00:00