在Vivado中,VIO(Virtual Input/Output)是一種用于調(diào)試和測(cè)試FPGA設(shè)計(jì)的IP核,它允許設(shè)計(jì)者通過(guò)JTAG接口實(shí)時(shí)讀取和寫(xiě)入FPGA內(nèi)部的寄存器,從而檢查設(shè)計(jì)的運(yùn)行狀態(tài)并修改其行為。VIO IP核提供了一個(gè)簡(jiǎn)單易用的接口,使得用戶(hù)可以輕松地與FPGA內(nèi)部寄存器進(jìn)行交互。
在Vivado中,ILA(Integrated Logic Analyzer)是一種強(qiáng)大的在系統(tǒng)調(diào)試工具,它可以捕獲并分析FPGA內(nèi)部的信號(hào)。使用ILA時(shí),需要確保ILA的時(shí)鐘信號(hào)與被觀(guān)察信號(hào)的時(shí)鐘域一致,以避免由于時(shí)鐘域不匹配導(dǎo)致的數(shù)據(jù)捕獲錯(cuò)誤。此外,ILA的探針數(shù)量和數(shù)據(jù)深度應(yīng)根據(jù)實(shí)際需求進(jìn)行配置,以平衡資源消耗和調(diào)試需求。
VIO與ILA基本上就是我們?cè)诎逭{(diào)試FPGA的主要工具,在vivado中均有相應(yīng)的IP core,具體的步驟如下:
1. vivado中打開(kāi)IP Catalog
2. 搜索ila,在Debug&Verification 中選擇ILA(Inegrated Logic Analyzer)
3. 右鍵Customize IP ,設(shè)置參數(shù),多數(shù)的選擇可以采用默認(rèn)的選擇。

這里對(duì)ILA的特殊參數(shù)做一點(diǎn)說(shuō)明:
Capture Control:即可以選擇一個(gè)條件信號(hào),僅條件信號(hào)滿(mǎn)足設(shè)置要求時(shí),才會(huì)進(jìn)行采樣或者觸發(fā)操作,用于我們?cè)谛枰承┬盘?hào)進(jìn)行觸發(fā)時(shí)勾選;
Advanced Trigger:支持高級(jí)觸發(fā)功能,它允許用戶(hù)通過(guò)編寫(xiě)觸發(fā)狀態(tài)機(jī)(Trigger State Machine,TSM)來(lái)定義更復(fù)雜的觸發(fā)條件。TSM是一個(gè)簡(jiǎn)單的腳本語(yǔ)言,用于定義觸發(fā)狀態(tài)機(jī)??梢栽贗LA的屬性窗口中編寫(xiě)TSM代碼,或者創(chuàng)建一個(gè)后綴為.tsm的文件來(lái)編寫(xiě)TSM腳本,實(shí)現(xiàn)相應(yīng)的觸發(fā)設(shè)置,可以利用ILA的高級(jí)觸發(fā)功能來(lái)更精確地捕獲和分析FPGA設(shè)計(jì)中的信號(hào)。
Setup Debug:由于這種Debug方式是將Debug信息寫(xiě)入XDC文件的方式,vivado提示我們需要更新XDC文件,可以選擇覆蓋overwite現(xiàn)有的XDC文件,該選項(xiàng)并不會(huì)刪除我們現(xiàn)有的XDC文件約束,而是將Debug信息添加在XDC約束后面,實(shí)際操作中會(huì)發(fā)現(xiàn),并不是完全將新的ILA約束信息,添加在原有XDC文件之后,而是以vivado自己的方式,重新寫(xiě)我們的約束文件,即如果我們有重要的約束信息,建議新增XDC文件save constraints as,這樣可以保障原有XDC信息不被修改。
ILA其他注意事項(xiàng)
(1)ILA核的采樣深度不宜過(guò)大,采樣深度盡量設(shè)置在1024bit以?xún)?nèi):在每個(gè)采樣時(shí)鐘下,ILA都會(huì)將捕獲到的探針信號(hào)的值送入RAM中,由于RAM的存儲(chǔ)空間是有限的,其數(shù)值越大,消耗的RAM資源也越多,從而對(duì)設(shè)計(jì)性能產(chǎn)生不利影響。
(2)ILA核的采樣寬度不宜過(guò)大,隨探針寬度增加,對(duì)資源利用率和時(shí)序的影響也會(huì)增大。
(3)請(qǐng)確保輸入到ILA核的時(shí)鐘與抓取的信號(hào)是同步關(guān)系,否則在設(shè)計(jì)編程到器件中時(shí)會(huì)產(chǎn)生時(shí)序問(wèn)題并導(dǎo)致通信失敗。
(4)抓信號(hào)的時(shí)鐘必須為全局時(shí)鐘網(wǎng)絡(luò)。
(5)請(qǐng)盡量確保ILA核選擇的時(shí)鐘均為自由運(yùn)行的時(shí)鐘(常開(kāi)穩(wěn)定時(shí)鐘),否則可能造成在器件上加載版本時(shí)無(wú)法與調(diào)試核通信。
(6)請(qǐng)盡量確保FPGA JTAG時(shí)鐘比Debug Hub時(shí)鐘慢2.5倍,否則可能出現(xiàn)運(yùn)行后報(bào)錯(cuò)或者運(yùn)行后不報(bào)錯(cuò)但不顯示任何結(jié)果的情況,ug908。

VIO的配置界面中,設(shè)置Input Probe Count和Output Probe Count,即輸入和輸出探頭的數(shù)量。
Enable Input Probe Activity Detectors:當(dāng)輸入信號(hào)發(fā)生變化時(shí),Vivado會(huì)顯示一個(gè)活動(dòng)指示,幫助追蹤信號(hào)的變化。啟用Input Probe Activity Detectors后,你可以在ILA調(diào)試波形中看到哪些信號(hào)是活動(dòng)的,這有助于快速定位問(wèn)題。
-
FPGA
+關(guān)注
關(guān)注
1660文章
22416瀏覽量
636607 -
寄存器
+關(guān)注
關(guān)注
31文章
5609瀏覽量
130019 -
調(diào)試工具
+關(guān)注
關(guān)注
1文章
59瀏覽量
12995 -
Vivado
+關(guān)注
關(guān)注
19文章
857瀏覽量
71149
原文標(biāo)題:FPGA上板調(diào)試方式總結(jié)----VIO/ILA
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA遠(yuǎn)程燒寫(xiě)bit文件和調(diào)試ILA指南
XILINX FPGA Debug with VIO and TCL
玩轉(zhuǎn)Zynq連載5——基于Vivado的在線(xiàn)板級(jí)調(diào)試概述
chipcope pro核心生成并在設(shè)計(jì)中使用它們
Chipscope中的ILA,VIO和ATC2有什么區(qū)別?
關(guān)于ILA核心使用的一些事情?
Arty是否有可能不支持ILA調(diào)試?
Xilinx FPGA ChipScope的ICON/ILA/VIO核使用
FPGA開(kāi)發(fā)要懂得使用硬件分析儀調(diào)試——ILA
Vivado調(diào)試ILA debug結(jié)果也許不對(duì)
Vivado之ILA詳解
ILA工作原理 ILA使用方法與注意
Vivado之VIO原理及應(yīng)用
FPGA調(diào)試方式之VIO/ILA的使用
評(píng)論