JTAG下载器连接时 Xilinx FPGA上电加载FLASH程序失败解决办法

官方链接:https://support.xilinx.com/s/article/66954?language=en_US

中文链接:https://cloud.tencent.com/developer/news/710703

TITLE

66954 - 2016.1 and newer Vivado Hardware Manager - Intermittent configuration failures can occur when the FPGA is power cycled and the programming cable is connected.

DESCRIPTION

The following behavior is new to the Vivado 2016.1 Hardware Manager: When a board is powered off or a cable is disconnected, Vivado will close the hardware target in Hardware Manager.

When the board is powered back on or the cable is reconnected, Vivado will now automatically attempt to re-open the hardware target in Hardware Manager.

In addition to reopening the hardware target, Hardware Manager will attempt to refresh all device registers including reading configuration status registers.

Due to this new behavior it is possible to see intermittent configuration failure occur if all of the following are true:

  • Any configuration interface other than JTAG is used
  • Vivado Hardware Manager is open with a Digilent or Xilinx USB programming cable connected
  • Board is power cycled or powered on

If any configuration interface (except JTAG) is used and the JTAG cable is also connected, it is possible that the configuration will be interrupted by the JTAG chain auto detection and/or register reads and will not complete configuration at power up or power cycle.

Please Refer to (UG908) for additional details.

SOLUTION

The issue could occur under three conditions:

  1. Device power on or power cycle. Pulsing PROGRAM_B does not result in this issue because the Vivado Hardware Manager does not see a cable disconnection and perform the cable auto detection.
  2. User issues "refresh_hw_devices" command
  3. User plugs in the JTAG cable

Potential Work-arounds include the following:

1) Set the following parameter to disable the power up detection

set_param labtools.auto_update_hardware 0

Note: You need to create a Vivado_init.tcl script and add the above parameter in it.

Additional information on Vivado_init.tcl:

When you start the Xilinx Design tools, it looks for the Vivado_init.tcl initialization script in two different locations:

1) In the software installation: installdir/Vivado/version/scripts/Vivado_init.tcl

installdir is the installation directory where the Vivado Design Suite is installed.

2) In the local user directory:

  1. For Windows 7: %APPDATA%/Roaming/Xilinx/Vivado/Vivado_init.tcl
  2. For Linux: $HOME/.Xilinx/Vivado/Vivado_init.tcl

If Vivado_init.tcl exists in both of these locations, Vivado sources the file from the installation directory first, and then from your home directory.

For more information, see the Loading and Running Tcl Scripts chapter in (UG894) Vivado Design Suite User Guide Using Tcl Scripting.

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

2) Unplug the cable prior to power up or power cycle.

3) Slow down occurrence of the polling.

For example to poll once an hour, launch hw_server with the following option:

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

4) Close and reopen the target in JTAG mode as follows to prevent any polling from happening, then restore back to normal mode:

a) Close and reopen the target in JTAG mode:

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]

b) Restore back to normal mode once the part has booted:

set_property LOCK false [get_property  HW_JTAG $tmp_target
close_hw_target $tmp_target
open_hw_target $tmp_target
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值