本文主要是介绍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:更新图片。
这篇关于Vivado下载mcs到板子没反应的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!