Xilinx Vivado 硬件診斷( ila和vio的使用)
掃描二維碼
隨時隨地手機(jī)看文章
Xilinx Vivado 硬件診斷( ila和vio的使用)
1背景知識
在我們的FPGA設(shè)計項目中,硬件的診斷和校驗可能會占去超過30%—40%的FPGA開發(fā)時間,FPGA的debug也是FPGA設(shè)計中重要的一環(huán)。掌握并靈活運(yùn)用FPGA設(shè)計工具的debug功能也是加快FPGA設(shè)計的關(guān)鍵。
1.1 ILA(Integrated Logic Analyzer)
FPGA設(shè)計中的信號連接到ILA核的時鐘和探針輸入如圖1。這些信號附加到探針輸入,以設(shè)計速度采樣,并使用片上塊RAM(BRAM)存儲。核參數(shù)指定探針的數(shù)量、跟蹤樣本深度和每個探針輸入的寬度。使用與FPGA的JTAG接口連接的自動實例化調(diào)試核心集線器與ILA核進(jìn)行通信。
圖1 ILA Core
1.2 VIO (Virtual Input/Output core)
VIO核是一個可定制的核,可以實時監(jiān)控和驅(qū)動內(nèi)部FPGA信號。不像ILA核,不需要片上或片外RAM。
VIO核有兩種類型的信號:
. Input probes
.Output probes
圖2 VIO Block Diagram
2 ila 和 vio在工程中使用
我們使用uart工程來做示例。
圖3 uart示例模塊圖
如圖3所示,整個串口工程包括波特率時鐘產(chǎn)生模塊,串口接收模塊和串口發(fā)送模塊。我們將使用ila IP對uart_rx模塊的接收數(shù)據(jù)進(jìn)行debug,使用vio IP對uart_tx模塊進(jìn)行debug。
我們使用Ila將對 rx_data的接收數(shù)據(jù)進(jìn)行實時觀測,以此來判斷程序是否正確。
2.1 ila IP和vio IP的創(chuàng)建
Ila IP的創(chuàng)建,首先打開 IP Catalog如圖4。
圖4 IP Catalog
搜索ila如圖5。
圖5 ila ip
雙擊打開ila IP ,相關(guān)參數(shù)設(shè)置如圖6。
圖6 ila IP參數(shù)設(shè)置
Ila IP的探頭位寬設(shè)置如圖7。
圖7 Ila IP位寬的設(shè)置
Vio的設(shè)置如圖8和圖9。
8 探頭個數(shù)的設(shè)置
圖9 探頭數(shù)據(jù)位寬和初始化值的設(shè)置
對Ila IP 和 vio IP的例化。
然后我們綜合實現(xiàn)完成后下載程序如圖10。
圖10 programming FPGA
2.2 ila 和vio對uart的實時數(shù)據(jù)采集
Ila的調(diào)試,我們使用rx_done 信號作為觸發(fā)信號,設(shè)置觸發(fā)條件等于1,如圖11所示。
圖11 觸發(fā)條件的設(shè)置
我們使用串口工具發(fā)送數(shù)據(jù),觸發(fā)以后我們可以觀測到FPGA內(nèi)部rx_data接收完成后的數(shù)據(jù)如圖12。
圖12 ila IP 觀測到FPGA內(nèi)部信號的變化
Vio的調(diào)試,點(diǎn)擊+號,添加三個數(shù)據(jù)端口如圖所示13。
圖13 vio觀測端口的設(shè)置
當(dāng)tx_en 為1時將tx_data上的數(shù)據(jù)從FPGA內(nèi)部發(fā)送到串口工具上,如圖14所示。
圖14 通過vio將數(shù)據(jù)從FPGA內(nèi)部發(fā)送到串口工具
學(xué)會對FPGA內(nèi)部信號的debug是FPGA設(shè)計過程中重要的一環(huán)。Vivado的debug相對于ISE更為簡單,更加易用。