取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Alveo加速卡板上管理子系统CMS介绍使用

yolanda
Moderator
Moderator
0 0 96

By Zhendong Wu

注意:本论坛博客所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途 


Alveo加速卡板上管理子系统CMS(card management subsystem)介绍以及实例

 

Alveo加速卡除了有我们ultrascale+系列的芯片以外,还有TI的MSP432,它的作用就是监控板子的状态,比如电流电压温度等信息。主控端可以通过FPGA,访问MPS432,然后获取这些信息。那么怎么样简单的获得这些信息呢,为此我们准备了CMS IP。

1.       系统构架

下面这个图就是整个主控与FPGA以及MPS432 的模块图

1.png

有几个关键的点简单说一下,

首先图中的红色框可以看到CMS和MSP432的数据通过UART接口。

然后获取的板上的信息都是存储在BRAM中(绿色)

Microblaze是CMS的主控模块,控制UART接口,以及将获取的数据存储到BRAM中。

最后CMS本身有AXI4-Lite接口可以连接到XDMA,主控端就可以访问到BRAM中的数据了。

 

2.       CMS example 设计

CMS的IP本身不用配置,而且example设计可以直接跑。下面介绍下步骤。

1.       首先打开Vivado,选择board, 这里我用U50板卡。

2.png


        然后在IP catalog里找到CMS IP,选择IP,然后不用配置,直接生成。

3.png

 

2.       在source 窗口右键这个IP,然后点击“open example design”

Vivado会打开一个新的例子工程。一般例子工程会根据你选择的板卡,做好所有的管脚约束,所以只需要直接点击generate bitstream。

4.png

Vivado会自动给cms IP分配一个地址。打开address editor,我们可以看到这个工程里的offset恰好是0x00000000,记住这个地址。后面在主机端访问时会用到。

5.png

 

3.       生成bit文件以后,将U50板子插在主机PCIe槽中,连上“alveo programming cable”,上电,将bit文件烧录到U50板卡的FPGA以后,热启动主机,使其能够再次scan并发现板卡。

如果一切正常,在主机端使用lspci命令可以找到板卡。

Lspci -vd 10ee:

6.png

0xee800000就是bar空间地址,加上刚才vivado里看到cms的offset就可以直接访问cms的register空间。

CMS的register 空间可以在PG348里找到。

7.png

所有的板卡的电压,电流,功耗以及温度等信息都放在REG_MAP空间里,offset时0x0280000。

所以如果要访问CMS的REG_MAP里的某一个寄存器的话,

地址= PCIe bar 地址 + CMS offset地址 + REG_MAP offset address+ 特定寄存器地址

简单的方法你可以使用devmem2直接访问,这样不需要任何驱动。

不过CMS的microblaze控制器时reset active状况,所以我们先要解复位。

   devmeme2 0xee820000 b 0x1

 

然后举个例子我们要读取下12V的平均功耗。

8.png

devmem2 0xee8282DC w

你就可以在终端看到12V电压的平均功耗。

用同样的方法你可以访问任何CMS的寄存器(首先记得要解复位microblaze哟)

 

有任何问题请联系Zhendon@xilinx.com。谢谢