Xilinx Vivado 提供了上板后的FPGA邏輯分析,信號視圖顯示等功能。
需要注意,上板后查看信號需要重新綜合,並且需要耗費一定的片上布局布線資源。
1. 添加debug信號
可以對模塊端口或者wire 變量進行debug信號提取,只要在verilog代碼前面添加:(* MARK_DEBUG = "true" *) 即可:例如,
此時需要跑綜合,檢查錯誤並分析語義。並且通過vivado綜合,進行下一步。
2. 配置debug信號
配置debug信號,用於挑選需要進行真正查看的信號名稱。在寫代碼時可以添加很多debug標簽,但是debug耗費片上資源,看哪一部分,實現哪一部分。
點擊SYNTHESIS -> Set Up Debug。
選好需要debug的信號后:
選擇信號的緩存深度。由於片上信號速率大,我們不可能實時捕捉並上傳,只能首先儲存到片上邏輯分析core中,所以我們需要選擇core的存儲容量,一個深度對應為一個時鍾周期,也就是我們存儲多少時鍾周期的debug信號值,之后會選擇debug信號的記錄觸發條件,當滿足何條件之后才開始緩存,幫助我們抓取特定時間窗口內的所有信號的波形圖,一般我們先設定深度1024,輸入節拍數為2:
完成:
之后vivado會修改工程的約束文件,進而我們需要重新再綜合一次工程。之后再布局布線,timing保證沒錯誤的前提下,即可生成bit文件並下載入FPGA,最后搭建測試場景並開始運行。
3. 使用JTAG仿真器在線仿真
首先,打開硬件管理器中的目標器件
有仿真器的可以直接看到待觀測信號:
設置觸發條件,在待測信號中設置一個觸發條件,點擊“+”添加觸發條件信號到觸發窗口中:
例如我們需要valid信號與ready信號同時為高時,開始捕捉信號波形,那么雙擊上面列表中的信號即可:
因為同時為高,所以設置value為1:
因為同時為高,所以用邏輯與,點擊“三角”圖標選擇與邏輯:
至此設置完成觸發條件。接着設置觸發次數,我們可以抓取多次滿足觸發條件前后的波形,在左邊setting窗口中選擇window數是4次,也就是4次觸發,觸發點選擇在每個窗口的中間,那么觸發點設為127即可:
接下來,在status窗口點擊運行按鈕,即可開始捕捉波形:
開始測試真實數據,或者實驗,捕捉完成后,捕捉狀態會變為100%:
此時我們在波形窗口里即收到了四次,滿足條件的捕捉,並注意他們不一定是時間連續的波形的捕捉,中間超過128時鍾周期之外的數據也許會丟掉,但是不影響已經捕獲的波形是滿足捕獲觸發條件的。
完。