0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UG470文档 page144 描述

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2022-07-15 09:05 次阅读

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

708e5ce0-03d6-11ed-ba43-dac502259ad0.png

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

70a0b386-03d6-11ed-ba43-dac502259ad0.png

几种情况

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

write_cfgmem-formatmcs-interfacespix4-size8-loadbit{up
0x400000./soc_top.bit}-filesoc_top_0x400000.mcs-force

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

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

write_cfgmem-formatmcs-interfacespix4-size8-loadbit{up0x000000./design1.bit
up0x400000./design2.bit}-filemixed.mcs-force

第一个 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_propertyBITSTREAM.GENERAL.COMPRESSTRUE[current_design]

打开看门狗功能

set_propertyBITSTREAM.CONFIG.CONFIGFALLBACKENABLE[current_design]

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

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

set_propertyBITSTREAM.CONFIG.NEXT_CONFIG_ADDR0x0400000[current_design]

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

原文标题:Xilinx FPGA 从spi flash启动配置数据时的地址问题

文章出处:【微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21317

    浏览量

    593154
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117712
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87592
收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA从spi flash启动配置数据时的地址问题

    fpga 上电时,默认是从 flash 的 0x00 地址开始读数据。如 UG470 文档 page144 描述
    的头像 发表于 11-29 09:20 468次阅读
    Xilinx FPGA从spi flash启动配置数据时的地址问题

    教你ABBYY FineReader 12文档转换技巧

    FineReader 12文档转换技巧,您可以在ABBYY FineReader主窗口中设置并启动任何处理步骤。1. 在主工具栏上,从‘文档语言’下拉列表中选择文档语言。2. 扫描页面或打开页面图像
    发表于 09-15 14:03

    基于RK3288嵌入式板卡 Android7.1文档索引资料分享

    基于RK3288嵌入式板卡 Android7.1文档索引资料分享作为一个一直在开发板方面做研究测试的开发者,和大家分享一下最近从Videostrong购买rk3288板卡的心得体会。今天就与大家
    发表于 05-18 10:28

    AN-1074文档理解串行下载协议中空白地址是应该填写“00”还是应该填写“FF”呢?

    AN-1074文档介绍了“理解串行下载协议”的相关问题,但是在阅读中,有一点不明,特此请教。在文档的“PAGEDOWNLOAD”命令中提到,下载的数据包要包含256个字节,但是打开HEX文件后发现
    发表于 08-16 07:20

    CN-0382文档错误

    你好,CN-0382文档,关于ADuM1441应用,在第二页原理图中是不是将ADuM1441输入与输出用反啦。谢谢
    发表于 01-29 11:36

    文档导航器怎么查找UG和XAPP编号

    很多帖子都引用了UG和XAPP编号,但是文档导航器没有显示或找到它们。我知道我可以谷歌他们并从Xilinx下载它们但是在Navigator中没有办法做到这一点吗?以上来自于谷歌翻译以下为原文A
    发表于 04-19 10:55

    8960文档指南

    This two-page guide highlights the documentation available to help you use the 8960 and explains where to go to find key information.
    发表于 10-23 10:43

    单片机EM88F711N产生不了烧录器的AOP2文档

    义隆单片机EM88F711N芯片,在义隆官方网站下载的eUIDEII_v2.19.60.21软件上编译通过,编译成功产生不了烧录器的AOP2文档,是什么原因产生不了AOP2文档,那个老大知道是不是请告知以下。
    发表于 10-28 15:07

    如何找出部分重配置的配置架构

    UG470)。有5个位对应于行,16个对应于列,7个对应于次要地址。但是使用了每个位的数量,是否有类似于xapp216或xapp151的文档,但是对于virtex 7设备?
    发表于 05-29 08:54

    如何将CFGBVS设置为GND并且我使用主SPI配置模式

    嗨,如果我将CFGBVS设置为GND并且我使用主SPI配置模式,我可以将bank 14设置为1.8V并将bank 15设置为3.3 V?从我在UG470中读到的内容来看,如果电压高于1.8V,配置
    发表于 06-01 13:33

    请问如何在zynq和virtex-7之间配置x8,x16,x32的数据行?

    xapp583文档中,它似乎是微处理器和7系列FPGA之间的32位线。现在我在文档UG470,xapp583)中反映了总线宽度自动检测部分,但我不太了解。请简单解释一下。
    发表于 06-05 10:31

    Kintex 7加速序列是什么

    嗨,我正在设计一台采用Kintex 7 325T速度等级-2的PCB。我从UG470看到,上电顺序要求当VCCINT(1V)上电时,SPI逻辑需要为FPGA配置唤醒,因此我计划将VCCINT作为上升序列中的最后一个电压,我是对?卢卡
    发表于 07-18 06:03

    请问xc7a35t和xc7a50t设备的实际比特流大小是多少?

    你好!xc7a35t和xc7a50t设备的实际比特流大小是多少?在UG470 v1.7(在vivado 2014.1文档导航器中标记为“最新”)中,只有标记为“初步估计”的数字。这些设备现在似乎几乎完全支持,可能已经有最终数字了吗?
    发表于 07-24 06:17

    请问大神分享一个GJB597B-2012文档

    求一个GJB597B-2012文档,谢谢大哥们
    发表于 06-23 13:22

    FPGA上电(Master)

    fpga 会从 0 开始读,地址不断自增,直到读取到有效的同步字 sync word(0xAA995566),才认为接下来的内容是一个有效的 bin 文件内容的开始。读到有效 sync word 后不会再继续读搜寻其他的 bin 文件。如 UG470 文档
    发表于 07-13 09:42 758次阅读