我的ILA去哪兒了?

來自專欄 FPGA Coding4 人贊了文章

這是專欄的第一篇文章。

開設專欄的目的主要是為了寫一些東西。有時候對於一些點滴的東西,需要找個地方記錄一下,也許以後會幫助到別人。

並不打算把專欄寫成一個完整的學習流程,或者完善的學習指導。更多的是希望把一些邊角的問題、零碎的問題總結出來,也算是對自己曾經努力的一個記錄。

好了,閑話少說,開始第一篇的主題

我的ILA去哪兒了?

ILA是Xilinx Vivado工具提供的嵌入式邏輯分析儀中最常用的組件之一。主要用於抓取數據。整套工具,一般稱呼為 VLA(Vivado Logic Analyzer)或者VLD (Vivado Logic Debug)。如果沒有特別的說明,文中會使用VLD來稱呼這一套工具。

一個比較常見的問題就是,當帶有VLD(或者不帶有)的bit文件通過Vivado Hardware Manager工具下載到FPGA中後,發現Vivado不會顯示VLD的使用界面,俗稱找不到ILA。Tcl console中會提示:

仔細看內容是這樣的

WARNING: [Labtools 27-3123] The debug hub core was not detected at User Scan Chain 1 or 3.Resolution: 1. Make sure the clock connected to the debug hub (dbg_hub) core is a free running clock and is active OR2. Manually launch hw_server with -e "set xsdb-user-bscan <C_USER_SCAN_CHAIN scan_chain_number>" to detect the debug hub at User Scan Chain of 2 or 4. To determine the user scan chain setting, open the implemented design and use: get_property C_USER_SCAN_CHAIN [get_debug_cores dbg_hub].WARNING: [Labtools 27-1974] Mismatch between the design programmed into the device xc7a50t_0 and the probes file C:/Users/willl/Desktop/bit/debug_nets.ltx.The device design has 0 ILA core(s) and 0 VIO core(s). The probes file has 1 ILA core(s) and 0 VIO core(s).Resolution: 1. Reprogram device with the correct programming file and associated probes file OR2. Goto device properties and associate the correct probes file with the programming file already programmed in the device.

一共說了兩件事情:

1.沒找到debug hub core;

2.有LTX,但是卻沒有對應的VLD IP Core;

總結下來 就是沒有找到VLD的IP Core,而且很可能需要看到的Core是ILA。

對於第一個WARNING,給出了兩個Resolution,直接翻譯就是

1. 確保debug hub用的時鐘是free running的時鐘

2. JTAG Scan Chain需要用1 或者 3,或者手動觸發一下,查找一下2、4位置有沒有。

由於大部分使用VLD的用戶並不會手動的修改JTAG Scan Chain的編號,所以極大概率,是第一個原因:時鐘。

用通俗的話解釋,就是接在ILA上的時鐘不太穩定。

更具體的解釋是,下載完工具開始檢測晶元的那一瞬間,這個時鐘不穩定。

常見的起因是,這個時鐘不是來自一個晶振,而是來自一個MMCM/PLL或者來自GT,這樣在下載完之後的很短時間內,如果這個時鐘不穩定(會有機會無法立即穩定)。則工具會給出這個提示,表示沒有找到ILA。

有幾種治標不治本的解決方案:

1.上電後晚幾秒載入bit文件,讓周邊器件相對穩定;

2.對於MMCM/PLL出來的時鐘,如果經常出現這個問題,可以檢查一下MMCM/PLL的輸入時鐘質量,並將Done信號的拉起設置為需要等待MMCM/PLL鎖定,確保載入完成之前MMCM/PLL已經穩定下來;

3.使用VLD中的Refresh進行嘗試;

最終還是檢查一下為什麼時鐘不穩定/穩定時間過長的問題。從過往經驗看,99%出現這個問題,查到最後都是時鐘的問題。

當然還有一個可能,就是bit文件用錯了,真的不含VLD。

關於這個問題,Xilinx有個AR可以參考一下。

https://www.xilinx.com/support/answers/64764.html?

www.xilinx.com

關於FPGA,有什麼想分享的,歡迎留言


推薦閱讀:
查看原文 >>
相關文章