Vivado下载mcs到板子没反应

Vivado下载mcs到板子没反应

总结一下经历过的vivado下载mcs或者bin文件到板子上,板子没有实现程序功能的原因。

没有下载进去

可能是由于下载的速率设置的太高,比如笔者尝试过128M的Flash,使用50M的时钟,4线SPI的方式进行下载,虽然vivado软件提示下载成功,但是程序无法下载进去。

后续一直沿用了12M时钟,4线SPI的方式,对应约束文件为:

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 12 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

set_property BITSTREAM.CONFIG.UNUSEDPIN PULLNONE [current_design]

使用4线的SPI方式,在FPGA上电的时候从Flash读取配置文件也比较快。

没有关闭vivado的Hardware Manager窗口

如果连接烧录器,下载mcs文件之后,直接重启板子电源。已经烧录进去的FPGA配置文件是无法从Flash加载到FPGA进行配置的。

此时vivado的Hardware Manager窗口依然工作(包括突然掉电,该界面有错误提示的情况下),因此FPGA不会优先从Flash中读取刚才下载的烧录文件。

所以需要关闭vivado的Hardware Manager窗口,再次进行下电上电操作,此时就可从Flash加载程序,配置之后FPGA就可以按照预期程序工作。

也可以在Hardware Manager窗口中进行从Boot中启动,这样就不需要硬件断电再上电了:

不断电启动
目前这个方式是最优解。

引申

依稀记得使用Quartus II进行AS模式下载pof文件时,也需要对板子进行下电再上电操作。

而且同样,需要拔除USB blaster烧录器后,程序才能正常工作。

仔细想一想,跟这种情况非常类似。

写在后面

没有深究为什么会出现这种情况,初步讨论可能是FPGA上电配置优先级的问题,JTAG的优先级可能最高,如果占用JTAG一直处于复位状态,可能就一直在复位循环,无法进行后续工作。

20210902:更新图片。

  • 14
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
生成MCS文件有两种方法,一种是使用GUI,另外一种是使用tcl命令。使用GUI的方法如下: 1. 首先生成比特流文件,假设生成的比特文件名是led.bit。 2. 在工具栏选择 "Tools" -> "Generate Memory Configuration File..."。 3. 在弹出的页面中,按照以下步骤进行设置: 1. 选择生成的文件格式为MCS。 2. 选择FLASH的大小,根据实际的板卡设置。 3. 填写将要生成的MCS文件文件名。 4. 选择接口类型,建议选择SMAPx16。 5. 选中加载比特文件的复选框,并点击浏览文件按钮,选择相应的比特文件。起始地址选为全0,增长方向选为"up"。 6. 将三个复选框都选中。 4. 执行以上步骤后,会在页面上生成一条tcl命令。 5. 点击"OK"即可生成MCS文件。 使用tcl命令生成MCS文件的方法如下: 1. 还是以led.bit为例,使用以下命令即可生成MCS文件: ```write_cfgmem -format mcs -size 128 -interface SMAPx16 -loadbit {up 0x00000000 "M:/led.bit" } -checksum -force -disablebitswap -file "C:/Users/假大叔/AppData/Roaming/Xilinx/Vivado/led.mcs"``` 解释一下这条命令: - write_cfgmem:写配置存储文件,也就是生成MCS文件。 - -format:生成存储文件的格式,这里是mcs。 - -size:指定Flash大小,以Byte为单位。 - -interface:指定Flash接口为SMAPx16。 - -loadbit:指定生成MCS文件所需的比特流文件,并指定MCS文件存放起始地址为0x00000000,地址增长方向为向上增长。 - -file:指定MCS文件存放的地址及文件名。 生成完MCS文件后,可以将其添加到FLASH中。方法如下: 1. 打开少些比特流的页面。 2. 选中芯片,右键点击,选择"Add Configuration Memory Device"。 3. 选择自己板卡对应的FLASH。 4. 添加MCS文件,点击"OK"完成。 5. 烧写过程比较慢,大约需要7到8分钟。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShareWow丶

前人栽树,分享知识,传播快乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值