当前位置:   article > 正文

[Xilinx]在JTAG下载器连接时FPGA不加载flash里的程序

flash烧写完不能加载fpga

最近群里有很多人遇到上述的情况,一直觉得不可思议,以前没有遇到这种情况,如果是很常见的情况,那官网一定有人反馈,如果是极特别的情况,那么也就只能按照BUG处理了。

很幸运,官网有很多人反馈类似的问题,先把问题和解决方式放出来:

https://www.xilinx.com/support/answers/66954.html

(也可以阅读原文查看)

出现这个问题的原因:

以下行为是Vivado 2016.1硬件管理器的新增功能(还是新功能,滋滋...):当板断电或断开电缆连接时,Vivado将在硬件管理器中关闭硬件目标。

重新打开板电源或重新连接电缆后,Vivado现在将自动尝试在Hardware Manager中重新打开硬件目标。

除了重新打开硬件目标之外,硬件管理器还将尝试刷新所有设备寄存器,包括读取配置状态寄存器。

由于此新行为,如果满足以下所有条件,则可能会看到间歇性配置失败:

  • 使用JTAG以外的任何配置接口(我们使用的是FLASH)

  • Vivado硬件管理器在连接Digilent或Xilinx USB编程电缆的情况下打开

  • 电路板上电或正在上电

(上面描述的就是我们说的;在JTAG下载器连接时FPGA不加载flash里的程序,基本就一样不差)

如果使用了任何配置接口(JTAG除外),并且还连接了JTAG电缆,则JTAG链自动检测和/或寄存器读取可能会中断配置,并且在加电或重启后将无法完成配置

有关更多详细信息,请参阅(UG908)。

在以下三种情况下可能会发生此问题(上面情况时必发生的):

  1. 设备上电或重启。脉冲PROGRAM_B不会导致此问题,因为Vivado硬件管理器看不到电缆断开连接并执行了电缆自动检测。

  2. 用户发出“ refresh_hw_devices”命令

  3. 用户插入JTAG电缆

解决办法:

一、通过Vivado_init.tcl脚本避免情况发生

1)新建一个Vivado_init.tcl脚本,添加一下内容:

set_param labtools.auto_update_hardware 0

2)将脚本放到:

installdir /Vivado/version/scripts/Vivado_init.tcl

目录下

installdir是Vivado Design Suite的安装目录。

或者

添加本地用户目录:

  1. 对于Windows 7:%APPDATA%/ Roaming / Xilinx / Vivado / Vivado_init.tcl

  2. 对于Linux:$ HOME / .Xilinx / Vivado / Vivado_init.tcl

如果这两个位置都存在Vivado_init.tcl,则Vivado首先从安装目录中获取文件,然后从您的主目录中获取文件。

有关更多信息,请参见《(UG894)Vivado Design Suite用户指南中的使用Tcl脚本》中的“加载和运行Tcl脚本”一章。

http://www.xilinx.com/cgi-bin/docs/rdoc?v=latest;d=ug894-vivado-tcl-scripting.pdf

二、在加电或重新启动电源之前,请拔下电缆。

三、减慢轮询的发生。

例如,每小时轮询一次,请使用以下选项启动hw_server:

hw_server -e "set jtag-poll-delay 3600000000"
This command should be called in the CMD window instead of Vivado Tcl console.

四、按以下步骤在JTAG模式下关闭并重新打开目标,以防止发生任何轮询,然后恢复到正常模式:

1)在JTAG模式下关闭并重新打开目标:

set tmp_target [ get_hw_targets -filter { IS_OPENED == 1 }]
close_hw_target $tmp_target
open_hw_target -jtag_mode on $tmp_target
set_property LOCK true [get_property  HW_JTAG $tmp_target]

2)软件启动后,恢复到正常模式:

set_property LOCK false [get_property  HW_JTAG $tmp_target
close_hw_target $tmp_target
open_hw_target $tmp_target

我试过第一种方式,同时用两种方式加载了Vivado_init.tcl,问题可以解决。

也试过在重新上电的过程中关闭Vivado(不让JTAG工作),也是可以正常启动的,其他方式大家可以多去尝试。

官方这种处理方式有一定便携性和局限性,各有优缺点,不知道大家怎么看。

NOW

推荐阅读

AXI总线详解

AXI总线详解-总线、接口以及协议

AXI接口协议详解-AXI总线、接口、协议

AXI协议中的通道结构

AXI总线详解-AXI4读写操作时序及AXI4猝发地址及选择

高级FPGA设计技巧!多时钟域和异步信号处理解决方案

AXI总线详解-AXI4交换机制

计算机基础知识总结与操作系统.PDF

IC技术圈期刊 2020年第09期

ZYNQ中DMA与AXI4总线-DMA简介
AXI总线详解-不同类型的DMA

不了解FPGA工作原理?看看世界第一颗FPGA芯片级拆解

几种应用DMA的典型应用

AXI_lite代码简解-查看源码

AXI_lite代码简解-AXI-Lite 源码分析

AXI-Lite 自定义IP

点击上方字体即可跳转阅读哟

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/533671
推荐阅读
相关标签
  

闽ICP备14008679号