本篇博客展示了如何訪問 NPI 為 NoC(片上網絡)公開的 Performance Monitor(性能監控器)寄存器,這些寄存器用于監控 NoC 的性能。
NoC 包含以下組件:
NMU(NoC 主單元)
NSU(NoC 從單元)
上述每個組件都有自己的一組 Performance Monitor 寄存器。
什么是 Performance Monitor?
Performance Monitor 是在每個 NoC 中嵌入的一組寄存器,允許用戶通過一組給定的指標來觀察流量。這些指標包括:
突發計數
待處理的傳輸事務數
溢出和字節計數(下限和上限)
最大/最小時延值
累積時延(下限和上限)
解決方案:
除了使用基于 Python 的 ChipScoPy 方案外,還可以通過 XSDB(使用 Tcl)或系統上運行的應用程序 (C/C++) 來訪問這些指標寄存器。
在本演示中選擇通過 XSDB 運行 Tcl 腳本。將該腳本轉換為 C++ 相對簡單,隨后即可將其作為應用程序來運行。
該腳本包含:
硬編碼的寄存器地址(這些地址與器件相關,本例中器件為 VPK120)
讀寫函數
鎖定和解鎖函數
循環函數
演示設計 (VPK120):

該設計包含一個 NoC 和兩個可綜合的 Performance AXI Traffic Generator (TG),用于驅動 AXI 傳輸事務流量。這些 TG 共享同一個 CSV 文件:

該 CSV 包含兩個場景。第一個場景包括一次寫入事務、一次讀/寫事務和一次讀取事務;第二個場景(本演示重點)是循環讀/寫傳輸事務。
我們通過切換 Virtual Input/Output 來啟用流量生成器并選擇 CSV 場景。
設置演示:
下載 recreate.tcl 和 Custom.csv
使用 Source 命令運行 recreate.tcl(打開 AMD Vivado 設計套件,在 Tcl 控制臺中運行 source recreate.tcl)
在 Vivado 中,打開生成工程的 XPR
右鍵單擊 design_1,然后單擊“Create HDL Wrapper”(創建 HDL 封裝文件)。選擇“Let Vivado manage wrapper and auto-update”(讓 Vivado 管理封裝文件并自動更新)選項
運行綜合與實現
生成器件鏡像
打開硬件管理器
如何運行演示:
我們將啟動器件,并使其做好連接準備 (JTAG) 工作,以便允許我們通過直接連接或者通過遠程硬件服務器來進行調試。隨后,我們將為自己的設計完成 Vivado 硬件管理器設置,并連接到目標硬件。
我們通過使用 VIO 來觸發 Traffic Generator 運行 CSV 中的第二個場景(循環讀/寫)。
返回到器件后,我們將使用 XSDB(賽靈思調試實用工具)來運行腳本并觀察輪詢到的傳輸事務指標。
在器件上:
無論您如何管理器件,請啟動它并確保其可連接到 Vivado 硬件管理器。
這里需要運行 hw_server 以便遠程連接。
在 Vivado 中:
注釋:您可以為其他器件重做此設計,但請確保將腳本中的寄存器值更新為正確的目標寄存器。
如果您對應使用哪些寄存器存有疑問,請參閱:000035076 - Versal NoC:哪些 NPI 地址與 NoC/DDRMC site 位置有關聯?:
https://adaptivesupport.amd.com/s/article/000035076?language=zh_CN
打開 Vivado 并轉至 Vivado 硬件管理器。打開到您的開發板的目標連接(通過遠程 hw_server 或 localhost):

您應在藍色下拉欄中看到“Program device”(器件燒錄)選項:

選中“Program device”時,它會自動檢測您的 PDI 和調試探針。如未執行自動檢測,請嘗試重新生成器件鏡像:

如果在后續選項卡中未看到 VIO,請使用 (+) 符號添加。
將全部 3 個 VIO 都翻轉為 0 值,然后將 VIO_2 重新翻轉為 0。提供的 CSV 包含兩個場景;我們需要使用第二個場景,即持續讀/寫循環。
這樣可以確保我們有流量可供測量:

選擇“Toggle auto-retrigger mode for this ILA core”(為此 ILA 核切換自動重新觸發模式),然后選擇旁邊的“Run trigger for this ILA core”(為此 ILA 核運行觸發器),即播放按鈕。
這樣應該會在波形窗口中出現活動,并且應無限循環。

在器件上:
現在器件中已有循環運行的流量,我們可以在您的器件命令行上運行 xsdb 來打開 XSDB,在 XSDB 中運行“connect”,然后運行“ta 1”,導航到您的腳本的存儲位置(本演示附帶的腳本),并通過“source

NoC性能監控器調試指南