在硬件調試時,經常需要用 ILA 采集一些 FPGA 內部或者對外的初始化信號,然而在下載完 Bitstream 后立即采集這些變化稍縱即逝的信號,比如在 1uS 內手動觸發 ILA 采集信號,以普通人的手速顯然是無能為力的。有的變通方法比如在程序中加入一定的延時量或者外部按鍵做觸發 ILA 采集也可以實現。但是某些應用場景下,初始化必須在上電后的一定時間范圍內完成。本文將介紹一種可適用于上述場景的方法,即在下載 Bitstream 后自動觸發 ILA 采集,為硬件調試提供更多便利。
調試方法:
1. 設備信息
操作系統:Win10
硬件平臺:Xilinx VCU118開發板
軟件版本:AMD Vivado2022.1
2. 代碼分析
當 MMCM 初始化完成,Locked 信號置1后,Init_Buf 開始計數,當 Init_Buf 等于 0x0E 時,Dout_Init 置1觸發 Data_Buf 開始計數,最終控制 Dout 輸出5個脈沖。整個過程大約在 1uS 內結束,普通人的手速是無法在如此短的時間內采集到這組信號。
3. Vivado 操作步驟
打開 Vivado,新建工程按照常規流程完成 synthesis 后,點擊 Setup Debug,將 Data_Buf, Dout, MMCM_locked, Dout_Init, Init_Buf 這些信號加入到 ILA 中,設置 100MHz 的時鐘作為 ILA 的采集時鐘。
Implementation 后 Generate Bitstream 并且下載到 FPGA。
此時可以看到之前連接到 ILA 的信號都已經顯示,設置 ILA 的觸發條件,本工程設置為當 Dout_Init =1 時觸發 ILA 采集。
運行
cdc:/ILA_Startup/ILA_Startup.runs/impl_1/
粗體部分可設置為任意的工程路徑,這樣便于在生成 bit 以后找到對應的文件。
在 Tcl Console 窗口輸入:
run_hw_ila -file ila_trig.tas [get_hw_ilas hw_ila_1] -force
Open implementation design,在Tcl窗口輸入:apply_hw_ila_trigger ila_trig.tas
在Tcl窗口輸入:
write_bitstreamc:/ILA_Startup/ILA_Startup.runs/impl_1/trig_at_startup.bit -force
粗體部分可設置為任意的工程路徑。
把新生成的 trig_at_startup.bit 通過 JTAG 下載到器件,下載完成后可以看到 ILA 將自動觸發采集信號,如下圖所示:
注意事項:
改變 ILA 的觸發條件后,需要重復上面 Step4- Step7 的步驟。
改變 ILA 的信號連接后,需要重復上面 Step2- Step7 的步驟。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603004 -
操作系統
+關注
關注
37文章
6801瀏覽量
123285 -
開發板
+關注
關注
25文章
5032瀏覽量
97375 -
ILA
+關注
關注
0文章
5瀏覽量
3593
原文標題:開發者分享|AMD Vivado Hardware Debug 技巧-如何在下載 Bitstream 后自動觸發 ILA 采集
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論