在FPGA開發中,當我們寫完代碼,進行仿真,確定設計沒有問題后,下載到硬件上一般都能按照我們的設計意愿執行相應功能。但這也并非絕對的,有時候你會遇到一些突然情況,比如時序問題或者仿真時我沒有考慮到某種情況,但實際中它確實存在的,這就會造成功能上的錯誤了。也有時候你的設計似乎你沒法進行仿真或者做起來很費勁,比如設計一個SDRAM或者DDR控制器,讓你相應寫一個SDRAM或者DDR之類的模型進行仿真,這時候是不是就很為難了哈哈。
所以在很多時候,一個FPGA工程師應該學會使用在線調試工具進行分析。我沒法寫一個DDR模型,我還不能采集它的時序進行修改,直到滿足要求嗎?這里給大家介紹Xilinx公司的開發軟件Vivado上的在線調試工具——ILA。Vivado中對ILA的使用非常靈活,操作也很方便,這里先介紹做常用的調試方式,即使用ILA核。
1. ILA核如何調用
ILA核,也可以當做是一個IP核。他可以把用戶指定的信號存入RAM中,然后讀取出來,用于查看分析。如下圖所示,在Vivado中,左邊欄有一個“IP Catalog”,雙擊這個選項就可以進行IP選擇了。
此時會彈出一個IP核選擇界面,在右上角方框里輸入“ila”,接著ILA核便會出現,我們只需雙擊即可。
2. ILA核如何配置
接下來便會看到ILA核的真面目了,它的幫助文檔,在左上角的“Documentation”看到沒,這個可以鏈接到IP核的data_sheet,如果對IP核的使用不是很懂可以點擊此處獲取IP核的詳細信息。下面我們介紹最經常的使用。
圖中最上面的“Component Name”可以給IP核取一個名字,注意,必須IP核名與代碼中的IP名一致,才能關聯起來,而且一旦生成了IP核,就算打開IP核,也不能再更改這個IP核的名字了,所以取名需謹慎。
黃色框里是輸入信號的格式,如何你是AXI總線,就可以選擇“AXI”,如果不是就選“Native”。
“Number of Probes”是要采集的信號數量,如果要采集5個信號就在方框里輸入5即可。
“Sample Data Depth”是采樣深度,深度越大意味著能看到的信息量越多。但是要切記一點,采樣的數據都是要存儲在芯片內的RAM里,所以選擇越大占用的資源就越多,用戶要根據自己芯片的情況選擇采樣深度。另外,因為使用了RAM,所以也會對布局布線產生影響,使用越多對時序可能影響越大,應該根據實際情況選擇。
“Trigger Out Port”和“Trigger In Port”是用于觸發,可以不選,觸發在后面調試時可以靈活使用。
“Trigger And Strorage Setting”是數據捕獲的設計,一般直接勾上即可。
“Probe_Ports”這個頁面就比較簡單了,在“Number of Probes”中用戶設置了多少個采樣數量,這里就會有多少個通道。如前面所示,我們設置了3,這里就出現了3個通道。
“Probe_Width”數據寬度,有多少位就填多少,像“PROBE1”通道是一個3Bit的數據,就填3.其他的默認即可。
最后點擊“OK”就行了,等待ILA核的生成就行了,是不是很簡單哈哈。
當然,我們的代碼也必須有這個核的定義才行,如下圖所示,這樣才是一個完整的ILA核設計。
3. 總結
通過ILA核的使用,可以快速的幫助我們調試bug。另外,還有一個非常有用的VIO核,他就是虛擬輸入輸出IO,可以用來改變PL端的輸入信號的值,觀測輸出的值,至于ILA的使用VIO的介紹和使用以后再講。
-
Xilinx
+關注
關注
71文章
2170瀏覽量
121879 -
Vivado
+關注
關注
19文章
815瀏覽量
66772
發布評論請先 登錄
相關推薦
評論