
最近群里有很多人遇到上述的情況,一直覺(jué)得不可思議,以前沒(méi)有遇到這種情況,如果是很常見(jiàn)的情況,那官網(wǎng)一定有人反饋,如果是極特別的情況,那么也就只能按照BUG處理了。
很幸運(yùn),官網(wǎng)有很多人反饋類似的問(wèn)題。
出現(xiàn)這個(gè)問(wèn)題的原因:
以下行為是Vivado 2016.1硬件管理器的新增功能(還是新功能,滋滋...):當(dāng)板斷電或斷開(kāi)電纜連接時(shí),Vivado將在硬件管理器中關(guān)閉硬件目標(biāo)。
重新打開(kāi)板電源或重新連接電纜后,Vivado現(xiàn)在將自動(dòng)嘗試在Hardware Manager中重新打開(kāi)硬件目標(biāo)。
除了重新打開(kāi)硬件目標(biāo)之外,硬件管理器還將嘗試刷新所有設(shè)備寄存器,包括讀取配置狀態(tài)寄存器。
由于此新行為,如果滿足以下所有條件,則可能會(huì)看到間歇性配置失?。?/p>
使用JTAG以外的任何配置接口(我們使用的是FLASH)
Vivado硬件管理器在連接Digilent或Xilinx USB編程電纜的情況下打開(kāi)
電路板上電或正在上電
(上面描述的就是我們說(shuō)的;在JTAG下載器連接時(shí)FPGA不加載flash里的程序,基本就一樣不差)
如果使用了任何配置接口(JTAG除外),并且還連接了JTAG電纜,則JTAG鏈自動(dòng)檢測(cè)和/或寄存器讀取可能會(huì)中斷配置,并且在加電或重啟后將無(wú)法完成配置。
有關(guān)更多詳細(xì)信息,請(qǐng)參閱(UG908)。
在以下三種情況下可能會(huì)發(fā)生此問(wèn)題(上面情況時(shí)必發(fā)生的):
設(shè)備上電或重啟。脈沖PROGRAM_B不會(huì)導(dǎo)致此問(wèn)題,因?yàn)閂ivado硬件管理器看不到電纜斷開(kāi)連接并執(zhí)行了電纜自動(dòng)檢測(cè)。
用戶發(fā)出“ refresh_hw_devices”命令
用戶插入JTAG電纜
解決辦法:一、通過(guò)Vivado_init.tcl腳本避免情況發(fā)生1)新建一個(gè)Vivado_init.tcl腳本,添加一下內(nèi)容:
set_param labtools.auto_update_hardware 0 2)將腳本放到: installdir/Vivado/version/scripts/Vivado_init.tcl 目錄下 installdir是Vivado Design Suite的安裝目錄。 或者 添加本地用戶目錄:
對(duì)于Windows 7:%APPDATA%/ Roaming / Xilinx / Vivado / Vivado_init.tcl
對(duì)于Linux:$ HOME / .Xilinx / Vivado / Vivado_init.tcl
如果這兩個(gè)位置都存在Vivado_init.tcl,則Vivado首先從安裝目錄中獲取文件,然后從您的主目錄中獲取文件。
二、在加電或重新啟動(dòng)電源之前,請(qǐng)拔下電纜。三、減慢輪詢的發(fā)生。例如,每小時(shí)輪詢一次,請(qǐng)使用以下選項(xiàng)啟動(dòng)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模式下關(guān)閉并重新打開(kāi)目標(biāo),以防止發(fā)生任何輪詢,然后恢復(fù)到正常模式:1)在JTAG模式下關(guān)閉并重新打開(kāi)目標(biāo):set tmp_target [ get_hw_targets -filter { IS_OPENED == 1 }]close_hw_target $tmp_targetopen_hw_target -jtag_mode on $tmp_targetset_property LOCK true [get_property HW_JTAG $tmp_target] 2)軟件啟動(dòng)后,恢復(fù)到正常模式:set_property LOCK false [get_property HW_JTAG $tmp_targetclose_hw_target $tmp_targetopen_hw_target $tmp_target
我試過(guò)第一種方式,同時(shí)用兩種方式加載了Vivado_init.tcl,問(wèn)題可以解決。
也試過(guò)在重新上電的過(guò)程中關(guān)閉Vivado(不讓JTAG工作),也是可以正常啟動(dòng)的,其他方式大家可以多去嘗試。
官方這種處理方式有一定便攜性和局限性,各有優(yōu)缺點(diǎn),不知道大家怎么看。
原文標(biāo)題:[Xilinx]在JTAG下載器連接時(shí)FPGA不加載flash里的程序
文章出處:【微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
FPGA
+關(guān)注
關(guān)注
1664文章
22513瀏覽量
639638 -
FlaSh
+關(guān)注
關(guān)注
10文章
1761瀏覽量
155975 -
JTAG
+關(guān)注
關(guān)注
6文章
415瀏覽量
75299
原文標(biāo)題:[Xilinx]在JTAG下載器連接時(shí)FPGA不加載flash里的程序
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
JTAG/SWD禁用導(dǎo)致無(wú)法燒寫的解決辦法
Vivado+Vitis將程序固化的Flash的操作流程
咨詢一下工業(yè)設(shè)計(jì)中批量生產(chǎn)FPGA時(shí),程序是如何批量下載
使用TinyFPGA-Bootloader將比特流加載到FPGA
JTAG下載器連接時(shí)FPGA不加載flash里的程序解決辦法
評(píng)論