本文來自 XILINX 高級產品應用工程師, 賽靈思中文論壇經理 Zhendong Wu.
Alveo 加速卡除了有我們 ultrascale+系列的芯片以外,還有 TI 的 MSP432,它的作用就是監控板子的狀態,比如電流電壓溫度等信息。主控端可以通過 FPGA,訪問 MPS432,然后獲取這些信息。那么怎么樣簡單的獲得這些信息呢,為此我們準備了 CMSIP。
系統構架
下面這個圖就是整個主控與 FPGA 以及 MPS432 的模塊圖
有幾個關鍵的點簡單說一下,
首先圖中的紅色框可以看到 CMS 和 MSP432 的數據通過 UART 接口。
然后獲取的板上的信息都是存儲在 BRAM 中(綠色)
Microblaze 是 CMS 的主控模塊,控制 UART 接口,以及將獲取的數據存儲到 BRAM 中。
最后 CMS 本身有 AXI4-Lite 接口可以連接到 XDMA,主控端就可以訪問到 BRAM 中的數據了。
CMS example 設計
CMS 的 IP 本身不用配置,而且 example 設計可以直接跑。下面介紹下步驟。
1). 首先打開 Vivado,選擇 board,這里我用 U50 板卡。
然后在 IP catalog 里找到 CMS IP,選擇 IP,然后不用配置,直接生成。
2). 在 source 窗口右鍵這個 IP,然后點擊 “openexample design”
Vivado 會打開一個新的例子工程。一般例子工程會根據你選擇的板卡,做好所有的管腳約束,所以只需要直接點擊 generatebitstream。
Vivado 會自動給 cms IP 分配一個地址。打開 addresseditor,我們可以看到這個工程里的offset 恰好是 0x00000000,記住這個地址。后面在主機端訪問時會用到。
3). 生成 bit 文件以后,將 U50 板子插在主機 PCIe 槽中,連上 “alveoprogramming cable”,上電,將 bit 文件燒錄到 U50 板卡的 FPGA 以后,熱啟動主機,使其能夠再次 scan并發現板卡。如果一切正常,在主機端使用 lspci 命令可以找到板卡。
Lspci-vd 10ee:
0xee800000 就是 bar 空間地址,加上剛才 vivado 里看到 cms 的 offset 就可以直接訪問cms的 register 空間。
CMS 的 register 空間可以在 PG348 里找到。
所有的板卡的電壓,電流,功耗以及溫度等信息都放在REG_MAP空間里,offset 時0x0280000。
所以如果要訪問 CMS 的 REG_MAP 里的某一個寄存器的話,
地址= PCIebar 地址 + CMSoffset 地址 + REG_MAPoffset address+ 特定寄存器地址
簡單的方法你可以使用 devmem2 直接訪問,這樣不需要任何驅動。
不過 CMS 的 microblaze 控制器時 resetactive 狀況,所以我們先要解復位。
devmeme2 0xee820000 b 0x1
然后舉個例子我們要讀取下 12V 的平均功耗。
devmem20xee8282DC w
你就可以在終端看到 12V 電壓的平均功耗。
用同樣的方法你可以訪問任何 CMS 的寄存器(首先記得要解復位 microblaze 喲)
審核編輯:湯梓紅
-
Xilinx
+關注
關注
71文章
2171瀏覽量
122128 -
CMC
+關注
關注
0文章
34瀏覽量
16792
發布評論請先 登錄
相關推薦
評論